OpenTelemetry Exporter for Honeycomb (Unofficial)
![build status](https://camo.githubusercontent.com/a4a402f36c9f98dc9418a82056ca14d2c637539373811457bba6561e74a0e5dd/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f72616d6f73627567732f6f70656e74656c656d657472792d686f6e6579636f6d622d72732f6d61696e3f7374796c653d666f722d7468652d6261646765)
Documentation
Getting Started
use std::sync::Arc;
use async_executors::TokioTpBuilder;
use opentelemetry::trace::Tracer;
use opentelemetry::global::shutdown_tracer_provider;
use opentelemetry_honeycomb::HoneycombApiKey;
fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
let mut builder = TokioTpBuilder::new();
builder
.tokio_builder()
.enable_time()
.enable_io();
let executor = Arc::new(builder.build().expect("Failed to build Tokio executor"));
// Create a new instrumentation pipeline.
let (_flusher, tracer) = opentelemetry_honeycomb::new_pipeline(
HoneycombApiKey::new(
std::env::var("HONEYCOMB_API_KEY")
.expect("Missing or invalid environment variable HONEYCOMB_API_KEY")
),
std::env::var("HONEYCOMB_DATASET")
.expect("Missing or invalid environment variable HONEYCOMB_DATASET"),
executor.clone(),
move |fut| executor.block_on(fut),
)
.install()?;
tracer.in_span("doing_work", |cx| {
// Traced app logic here...
});
shutdown_tracer_provider();
Ok(())
}