33# Modifications Copyright The OpenTelemetry Authors. Licensed under the Apache License 2.0 License.
44import os
55import re
6- from logging import NOTSET , CRITICAL , Logger , getLogger
6+ from logging import CRITICAL , NOTSET , Logger , getLogger
77from typing import ClassVar , Dict , List , Type , Union
88
99from importlib_metadata import version
1010from typing_extensions import override
1111
1212from amazon .opentelemetry .distro ._aws_attribute_keys import AWS_LOCAL_SERVICE
13- from amazon .opentelemetry .distro .exporter .otlp .aws .logs .aws_batch_log_processor import AwsBatchLogRecordProcessor
14- from amazon .opentelemetry .distro ._utils import is_agent_observability_enabled
1513from amazon .opentelemetry .distro ._aws_resource_attribute_configurator import get_service_attribute
14+ from amazon .opentelemetry .distro ._utils import is_agent_observability_enabled
1615from amazon .opentelemetry .distro .always_record_sampler import AlwaysRecordSampler
1716from amazon .opentelemetry .distro .attribute_propagating_span_processor_builder import (
1817 AttributePropagatingSpanProcessorBuilder ,
2322 AwsMetricAttributesSpanExporterBuilder ,
2423)
2524from amazon .opentelemetry .distro .aws_span_metrics_processor_builder import AwsSpanMetricsProcessorBuilder
25+ from amazon .opentelemetry .distro .exporter .otlp .aws .logs .aws_batch_log_record_processor import AwsBatchLogRecordProcessor
2626from amazon .opentelemetry .distro .exporter .otlp .aws .logs .otlp_aws_logs_exporter import OTLPAwsLogExporter
2727from amazon .opentelemetry .distro .exporter .otlp .aws .traces .otlp_aws_span_exporter import OTLPAwsSpanExporter
2828from amazon .opentelemetry .distro .otlp_udp_exporter import OTLPUdpSpanExporter
2929from amazon .opentelemetry .distro .sampler .aws_xray_remote_sampler import AwsXRayRemoteSampler
3030from amazon .opentelemetry .distro .scope_based_exporter import ScopeBasedPeriodicExportingMetricReader
3131from amazon .opentelemetry .distro .scope_based_filtering_view import ScopeBasedRetainingView
32- from opentelemetry ._logs import set_logger_provider , get_logger_provider
32+ from opentelemetry ._logs import get_logger_provider , set_logger_provider
3333from opentelemetry .exporter .otlp .proto .http ._log_exporter import OTLPLogExporter
3434from opentelemetry .exporter .otlp .proto .http .metric_exporter import OTLPMetricExporter as OTLPHttpOTLPMetricExporter
3535from opentelemetry .exporter .otlp .proto .http .trace_exporter import OTLPSpanExporter
@@ -124,24 +124,6 @@ class AwsOpenTelemetryConfigurator(_OTelSDKConfigurator):
124124 # pylint: disable=no-self-use
125125 @override
126126 def _configure (self , ** kwargs ):
127-
128- print (f"OTEL_EXPORTER_OTLP_LOGS_HEADERS: { os .environ .get ('OTEL_EXPORTER_OTLP_LOGS_HEADERS' , 'Not set' )} " )
129- print (f"OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED: { os .environ .get ('OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED' , 'Not set' )} " )
130- print (f"OTEL_METRICS_EXPORTER: { os .environ .get ('OTEL_METRICS_EXPORTER' , 'Not set' )} " )
131- print (f"OTEL_TRACES_EXPORTER: { os .environ .get ('OTEL_TRACES_EXPORTER' , 'Not set' )} " )
132- print (f"OTEL_LOGS_EXPORTER: { os .environ .get ('OTEL_LOGS_EXPORTER' , 'Not set' )} " )
133- print (f"OTEL_PYTHON_DISTRO: { os .environ .get ('OTEL_PYTHON_DISTRO' , 'Not set' )} " )
134- print (f"OTEL_PYTHON_CONFIGURATOR: { os .environ .get ('OTEL_PYTHON_CONFIGURATOR' , 'Not set' )} " )
135- print (f"OTEL_EXPORTER_OTLP_PROTOCOL: { os .environ .get ('OTEL_EXPORTER_OTLP_PROTOCOL' , 'Not set' )} " )
136- print (f"OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: { os .environ .get ('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT' , 'Not set' )} " )
137- print (f"OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: { os .environ .get ('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT' , 'Not set' )} " )
138- print (f"OTEL_RESOURCE_ATTRIBUTES: { os .environ .get ('OTEL_RESOURCE_ATTRIBUTES' , 'Not set' )} " )
139- print (f"AGENT_OBSERVABILITY_ENABLED: { os .environ .get ('AGENT_OBSERVABILITY_ENABLED' , 'Not set' )} " )
140- print (f"AWS_CLOUDWATCH_LOG_GROUP: { os .environ .get ('AWS_CLOUDWATCH_LOG_GROUP' , 'Not set' )} " )
141- print (f"AWS_CLOUDWATCH_LOG_STREAM: { os .environ .get ('AWS_CLOUDWATCH_LOG_STREAM' , 'Not set' )} " )
142- print (f"OTEL_PYTHON_DISABLED_INSTRUMENTATIONS: { os .environ .get ('OTEL_PYTHON_DISABLED_INSTRUMENTATIONS' , 'Not set' )} " )
143- print (f"PYTHONPATH: { os .environ .get ('PYTHONPATH' , 'Not set' )} " )
144-
145127 if _is_defer_to_workers_enabled () and _is_wsgi_master_process ():
146128 _logger .info (
147129 "Skipping ADOT initialization since deferral to worker is enabled, and this is a master process."
@@ -184,7 +166,7 @@ def _initialize_components():
184166 sampler = _custom_import_sampler (sampler_name , resource )
185167
186168 logging_enabled = os .getenv (_OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED , "false" )
187-
169+
188170 if logging_enabled .strip ().lower () == "true" :
189171 _init_logging (log_exporters , resource )
190172
@@ -195,7 +177,6 @@ def _initialize_components():
195177 resource = resource ,
196178 )
197179 _init_metrics (metric_exporters , resource )
198-
199180
200181
201182def _init_logging (
@@ -214,7 +195,12 @@ def _init_logging(
214195 for _ , exporter_class in exporters .items ():
215196 exporter_args : Dict [str , any ] = {}
216197 log_exporter = _customize_logs_exporter (exporter_class (** exporter_args ), resource )
217- provider .add_log_record_processor (AwsBatchLogRecordProcessor (exporter = log_exporter ))
198+
199+ if isinstance (log_exporter , OTLPAwsLogExporter ):
200+ provider .add_log_record_processor (AwsBatchLogRecordProcessor (exporter = log_exporter ))
201+
202+ else :
203+ provider .add_log_record_processor (BatchLogRecordProcessor (exporter = log_exporter ))
218204
219205 handler = LoggingHandler (level = NOTSET , logger_provider = provider )
220206
@@ -387,10 +373,7 @@ def _customize_span_exporter(span_exporter: SpanExporter, resource: Resource) ->
387373 if isinstance (span_exporter , OTLPSpanExporter ):
388374 if is_agent_observability_enabled ():
389375
390- span_exporter = OTLPAwsSpanExporter (
391- endpoint = traces_endpoint ,
392- logs_provider = get_logger_provider ()
393- )
376+ span_exporter = OTLPAwsSpanExporter (endpoint = traces_endpoint , logs_provider = get_logger_provider ())
394377 else :
395378 span_exporter = OTLPAwsSpanExporter (endpoint = traces_endpoint )
396379
@@ -657,4 +640,4 @@ def create_exporter(self):
657640 endpoint = application_signals_endpoint , preferred_temporality = temporality_dict
658641 )
659642
660- raise RuntimeError (f"Unsupported AWS Application Signals export protocol: { protocol } " )
643+ raise RuntimeError (f"Unsupported AWS Application Signals export protocol: { protocol } " )
0 commit comments