Spaces:
Running
Running
| use opentelemetry::{global, KeyValue}; | |
| use opentelemetry_otlp::WithExportConfig; | |
| use opentelemetry_sdk::{trace as sdktrace, Resource}; | |
| use std::env; | |
| /// Initialize the OpenTelemetry tracer | |
| pub fn init_tracer( | |
| ) -> Result<opentelemetry_sdk::trace::Tracer, Box<dyn std::error::Error + Send + Sync + 'static>> { | |
| let endpoint = env::var("OTEL_EXPORTER_OTLP_ENDPOINT") | |
| .unwrap_or_else(|_| "http://localhost:4317".to_string()); | |
| let tracer = | |
| opentelemetry_otlp::new_pipeline() | |
| .tracing() | |
| .with_exporter( | |
| opentelemetry_otlp::new_exporter() | |
| .http() | |
| .with_endpoint(endpoint), | |
| ) | |
| .with_trace_config(sdktrace::config().with_resource(Resource::new(vec![ | |
| KeyValue::new("service.name", "rtix-core"), | |
| ]))) | |
| .install_batch(opentelemetry_sdk::runtime::Tokio)?; | |
| Ok(tracer) | |
| } | |
| /// Shutdown the tracer | |
| pub fn shutdown_tracer() { | |
| global::shutdown_tracer_provider(); | |
| } | |