MCPcopy Create free account
hub / github.com/aws/aws-lambda-rust-runtime / main

Function main

examples/http-axum-streaming-otel/src/main.rs:78–106  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

76
77#[tokio::main]
78async fn main() -> Result<(), Error> {
79 // Set up OpenTelemetry tracer provider that writes spans to stdout for
80 // debugging purposes
81 let exporter = opentelemetry_stdout::SpanExporter::default();
82 let tracer_provider = trace::SdkTracerProvider::builder()
83 .with_batch_exporter(exporter)
84 .build();
85
86 // Set up link between OpenTelemetry and tracing crate
87 tracing_subscriber::registry()
88 .with(tracing_opentelemetry::OpenTelemetryLayer::new(
89 tracer_provider.tracer("my-streaming-app"),
90 ))
91 .init();
92
93 let svc = Router::new().route("/", get(stream_words));
94
95 // Initialize the Lambda runtime and add OpenTelemetry tracing
96 let runtime = Runtime::new(StreamAdapter::from(svc)).layer(
97 OtelLayer::new(|| {
98 if let Err(err) = tracer_provider.force_flush() {
99 eprintln!("Error flushing traces: {err:#?}");
100 }
101 })
102 .with_trigger(OpenTelemetryFaasTrigger::Http),
103 );
104
105 runtime.run().await
106}

Callers

nothing calls this directly

Calls 5

buildMethod · 0.80
withMethod · 0.80
with_triggerMethod · 0.80
layerMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected