Skip to main content

Awsxray Exporter

Status Available in: contrib Maintainers: @wangzlei, @srprash Source: opentelemetry-collector-contrib

Supported Telemetry

Traces

Overview

This exporter converts OpenTelemetry spans to AWS X-Ray Segment Documents and then sends them directly to X-Ray using the PutTraceSegments API.

Data Conversion

Trace IDs and Span IDs are expected to be originally generated by either AWS API Gateway or AWS ALB and propagated by them using the X-Amzn-Trace-Id HTTP header. However, other generation sources are supported by replacing fully-random Trace IDs with X-Ray formatted Trace IDs where necessary:
AWS X-Ray IDs in binary are 128 bits, the same size as W3C Trace Context IDs but the string is formatted to “1-{8 digit hex}-{24 digit hex}“. For example, The W3C format trace ID “4bf92f3577b34da6a3ce929d0e0e4736” is converted to the X-Ray format trace ID “1-4bf92f35-77b34da6a3ce929d0e0e4736”.
The http object is populated when the component attribute value is grpc as well as http. Other synchronous call types should also result in the http object being populated.

AWS Specific Attributes

The following AWS-specific Span attributes are supported in addition to the standard names and values defined in the OpenTelemetry Semantic Conventions. Any of these values supplied are used to populate the aws object in addition to any relevant data supplied by the Span Resource object. X-Ray uses this data to generate inferred segments for the remote APIs.

Exporter Configuration

The following exporter configuration parameters are supported. They mirror and have the same effect as the comparable AWS X-Ray Daemon configuration values.

Traces and logs correlation

AWS X-Ray can be integrated with CloudWatch Logs to correlate traces with logs. For this integration to work, the X-Ray segments must have the AWS Property cloudwatch_logs set. This property is set using the AWS X-Ray exporter with the following values that are evaluated in this order:
  1. aws.log.group.arns resource attribute.
  2. aws.log.group.names resource attribute.
  3. aws_log_groups configuration property.
In the case of multiple values are defined, the value with higher precedence will be used to set the cloudwatch_logs AWS Property. aws.log.group.arns and aws.log.group.names are slice resource attributes that can be set programmatically. Alternatively those resource attributes can be set using the OTEL_RESOURCE_ATTRIBUTES environment variable. To set multiple log group names /log group arns, you can use & to separate them. For example, 3 log groups log-group1, log-group2, and log-group3 are set in the following command:

AWS Credential Configuration

This exporter follows default credential resolution for the aws-sdk-go. Follow the guidelines for the credential configuration.

Configuration

Example Configuration


Last generated: 2026-08-24