-
Notifications
You must be signed in to change notification settings - Fork 583
Closed
Description
What happened?
After upgrading opentelemetry crates from version 0.23 to 0.30, we noticed that the service.name is no longer correctly propagated to Jaeger. Instead of the expected service.name, Jaeger displays the default OTLPResourceNoServiceName.
We define our tracer provider as follows:
use opentelemetry::{global, KeyValue};
use opentelemetry_sdk::{
trace::SdkTracerProvider,
Resource,
};
use opentelemetry_semantic_conventions::resource::{CONTAINER_IMAGE_TAGS, HOST_NAME, SERVICE_NAME};
impl<
Runtime: opentelemetry_sdk::runtime::Runtime
+ opentelemetry_sdk::runtime::RuntimeChannel
+ std::fmt::Debug,
> MySpanProcessor<Runtime>
{
fn new<Exporter: SpanExporter + 'static>(
exporter: Exporter,
runtime: Runtime,
) -> Self {
Self {
otel_batch_span_processor: BatchSpanProcessor::builder(exporter, runtime).build(),
}
}
}
let exporter = opentelemetry_otlp::SpanExporter::builder()
.with_tonic()
.with_endpoint(endpoint)
.build()?;
let my_span_processor = MySpanProcessor::new(exporter, Tokio);
let tracer_provider = SdkTracerProvider::builder()
.with_span_processor(my_span_processor)
.with_resource(
Resource::builder_empty()
.with_attributes(vec![
KeyValue::new(SERVICE_NAME, service_name.clone()),
KeyValue::new(HOST_NAME, host_name),
KeyValue::new(CONTAINER_IMAGE_TAGS, image_tag),
])
.build(),
)
.build();
let tracer_name = format!("{service_name}-tracer");
let tracer = tracer_provider.tracer(tracer_name);
let _ = global::set_tracer_provider(tracer_provider);
We have tried a couple of alternatives:
- Using Resource::builder().with_service_name(...) instead of a custom attribute list.
- Adding SdkProvidedResourceDetector (and setting the proper env) to the tracer provider builder.
- Explicitly logging the built resource to confirm service.name is present in the final resource.
OpenTelemetry API Version (i.e version of opentelemetry
crate)
0.30
OpenTelemetry SDK Version (i.e version of opentelemetry_sdk
crate)
0.30
What Exporter(s) are you seeing the problem on?
OTLP
Metadata
Metadata
Assignees
Labels
No labels