Skip to content

Commit 6c396db

Browse files
committed
default to gzip compression
1 parent 4ad4435 commit 6c396db

File tree

2 files changed

+43
-25
lines changed

2 files changed

+43
-25
lines changed

aws-opentelemetry-distro/src/amazon/opentelemetry/distro/aws_opentelemetry_configurator.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,14 +180,14 @@ def _init_logging(
180180
# Provides a default OTLP log exporter when none is specified.
181181
# This is the behavior for the logs exporters for other languages.
182182
if not exporters:
183-
exporters.setdefault("otlp", OTLPLogExporter)
183+
exporters = {"otlp": OTLPLogExporter}
184184

185185
provider = LoggerProvider(resource=resource)
186186
set_logger_provider(provider)
187187

188188
for _, exporter_class in exporters.items():
189189
exporter_args: Dict[str, any] = {}
190-
log_exporter = _customize_logs_exporter(exporter_class(**exporter_args))
190+
log_exporter = _customize_logs_exporter(exporter_class(**exporter_args), resource)
191191
provider.add_log_record_processor(BatchLogRecordProcessor(exporter=log_exporter))
192192

193193
handler = LoggingHandler(level=NOTSET, logger_provider=provider)
@@ -376,7 +376,7 @@ def _customize_span_exporter(span_exporter: SpanExporter, resource: Resource) ->
376376
return AwsMetricAttributesSpanExporterBuilder(span_exporter, resource).build()
377377

378378

379-
def _customize_logs_exporter(log_exporter: LogExporter) -> LogExporter:
379+
def _customize_logs_exporter(log_exporter: LogExporter, resource: Resource) -> LogExporter:
380380
logs_endpoint = os.environ.get(OTEL_EXPORTER_OTLP_LOGS_ENDPOINT)
381381

382382
if is_aws_otlp_endpoint(logs_endpoint, "logs"):
@@ -548,7 +548,7 @@ def validate_logs_headers() -> bool:
548548
split = pair.split("=", 1)
549549
key = split[0]
550550
value = split[1]
551-
if (key == AWS_OTLP_LOGS_GROUP_HEADER or key == AWS_OTLP_LOGS_STREAM_HEADER) and value:
551+
if key in (AWS_OTLP_LOGS_GROUP_HEADER, AWS_OTLP_LOGS_STREAM_HEADER) and value:
552552
filtered_log_headers_count += 1
553553

554554
if filtered_log_headers_count != 2:

aws-opentelemetry-distro/tests/amazon/opentelemetry/distro/test_aws_opentelementry_configurator.py

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -376,22 +376,20 @@ def test_customize_span_exporter_sigv4(self):
376376
self.customize_exporter_test(
377377
config,
378378
_customize_span_exporter,
379+
OTLPSpanExporter(),
379380
OTLPSpanExporter,
380381
AwsAuthSession,
381382
Compression.NoCompression,
382-
OTLPSpanExporter(),
383-
Resource.get_empty(),
384383
)
385384

386385
for config in bad_configs:
387386
self.customize_exporter_test(
388387
config,
389388
_customize_span_exporter,
389+
OTLPSpanExporter(),
390390
OTLPSpanExporter,
391391
Session,
392392
Compression.NoCompression,
393-
OTLPSpanExporter(),
394-
Resource.get_empty(),
395393
)
396394

397395
self.assertIsInstance(
@@ -482,17 +480,35 @@ def test_customize_logs_exporter_sigv4(self):
482480

483481
for config in good_configs:
484482
self.customize_exporter_test(
485-
config, _customize_logs_exporter, OTLPLogExporter, AwsAuthSession, Compression.Gzip, OTLPLogExporter()
483+
config, _customize_logs_exporter, OTLPLogExporter(), OTLPLogExporter, AwsAuthSession, Compression.Gzip
486484
)
487485

488486
for config in bad_configs:
489487
self.customize_exporter_test(
490-
config, _customize_logs_exporter, OTLPLogExporter, Session, Compression.NoCompression, OTLPLogExporter()
488+
config, _customize_logs_exporter, OTLPLogExporter(), OTLPLogExporter, Session, Compression.NoCompression
491489
)
492490

493-
self.assertIsInstance(_customize_logs_exporter(OTLPGrpcLogExporter()), OTLPGrpcLogExporter)
491+
self.assertIsInstance(
492+
_customize_logs_exporter(OTLPGrpcLogExporter(), Resource.get_empty()), OTLPGrpcLogExporter
493+
)
494+
495+
# Need to patch all of these to prevent some weird multi-threading error with the LogProvider
496+
@patch("amazon.opentelemetry.distro.aws_opentelemetry_configurator.LoggingHandler", return_value=MagicMock())
497+
@patch("amazon.opentelemetry.distro.aws_opentelemetry_configurator.getLogger", return_value=MagicMock())
498+
@patch("amazon.opentelemetry.distro.aws_opentelemetry_configurator._customize_logs_exporter")
499+
@patch("amazon.opentelemetry.distro.aws_opentelemetry_configurator.LoggerProvider", return_value=MagicMock())
500+
@patch(
501+
"amazon.opentelemetry.distro.aws_opentelemetry_configurator.BatchLogRecordProcessor", return_value=MagicMock()
502+
)
503+
def test_init_logging(
504+
self,
505+
mock_batch_processor,
506+
mock_logger_provider,
507+
mock_customize_logs_exporter,
508+
mock_get_logger,
509+
mock_logging_handler,
510+
):
494511

495-
def test_init_logging(self):
496512
captured_exporter = None
497513

498514
def capture_exporter(*args, **kwargs):
@@ -501,6 +517,8 @@ def capture_exporter(*args, **kwargs):
501517
captured_exporter = result
502518
return result
503519

520+
mock_customize_logs_exporter.side_effect = capture_exporter
521+
504522
test_cases = [
505523
[{"otlp": OTLPLogExporter}, OTLPLogExporter],
506524
[{}, OTLPLogExporter],
@@ -509,18 +527,12 @@ def capture_exporter(*args, **kwargs):
509527

510528
os.environ[OTEL_EXPORTER_OTLP_LOGS_ENDPOINT] = "https://logs.us-east-1.amazonaws.com/v1/logs"
511529

512-
with patch(
513-
"amazon.opentelemetry.distro.aws_opentelemetry_configurator._customize_logs_exporter"
514-
) as mock_customize_logs_exporter:
515-
516-
mock_customize_logs_exporter.side_effect = capture_exporter
517-
518-
for tc in test_cases:
519-
exporter_dict = tc[0]
520-
expected_exporter = tc[1]
521-
_init_logging(exporter_dict, Resource.get_empty())
530+
for tc in test_cases:
531+
exporter_dict = tc[0]
532+
expected_exporter = tc[1]
533+
_init_logging(exporter_dict, Resource.get_empty())
522534

523-
self.assertIsInstance(captured_exporter, expected_exporter)
535+
self.assertIsInstance(captured_exporter, expected_exporter)
524536

525537
os.environ.pop(OTEL_EXPORTER_OTLP_LOGS_ENDPOINT)
526538

@@ -664,13 +676,19 @@ def test_customize_metric_exporter(self):
664676
os.environ.pop("OTEL_METRIC_EXPORT_INTERVAL", None)
665677

666678
def customize_exporter_test(
667-
self, config, executor, expected_exporter_type, expected_session, expected_compression, *args
679+
self,
680+
config,
681+
executor,
682+
default_exporter,
683+
expected_exporter_type,
684+
expected_session,
685+
expected_compression,
668686
):
669687
for key, value in config.items():
670688
os.environ[key] = value
671689

672690
try:
673-
result = executor(*args)
691+
result = executor(default_exporter, Resource.get_empty())
674692
self.assertIsInstance(result, expected_exporter_type)
675693
self.assertIsInstance(result._session, expected_session)
676694
self.assertEqual(result._compression, expected_compression)

0 commit comments

Comments
 (0)