Skip to content

codyps/opentelemetry-honeycomb-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenTelemetry Exporter for Honeycomb (Unofficial)

github crates.io docs.rs build status

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(())
}

About

Unofficial Rust crate implementing an OpenTelemetry Exporter for Honeycomb

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%