Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@
AwsMetricAttributesSpanExporterBuilder,
)
from amazon.opentelemetry.distro.aws_span_metrics_processor_builder import AwsSpanMetricsProcessorBuilder
from amazon.opentelemetry.distro.exporter.otlp.aws.common.aws_auth_session import AwsAuthSession
from amazon.opentelemetry.distro.exporter.otlp.aws.logs.otlp_aws_logs_exporter import OTLPAwsLogExporter
from amazon.opentelemetry.distro.exporter.otlp.aws.traces.otlp_aws_span_exporter import OTLPAwsSpanExporter
from amazon.opentelemetry.distro.otlp_udp_exporter import OTLPUdpSpanExporter
from amazon.opentelemetry.distro.sampler.aws_xray_remote_sampler import AwsXRayRemoteSampler
from amazon.opentelemetry.distro.scope_based_exporter import ScopeBasedPeriodicExportingMetricReader
from amazon.opentelemetry.distro.scope_based_filtering_view import ScopeBasedRetainingView
from opentelemetry._logs import set_logger_provider
from opentelemetry.exporter.otlp.proto.http import Compression
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter as OTLPHttpOTLPMetricExporter
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
Expand Down Expand Up @@ -359,10 +359,7 @@ def _customize_span_exporter(span_exporter: SpanExporter, resource: Resource) ->
_logger.info("Detected using AWS OTLP Traces Endpoint.")

if isinstance(span_exporter, OTLPSpanExporter):
span_exporter = OTLPSpanExporter(
endpoint=traces_endpoint,
session=AwsAuthSession(traces_endpoint.split(".")[1], "xray"),
)
span_exporter = OTLPAwsSpanExporter(endpoint=traces_endpoint)

else:
_logger.warning(
Expand All @@ -386,11 +383,7 @@ def _customize_logs_exporter(log_exporter: LogExporter, resource: Resource) -> L
# Setting default compression mode to Gzip as this is the behavior in upstream's
# collector otlp http exporter:
# https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/otlphttpexporter
return OTLPLogExporter(
endpoint=logs_endpoint,
compression=Compression.Gzip,
session=AwsAuthSession(logs_endpoint.split(".")[1], "logs"),
)
return OTLPAwsLogExporter(endpoint=logs_endpoint)

_logger.warning(
"Improper configuration see: please export/set "
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

from typing import Dict, Optional

from amazon.opentelemetry.distro.exporter.otlp.aws.common.aws_auth_session import AwsAuthSession
from opentelemetry.exporter.otlp.proto.http import Compression
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter


class OTLPAwsLogExporter(OTLPLogExporter):
def __init__(
self,
endpoint: Optional[str] = None,
certificate_file: Optional[str] = None,
client_key_file: Optional[str] = None,
client_certificate_file: Optional[str] = None,
headers: Optional[Dict[str, str]] = None,
timeout: Optional[int] = None,
):
self._aws_region = None

if endpoint:
self._aws_region = endpoint.split(".")[1]

OTLPLogExporter.__init__(
self,
endpoint,
certificate_file,
client_key_file,
client_certificate_file,
headers,
timeout,
compression=Compression.Gzip,
session=AwsAuthSession(aws_region=self._aws_region, service="logs"),
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0

from typing import Dict, Optional

from amazon.opentelemetry.distro.exporter.otlp.aws.common.aws_auth_session import AwsAuthSession
from opentelemetry.exporter.otlp.proto.http import Compression
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter


class OTLPAwsSpanExporter(OTLPSpanExporter):
def __init__(
self,
endpoint: Optional[str] = None,
certificate_file: Optional[str] = None,
client_key_file: Optional[str] = None,
client_certificate_file: Optional[str] = None,
headers: Optional[Dict[str, str]] = None,
timeout: Optional[int] = None,
compression: Optional[Compression] = None,
):
self._aws_region = None

if endpoint:
self._aws_region = endpoint.split(".")[1]

OTLPSpanExporter.__init__(
self,
endpoint,
certificate_file,
client_key_file,
client_certificate_file,
headers,
timeout,
compression,
session=AwsAuthSession(aws_region=self._aws_region, service="xray"),
)
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
from amazon.opentelemetry.distro.aws_opentelemetry_distro import AwsOpenTelemetryDistro
from amazon.opentelemetry.distro.aws_span_metrics_processor import AwsSpanMetricsProcessor
from amazon.opentelemetry.distro.exporter.otlp.aws.common.aws_auth_session import AwsAuthSession
from amazon.opentelemetry.distro.exporter.otlp.aws.logs.otlp_aws_logs_exporter import OTLPAwsLogExporter
from amazon.opentelemetry.distro.exporter.otlp.aws.traces.otlp_aws_span_exporter import OTLPAwsSpanExporter
from amazon.opentelemetry.distro.otlp_udp_exporter import OTLPUdpSpanExporter
from amazon.opentelemetry.distro.sampler._aws_xray_sampling_client import _AwsXRaySamplingClient
from amazon.opentelemetry.distro.sampler.aws_xray_remote_sampler import _AwsXRayRemoteSampler
Expand Down Expand Up @@ -377,7 +379,7 @@ def test_customize_span_exporter_sigv4(self):
config,
_customize_span_exporter,
OTLPSpanExporter(),
OTLPSpanExporter,
OTLPAwsSpanExporter,
AwsAuthSession,
Compression.NoCompression,
)
Expand Down Expand Up @@ -480,7 +482,12 @@ def test_customize_logs_exporter_sigv4(self):

for config in good_configs:
self.customize_exporter_test(
config, _customize_logs_exporter, OTLPLogExporter(), OTLPLogExporter, AwsAuthSession, Compression.Gzip
config,
_customize_logs_exporter,
OTLPLogExporter(),
OTLPAwsLogExporter,
AwsAuthSession,
Compression.Gzip,
)

for config in bad_configs:
Expand Down
Loading