diff --git a/docker-compose.yml b/docker-compose.yml index d06be9b3007..fde25984bc8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -133,7 +133,6 @@ services: OSRDYNE_API_URL: "http://osrd-osrdyne:4242/" TELEMETRY_KIND: "opentelemetry" TELEMETRY_ENDPOINT: "http://jaeger:4317" - OTEL_SERVICE_NAME: "osrd-editoast" OSRD_MQ_URL: "amqp://osrd:password@osrd-rabbitmq:5672/%2f" command: - /bin/sh @@ -186,7 +185,6 @@ services: environment: RUST_LOG: "info" OSRDYNE__OPENTELEMETRY__ENDPOINT: "http://osrd-jaeger:4317" - OSRDYNE__OPENTELEMETRY__SERVICE_NAME: "osrdyne" jaeger: image: jaegertracing/jaeger:latest diff --git a/docker/gateway.dev.host.toml b/docker/gateway.dev.host.toml index ca9f7333496..e0408a31d27 100644 --- a/docker/gateway.dev.host.toml +++ b/docker/gateway.dev.host.toml @@ -7,7 +7,7 @@ secret_key = "NOT+A+SECRET++NOT+A+SECRET++NOT+A+SECRET++NOT+A+SECRET++NOT+A+SECR listen_addr = "0.0.0.0" [telemetry.tracing] -enable = true +type = "Otlp" endpoint = "http://localhost:4317" [[targets]] diff --git a/docker/gateway.dev.simple.toml b/docker/gateway.dev.simple.toml index 8a25868dd83..13d7a64ecdf 100644 --- a/docker/gateway.dev.simple.toml +++ b/docker/gateway.dev.simple.toml @@ -8,9 +8,7 @@ listen_addr = "0.0.0.0" allowed_origins = ["http://127.0.0.1:3000", "http://localhost:3000"] [telemetry.tracing] -enable = true type = "Otlp" -service_name = "gateway" endpoint = "http://osrd-jaeger:4317" [[targets]] diff --git a/docker/gateway.pr-tests.simple.toml b/docker/gateway.pr-tests.simple.toml index d328f4091d0..98b49939324 100644 --- a/docker/gateway.pr-tests.simple.toml +++ b/docker/gateway.pr-tests.simple.toml @@ -8,9 +8,7 @@ listen_addr = "0.0.0.0" port = 4001 [telemetry.tracing] -enable = true type = "Otlp" -service_name = "gateway" endpoint = "http://osrd-jaeger-pr-tests:4319" diff --git a/editoast/Dockerfile b/editoast/Dockerfile index 0c7dcbf95ff..491e3227657 100644 --- a/editoast/Dockerfile +++ b/editoast/Dockerfile @@ -65,6 +65,7 @@ COPY --from=run_builder /editoast/assets /assets ARG OSRD_GIT_DESCRIBE ENV OSRD_GIT_DESCRIBE=${OSRD_GIT_DESCRIBE} +ENV OTEL_SERVICE_NAME="osrd-editoast" ENV DYNAMIC_ASSETS_PATH=/assets # We use jemalloc to reduce allocation fragmentation diff --git a/gateway/Dockerfile b/gateway/Dockerfile index 8b0420f1841..e0c619e0ffe 100644 --- a/gateway/Dockerfile +++ b/gateway/Dockerfile @@ -53,5 +53,6 @@ COPY --from=run_builder /usr/local/cargo/bin/osrd_gateway /usr/local/bin/osrd_ga ARG OSRD_GIT_DESCRIBE ENV OSRD_GIT_DESCRIBE=${OSRD_GIT_DESCRIBE} +ENV OTEL_SERVICE_NAME="osrd-gateway" CMD ["/usr/local/bin/osrd_gateway"] diff --git a/gateway/gateway.toml b/gateway/gateway.toml index 612faf4aaa4..6a909877e33 100644 --- a/gateway/gateway.toml +++ b/gateway/gateway.toml @@ -6,8 +6,6 @@ secret_key = "NOT+A+SECRET++NOT+A+SECRET++NOT+A+SECRET++NOT+A+SECRET++NOT+A+SECR [telemetry.tracing] type = "Otlp" -enable = true -service_name = "gateway" endpoint = "http://localhost:4317" [[targets]] diff --git a/gateway/src/config.rs b/gateway/src/config.rs index 6bbeb3c7c18..96634d196cf 100644 --- a/gateway/src/config.rs +++ b/gateway/src/config.rs @@ -33,10 +33,7 @@ impl Telemetry { #[serde(tag = "type")] pub enum TracingTelemetry { None, - Otlp { - endpoint: String, - service_name: Option, - }, + Otlp { endpoint: String }, } #[derive(Deserialize, Serialize, Clone)] @@ -47,7 +44,7 @@ pub enum Endpoint { } impl TracingTelemetry { - fn enable_otlp(&self, endpoint: &String, service_name: String) { + fn enable_otlp(&self, endpoint: &String) { let exporter = opentelemetry_otlp::new_exporter() .tonic() .with_endpoint(endpoint) @@ -56,18 +53,14 @@ impl TracingTelemetry { info!("Tracing enabled with otlp"); - let resource = opentelemetry_sdk::Resource::new(vec![opentelemetry::KeyValue::new( - "service.name", - service_name, - )]) - .merge(&opentelemetry_sdk::Resource::from_detectors( + let resource = opentelemetry_sdk::Resource::from_detectors( Duration::from_secs(10), vec![ Box::new(SdkProvidedResourceDetector), Box::new(TelemetryResourceDetector), Box::new(EnvResourceDetector::new()), ], - )); + ); let provider = TracerProvider::builder() .with_config(opentelemetry_sdk::trace::Config::default().with_resource(resource)) .with_batch_exporter(exporter, TokioCurrentThread) @@ -78,18 +71,8 @@ impl TracingTelemetry { } pub fn enable_providers(&self) { - let service_name = match self { - TracingTelemetry::None => { - info!("Tracing disabled"); - return; - } - TracingTelemetry::Otlp { service_name, .. } => { - service_name.clone().unwrap_or("osrd-gateway".to_string()) - } - }; - if let TracingTelemetry::Otlp { endpoint, .. } = self { - self.enable_otlp(endpoint, service_name); + self.enable_otlp(endpoint); } } } diff --git a/osrdyne/Dockerfile b/osrdyne/Dockerfile index a698dd70df5..513faee7124 100644 --- a/osrdyne/Dockerfile +++ b/osrdyne/Dockerfile @@ -53,5 +53,6 @@ COPY --from=run_builder /usr/local/cargo/bin/osrdyne /usr/local/bin/osrdyne ARG OSRD_GIT_DESCRIBE ENV OSRD_GIT_DESCRIBE=${OSRD_GIT_DESCRIBE} +ENV OTEL_SERVICE_NAME="osrd-osrdyne" CMD ["/usr/local/bin/osrdyne"] diff --git a/osrdyne/src/config.rs b/osrdyne/src/config.rs index 795f6f67cb4..2530fd58a5b 100644 --- a/osrdyne/src/config.rs +++ b/osrdyne/src/config.rs @@ -40,14 +40,12 @@ pub struct OsrdyneConfig { #[derive(Debug, Deserialize, Serialize)] pub struct OpentelemetryConfig { - pub service_name: Option, pub endpoint: Url, } impl Default for OpentelemetryConfig { fn default() -> Self { Self { - service_name: None, endpoint: "http://jaeger:4317".parse().unwrap(), } } diff --git a/osrdyne/src/main.rs b/osrdyne/src/main.rs index 8c0e123b689..adc36c805d1 100644 --- a/osrdyne/src/main.rs +++ b/osrdyne/src/main.rs @@ -231,20 +231,14 @@ fn init_tracing(config: &OsrdyneConfig) { .tonic() .with_endpoint(otel.endpoint.as_str()); - let svc_name = otel.service_name.clone().unwrap_or("osrdyne".to_string()); - - let resource = opentelemetry_sdk::Resource::new(vec![opentelemetry::KeyValue::new( - opentelemetry_semantic_conventions::resource::SERVICE_NAME, - svc_name.clone(), - )]) - .merge(&opentelemetry_sdk::Resource::from_detectors( + let resource = opentelemetry_sdk::Resource::from_detectors( Duration::from_secs(10), vec![ Box::new(SdkProvidedResourceDetector), Box::new(TelemetryResourceDetector), Box::new(EnvResourceDetector::new()), ], - )); + ); let trace_config = opentelemetry_sdk::trace::Config::default().with_resource(resource); let otlp_tracer_provider = opentelemetry_otlp::new_pipeline() @@ -254,7 +248,9 @@ fn init_tracing(config: &OsrdyneConfig) { .install_batch(opentelemetry_sdk::runtime::Tokio) .expect("Failed to initialize Opentelemetry tracer"); - let otlp_tracer = otlp_tracer_provider.tracer(svc_name.clone()); + let otlp_tracer = otlp_tracer_provider.tracer( + std::env::var("OTEL_SERVICE_NAME").unwrap_or_else(|_| String::from("osrd-osrdyne")), + ); let layer = tracing_opentelemetry::layer() .with_tracer(otlp_tracer)