Created
October 25, 2021 22:46
-
-
Save taqtiqa-mark/891256923db0edf357c67fa0a9bda01e to your computer and use it in GitHub Desktop.
Tracing setup for Tokio+Hyper trace output
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
```rust | |
async fn main() { | |
let addr = std::net::SocketAddr::from(([127, 0, 0, 1], 6831)); | |
// Build a Jaeger batch span processor | |
let jaeger_processor = opentelemetry::sdk::trace::BatchSpanProcessor::builder( | |
opentelemetry_jaeger::new_pipeline() | |
.with_service_name("mre-jaeger") | |
.with_agent_endpoint(addr) | |
// Issue # | |
.with_trace_config(opentelemetry::sdk::trace::config().with_resource( | |
opentelemetry::sdk::Resource::new(vec![ | |
opentelemetry::KeyValue::new("service.name", "my-service-name"), | |
opentelemetry::KeyValue::new("service.namespace", "my-namespace"), | |
]), | |
)) | |
.init_async_exporter(opentelemetry::runtime::Tokio) | |
.expect("Jaeger Tokio async exporter"), | |
opentelemetry::runtime::Tokio, | |
) | |
.build(); | |
// Setup Tracer Provider | |
let provider = opentelemetry::sdk::trace::TracerProvider::builder() | |
.with_span_processor(jaeger_processor) | |
.build(); | |
// Get new Tracer from TracerProvider | |
let tracer = opentelemetry::trace::TracerProvider::tracer(&provider, "my_app", None); | |
// Create a layer with the configured tracer | |
let telemetry = tracing_opentelemetry::layer().with_tracer(tracer); | |
// Initialize tracing OpenTelemetery output | |
tracing_subscriber::registry() | |
.with(telemetry) | |
.try_init() | |
.expect("Global default subscriber."); | |
.... etc | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment