Skip to content

Commit 9416d72

Browse files
Feature/otel span kind support (#946)
* feat(otel): add span kind support to Lambda invocation tracing * fix fmt * docs(example): demonstrate OpenTelemetry span kind usage * fix fmt
1 parent f024fd0 commit 9416d72

File tree

2 files changed

+5
-1
lines changed
  • examples/opentelemetry-tracing/src
  • lambda-runtime/src/layers

2 files changed

+5
-1
lines changed

examples/opentelemetry-tracing/src/main.rs

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use lambda_runtime::{
22
layers::{OpenTelemetryFaasTrigger, OpenTelemetryLayer as OtelLayer},
3+
tracing::Span,
34
LambdaEvent, Runtime,
45
};
56
use opentelemetry::trace::TracerProvider;
@@ -8,6 +9,8 @@ use tower::{service_fn, BoxError};
89
use tracing_subscriber::prelude::*;
910

1011
async fn echo(event: LambdaEvent<serde_json::Value>) -> Result<serde_json::Value, &'static str> {
12+
let span = Span::current();
13+
span.record("otel.kind", "SERVER");
1114
Ok(event.payload)
1215
}
1316

lambda-runtime/src/layers/otel.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::LambdaInvocation;
44
use opentelemetry_semantic_conventions::trace as traceconv;
55
use pin_project::pin_project;
66
use tower::{Layer, Service};
7-
use tracing::{instrument::Instrumented, Instrument};
7+
use tracing::{field, instrument::Instrumented, Instrument};
88

99
/// Tower layer to add OpenTelemetry tracing to a Lambda function invocation. The layer accepts
1010
/// a function to flush OpenTelemetry after the end of the invocation.
@@ -75,6 +75,7 @@ where
7575
let span = tracing::info_span!(
7676
"Lambda function invocation",
7777
"otel.name" = req.context.env_config.function_name,
78+
"otel.kind" = field::Empty,
7879
{ traceconv::FAAS_TRIGGER } = &self.otel_attribute_trigger,
7980
{ traceconv::FAAS_INVOCATION_ID } = req.context.request_id,
8081
{ traceconv::FAAS_COLDSTART } = self.coldstart

0 commit comments

Comments
 (0)