New APIs to add/remove metric readers at run-time#4863
New APIs to add/remove metric readers at run-time#4863JP-MY wants to merge 2 commits intoopen-telemetry:mainfrom
Conversation
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Outdated
Show resolved
Hide resolved
aabmass
left a comment
There was a problem hiding this comment.
Thanks for the PR, sorry for the delay here.
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Outdated
Show resolved
Hide resolved
ef20f0e to
9bb1567
Compare
|
@aabmass @herin049 I'm not sure why the lint is failing for protected access, I can see the same protected access in the same file. Should I add a |
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Show resolved
Hide resolved
aabmass
left a comment
There was a problem hiding this comment.
Thanks for fixing the concurrency issues, LGTM!
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py
Show resolved
Hide resolved
There was a problem hiding this comment.
As a follow up to the thread safety issue you fixed, can you add a multithread test for this in a new integration test file? Here are some examples to make this pretty straightforward.
There was a problem hiding this comment.
I added a test which is deterministic (forces race conditions that would cause issues) but I'm not sure how great it is. I can also add a test with many threads that try to add / remove metric readers and assert counts (number of metric readers changed during iteration without raising an error) but I'm not sure how useful that is
| ) | ||
| return self._meters[info] | ||
|
|
||
| def add_metric_reader( |
99fff87 to
8a5c6ef
Compare
Description
This change adds two public functions to MeterProvider that allow registering and deleting metric readers at run-time.
Fixes #4818
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Does This PR Require a Contrib Repo Change?
Checklist: