diff --git a/crates/obs/Cargo.toml b/crates/obs/Cargo.toml index f6d9c478..26c26433 100644 --- a/crates/obs/Cargo.toml +++ b/crates/obs/Cargo.toml @@ -21,6 +21,7 @@ full = ["file", "gpu", "kafka", "webhook"] async-trait = { workspace = true } chrono = { workspace = true } config = { workspace = true } +local-ip-address = { workspace = true } nvml-wrapper = { workspace = true, optional = true } opentelemetry = { workspace = true } opentelemetry-appender-tracing = { workspace = true, features = ["experimental_use_tracing_span_context", "experimental_metadata_attributes"] } @@ -41,7 +42,7 @@ reqwest = { workspace = true, optional = true, default-features = false } serde_json = { workspace = true } sysinfo = { workspace = true } thiserror = { workspace = true } -local-ip-address = { workspace = true } + [dev-dependencies] diff --git a/crates/obs/src/telemetry.rs b/crates/obs/src/telemetry.rs index 654ae414..931e2449 100644 --- a/crates/obs/src/telemetry.rs +++ b/crates/obs/src/telemetry.rs @@ -213,22 +213,22 @@ pub fn init_telemetry(config: &OtelConfig) -> OtelGuard { .with_line_number(true); let filter = build_env_filter(logger_level, None); - - let tracer = tracer_provider.tracer(Cow::Borrowed(service_name).to_string()); - let otel_filter = build_env_filter(logger_level, None); let otel_layer = OpenTelemetryTracingBridge::new(&logger_provider).with_filter(otel_filter); - + let tracer = tracer_provider.tracer(Cow::Borrowed(service_name).to_string()); // Configure registry to avoid repeated calls to filter methods - tracing_subscriber::registry() + let registry = tracing_subscriber::registry() .with(filter) - .with(fmt_layer) - .with(ErrorLayer::default()) .with(otel_layer) .with(MetricsLayer::new(meter_provider.clone())) .with(OpenTelemetryLayer::new(tracer)) - .with(ErrorLayer::default()) - .init(); + .with(ErrorLayer::default()); + info!("Telemetry logging enabled: {:?}", config.local_logging_enabled); + if config.local_logging_enabled.unwrap_or(false) { + registry.with(fmt_layer).init(); + } else { + registry.init(); + } if !endpoint.is_empty() { info!( diff --git a/deploy/config/obs.example.toml b/deploy/config/obs.example.toml index 97192fb4..e38e06f8 100644 --- a/deploy/config/obs.example.toml +++ b/deploy/config/obs.example.toml @@ -7,6 +7,7 @@ service_name = "rustfs" service_version = "0.1.0" environment = "develop" logger_level = "error" +local_logging_enabled = true [sinks] [sinks.kafka] # Kafka sink is disabled by default diff --git a/scripts/run.sh b/scripts/run.sh index 1d1470d9..7717a371 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -47,7 +47,7 @@ export RUSTFS__OBSERVABILITY__SERVICE_NAME=rustfs export RUSTFS__OBSERVABILITY__SERVICE_VERSION=0.1.0 export RUSTFS__OBSERVABILITY__ENVIRONMENT=develop export RUSTFS__OBSERVABILITY__LOGGER_LEVEL=debug -export RUSTFS__OBSERVABILITY__LOCAL_LOGGER_ENABLED=true +export RUSTFS__OBSERVABILITY__LOCAL_LOGGING_ENABLED=true export RUSTFS__SINKS__FILE__ENABLED=true export RUSTFS__SINKS__FILE__PATH="./deploy/logs/rustfs.log" export RUSTFS__SINKS__WEBHOOK__ENABLED=false