I am try to send tracing data to NewRelic via Opentelemetry collector. I run otel collector using docker-compose . I can see traces via trace.id but service.name is not visible. I tried using jaegar and service name is visible there
Below is the code snippet for Otlp
main.rs
fn main() -> {
let tracer = opentelemetry_otlp::new_pipeline()
.tracing()
.with_exporter(
opentelemetry_otlp::new_exporter()
.tonic()
.with_endpoint("http://localhost:4317")
)
.with_trace_config(
trace::config()
.with_sampler(Sampler::AlwaysOn)
.with_id_generator(RandomIdGenerator::default())
.with_resource(Resource::new(vec![KeyValue::new("service.name", "tracing-app")])),
)
.install_batch(opentelemetry_sdk::runtime::Tokio)
.unwrap()
.tracer("trace_demo");
let otel_layer = Opentelemetry::new(tracer);
let subscriber = Registry::default()
.with(otel_layer);
subscriber::set_global_default(subscriber)
.expect("Failed")
}
I am getting tracing data on otel collector and after tracking the trace.id on NewRelic, I was able to view trace id but service.name was not visible but while trying the same with Jaegar service name is present .
My log in otel-collector container looks like below:
Resource SchemaURL:
Resource attributes:
-> service.name: Str(tracing-app)
ScopeSpans #0
ScopeSpans SchemaURL:
InstrumentationScope opentelemetry.instrumentation.jinja2 0.42b0
Span #0
Trace ID : ef80927d174b370869aabe7a8c2e75df
Parent ID : b58805531a48ee21
ID : 35e3b46ced0bc74e
Name : jinja2.compile
Kind : Internal
Start time : 2023-12-13 08:13:45.392929004 +0000 UTC
End time : 2023-12-13 08:13:45.401316639 +0000 UTC
Status code : Unset
Status message :
Attributes:
-> jinja2.template_name: Str(blog/create.html)
Can anyone help