Skip to content

Instantly share code, notes, and snippets.

@cab
Created July 15, 2021 16:07
Show Gist options
  • Save cab/d57589bb5dd2828c6539dfa579d73642 to your computer and use it in GitHub Desktop.
Save cab/d57589bb5dd2828c6539dfa579d73642 to your computer and use it in GitHub Desktop.
use std::io;
use opentelemetry::sdk::{trace, trace::Sampler};
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let tracer = opentelemetry_jaeger::new_pipeline()
.with_collector_endpoint("http://localhost:14268/api/traces")
.with_trace_config(trace::config().with_sampler(Sampler::AlwaysOn))
.install_simple()?;
let opentelemetry_layer = tracing_opentelemetry::layer().with_tracer(tracer);
let opentelemetry_layer = Some(opentelemetry_layer);
let fmt_layer = tracing_subscriber::fmt::layer()
.with_writer(io::stderr)
.json();
let filter_layer = EnvFilter::try_new("info")?;
let registry = tracing_subscriber::registry()
.with(fmt_layer)
.with(filter_layer);
if let Some(opentelemetry_layer) = opentelemetry_layer {
registry.with(opentelemetry_layer).try_init()?;
} else {
registry.try_init()?;
}
Ok(())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment