-
Notifications
You must be signed in to change notification settings - Fork 608
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added dropped spans counter metric to catch number of dropped spans. #3386
base: main
Are you sure you want to change the base?
Conversation
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py
Outdated
Show resolved
Hide resolved
opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py
Outdated
Show resolved
Hide resolved
self._dropped_counter = Meter.create_counter( | ||
name="dropped_spans_counter", description="To count dropped Spans" | ||
) | ||
dropped_counter.add(1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR needs testing to catch bugs like this one, the symbol dropped_counter
is undefined.
@@ -228,7 +230,10 @@ def on_end(self, span: ReadableSpan) -> None: | |||
if not self._spans_dropped: | |||
logger.warning("Queue is full, likely spans will be dropped.") | |||
self._spans_dropped = True | |||
|
|||
self._dropped_counter = Meter.create_counter( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Take a look at how this is being implemented for the Flask instrumentation.
c865f16
to
290a993
Compare
Signed-off-by: Rajat Jain <[email protected]>
290a993
to
4ee2e8a
Compare
@@ -228,7 +230,10 @@ def on_end(self, span: ReadableSpan) -> None: | |||
if not self._spans_dropped: | |||
logger.warning("Queue is full, likely spans will be dropped.") | |||
self._spans_dropped = True | |||
|
|||
self._dropped_spans_counter = Meter.create_counter( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think there's a bug here (not related to your change). self._spans_dropped should be reset to False
after the queue has flushed some items. In this case, I would not rely on self._spans_dropped
as the indicator of whether to create the counter, but instead if the counter exists already.
@@ -228,7 +230,10 @@ def on_end(self, span: ReadableSpan) -> None: | |||
if not self._spans_dropped: | |||
logger.warning("Queue is full, likely spans will be dropped.") | |||
self._spans_dropped = True | |||
|
|||
self._dropped_spans_counter = Meter.create_counter( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tests are needed for this change.
@rajat315315 |
Extremely busy these days.. |
This PR needs further changes, marking it as draft. |
Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes #3152
Type of change
Please delete options that are not relevant.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Does This PR Require a Contrib Repo Change?
Answer the following question based on these examples of changes that would require a Contrib Repo Change:
The OTel specification has changed which prompted this PR to update the method interfaces of
opentelemetry-api/
oropentelemetry-sdk/
The method interfaces of
test/util
have changedScripts in
scripts/
that were copied over to the Contrib repo have changedConfiguration files that were copied over to the Contrib repo have changed (when consistency between repositories is applicable) such as in
pyproject.toml
isort.cfg
.flake8
When a new
.github/CODEOWNER
is addedMajor changes to project information, such as in:
README.md
CONTRIBUTING.md
Yes. - Link to PR:
No.
Checklist: