@@ -4,7 +4,7 @@ use lambda_runtime::{
4
4
LambdaEvent , Runtime ,
5
5
} ;
6
6
use opentelemetry:: trace:: TracerProvider ;
7
- use opentelemetry_sdk:: { runtime , trace} ;
7
+ use opentelemetry_sdk:: trace;
8
8
use tower:: { service_fn, BoxError } ;
9
9
use tracing_subscriber:: prelude:: * ;
10
10
@@ -18,8 +18,8 @@ async fn echo(event: LambdaEvent<serde_json::Value>) -> Result<serde_json::Value
18
18
async fn main ( ) -> Result < ( ) , BoxError > {
19
19
// Set up OpenTelemetry tracer provider that writes spans to stdout for debugging purposes
20
20
let exporter = opentelemetry_stdout:: SpanExporter :: default ( ) ;
21
- let tracer_provider = trace:: TracerProvider :: builder ( )
22
- . with_batch_exporter ( exporter, runtime :: Tokio )
21
+ let tracer_provider = trace:: SdkTracerProvider :: builder ( )
22
+ . with_batch_exporter ( exporter)
23
23
. build ( ) ;
24
24
25
25
// Set up link between OpenTelemetry and tracing crate
@@ -34,7 +34,9 @@ async fn main() -> Result<(), BoxError> {
34
34
// Create a tracing span for each Lambda invocation
35
35
OtelLayer :: new ( || {
36
36
// Make sure that the trace is exported before the Lambda runtime is frozen
37
- tracer_provider. force_flush ( ) ;
37
+ if let Err ( err) = tracer_provider. force_flush ( ) {
38
+ eprintln ! ( "Error flushing traces: {err:#?}" ) ;
39
+ }
38
40
} )
39
41
// Set the "faas.trigger" attribute of the span to "pubsub"
40
42
. with_trigger ( OpenTelemetryFaasTrigger :: PubSub ) ,
0 commit comments