| Status | |
|---|---|
| Stability | beta |
| Owners | Jonathan Lee, Chinmay Chahar |
Additional types for exporting OpenTelemetry data to AWS.
OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument,
generate, collect, and export telemetry data (metrics, logs, and traces) for
analysis in order to understand your software's performance and behavior. This
crate provides additional propagators and exporters for sending telemetry data
to AWS's telemetry platform.
| Component | Feature | Description |
|---|---|---|
| X-Ray Propagator | trace |
Propagates trace context using the X-Amzn-Trace-Id header |
| X-Ray ID Generator | trace |
Generates X-Ray-compatible trace and span IDs (time-based trace IDs) |
| X-Ray Exporter | xray-exporter |
Exports OpenTelemetry spans as X-Ray segment documents |
| Lambda Resource Detector | detector-aws-lambda |
Detects AWS Lambda resource attributes from the environment |
Basic setup forwarding Segments to the local X-Ray daemon (requires xray-daemon-client feature):
use opentelemetry_aws::{
trace::XrayIdGenerator,
xray_exporter::{XrayExporter, daemon_client::XrayDaemonClient},
};
use opentelemetry_sdk::trace::SdkTracerProvider;
use opentelemetry::global;
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create a client that sends to the X-Ray daemon on localhost:2000 (UDP)
let daemon_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 2000);
let client = XrayDaemonClient::new(daemon_addr)?;
// Create the exporter
let exporter = XrayExporter::new(client);
// Build and register the tracer provider
let provider = SdkTracerProvider::builder()
.with_id_generator(XrayIdGenerator::default())
.with_batch_exporter(exporter)
.build();
global::set_tracer_provider(provider);
Ok(())
}| Feature | Default | Description |
|---|---|---|
trace |
Yes | X-Ray propagator and ID generator |
xray-exporter |
No | X-Ray span exporter with SegmentTranslator and SegmentDocumentExporter trait |
xray-daemon-client |
No | XrayDaemonClient — UDP client for the X-Ray daemon |
xray-stdout-client |
No | StdoutClient — writes segment documents to stdout (useful for debugging) |
subsegment-nesting |
No | Enables subsegment nesting within parent segments during translation |
detector-aws-lambda |
No | AWS Lambda resource detector |
internal-logs |
Yes | Internal instrumentation via the tracing crate |
