|
11 | 11 |
|
12 | 12 | from amazon.opentelemetry.distro._aws_attribute_keys import AWS_LOCAL_SERVICE |
13 | 13 | from amazon.opentelemetry.distro._aws_resource_attribute_configurator import get_service_attribute |
| 14 | +from amazon.opentelemetry.distro._utils import is_agent_observability_enabled |
14 | 15 | from amazon.opentelemetry.distro.always_record_sampler import AlwaysRecordSampler |
15 | 16 | from amazon.opentelemetry.distro.attribute_propagating_span_processor_builder import ( |
16 | 17 | AttributePropagatingSpanProcessorBuilder, |
|
27 | 28 | from amazon.opentelemetry.distro.sampler.aws_xray_remote_sampler import AwsXRayRemoteSampler |
28 | 29 | from amazon.opentelemetry.distro.scope_based_exporter import ScopeBasedPeriodicExportingMetricReader |
29 | 30 | from amazon.opentelemetry.distro.scope_based_filtering_view import ScopeBasedRetainingView |
30 | | -from opentelemetry._logs import set_logger_provider |
| 31 | +from opentelemetry._logs import get_logger_provider, set_logger_provider |
31 | 32 | from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter |
32 | 33 | from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter as OTLPHttpOTLPMetricExporter |
33 | 34 | from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter |
@@ -359,7 +360,15 @@ def _customize_span_exporter(span_exporter: SpanExporter, resource: Resource) -> |
359 | 360 | _logger.info("Detected using AWS OTLP Traces Endpoint.") |
360 | 361 |
|
361 | 362 | if isinstance(span_exporter, OTLPSpanExporter): |
362 | | - span_exporter = OTLPAwsSpanExporter(endpoint=traces_endpoint) |
| 363 | + if is_agent_observability_enabled(): |
| 364 | + # Span exporter needs an instance of logger provider in ai agent |
| 365 | + # observability case because we need to split input/output prompts |
| 366 | + # from span attributes and send them to the logs pipeline per |
| 367 | + # the new Gen AI semantic convention from OTel |
| 368 | + # ref: https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-events/ |
| 369 | + span_exporter = OTLPAwsSpanExporter(endpoint=traces_endpoint, logger_provider=get_logger_provider()) |
| 370 | + else: |
| 371 | + span_exporter = OTLPAwsSpanExporter(endpoint=traces_endpoint) |
363 | 372 |
|
364 | 373 | else: |
365 | 374 | _logger.warning( |
|
0 commit comments