mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 05:52:19 +00:00
Hide opentelemetry behind feature flag
This commit is contained in:
@@ -1,21 +1,28 @@
|
||||
use crate::config::TracingConfig;
|
||||
use opentelemetry::global;
|
||||
use opentelemetry::trace::TracerProvider;
|
||||
use opentelemetry::KeyValue;
|
||||
#[cfg(feature = "opentelemetry")]
|
||||
use opentelemetry::{global, trace::TracerProvider, KeyValue};
|
||||
#[cfg(feature = "opentelemetry")]
|
||||
use opentelemetry_otlp::WithExportConfig;
|
||||
use opentelemetry_sdk::propagation::TraceContextPropagator;
|
||||
use opentelemetry_sdk::trace::Tracer;
|
||||
use opentelemetry_sdk::Resource;
|
||||
use opentelemetry_semantic_conventions::resource::{SERVICE_NAME, SERVICE_VERSION};
|
||||
use opentelemetry_semantic_conventions::SCHEMA_URL;
|
||||
#[cfg(feature = "opentelemetry")]
|
||||
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::Tracer, Resource};
|
||||
#[cfg(feature = "opentelemetry")]
|
||||
use opentelemetry_semantic_conventions::{
|
||||
resource::{SERVICE_NAME, SERVICE_VERSION},
|
||||
SCHEMA_URL,
|
||||
};
|
||||
#[cfg(feature = "opentelemetry")]
|
||||
use std::time::Duration;
|
||||
use tracing::level_filters::LevelFilter;
|
||||
#[cfg(not(feature = "opentelemetry"))]
|
||||
use tracing::warn;
|
||||
#[cfg(feature = "opentelemetry")]
|
||||
use tracing_opentelemetry::OpenTelemetryLayer;
|
||||
use tracing_subscriber::layer::SubscriberExt;
|
||||
use tracing_subscriber::util::SubscriberInitExt;
|
||||
use tracing_subscriber::EnvFilter;
|
||||
|
||||
pub fn init_tracer() -> Tracer {
|
||||
#[cfg(feature = "opentelemetry")]
|
||||
pub fn init_otel() -> Tracer {
|
||||
let otel_exporter = opentelemetry_otlp::SpanExporter::builder()
|
||||
.with_tonic()
|
||||
.with_timeout(Duration::from_secs(1))
|
||||
@@ -51,8 +58,16 @@ pub fn setup_tracing(config: &TracingConfig) {
|
||||
.with(fmt_layer);
|
||||
|
||||
if config.opentelemetry {
|
||||
global::set_text_map_propagator(TraceContextPropagator::new());
|
||||
registry.with(OpenTelemetryLayer::new(init_tracer())).init();
|
||||
#[cfg(feature = "opentelemetry")]
|
||||
{
|
||||
global::set_text_map_propagator(TraceContextPropagator::new());
|
||||
registry.with(OpenTelemetryLayer::new(init_otel())).init();
|
||||
}
|
||||
#[cfg(not(feature = "opentelemetry"))]
|
||||
{
|
||||
registry.init();
|
||||
warn!("This version of RustiCal is compiled without the opentelemetry feature. tracing.opentelemtry = true has no effect");
|
||||
}
|
||||
} else {
|
||||
registry.init();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user