diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py index 7f56a30172..54c2d7164f 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/trace/export/__init__.py @@ -38,6 +38,7 @@ ) from opentelemetry.sdk.trace import ReadableSpan, Span, SpanProcessor from opentelemetry.util._once import Once +from opentelemetry.metrics import Meter _DEFAULT_SCHEDULE_DELAY_MILLIS = 5000 _DEFAULT_MAX_EXPORT_BATCH_SIZE = 512 @@ -198,6 +199,7 @@ def __init__( self.done = False # flag that indicates that spans are being dropped self._spans_dropped = False + self._dropped_spans_counter = None # precallocated list to send spans to exporter self.spans_list = [ None @@ -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( + name="dropped_spans_counter", description="Dropped Spans counter" + ) + self._dropped_spans_counter.add(1) self.queue.appendleft(span) if len(self.queue) >= self.max_export_batch_size: