diff --git a/troncos/tracing/_writer.py b/troncos/tracing/_writer.py index 5cfe131..7034460 100644 --- a/troncos/tracing/_writer.py +++ b/troncos/tracing/_writer.py @@ -41,13 +41,32 @@ def recreate(self) -> "OTELWriter": ) def write(self, spans: list[Span] | None = None) -> None: + if not spans: + return + + filtered_spans = [ + span + for span in spans + # ddtrace use span.sampled == False to drop spans. + if span.sampled + # ddtrace uses sampling_priority > 0 to indicate that we + # want to ingest the span. + and ( + span.context.sampling_priority is None + or span.context.sampling_priority > 0 + ) + ] + + if not filtered_spans: + return + transelated_spans = [ translate_span( span, default_resource=self.otel_default_resource, ignore_attrs=self.otel_ignore_attrs, ) - for span in spans or [] + for span in filtered_spans ] for span_processor in self.otel_span_processors: