#jaeger #opentracing #spans #top #created #client #rustracing

cf-rustracing-jaeger

Jaeger client library created on top of rustracing

3 stable releases

1.2.0 Jul 16, 2024
1.1.0 May 3, 2024
1.0.0 Apr 30, 2024

#183 in Debugging

Download history 8101/week @ 2024-11-30 7772/week @ 2024-12-07 8227/week @ 2024-12-14 3915/week @ 2024-12-21 5909/week @ 2024-12-28 11635/week @ 2025-01-04 10729/week @ 2025-01-11 12096/week @ 2025-01-18 13925/week @ 2025-01-25 14882/week @ 2025-02-01 15755/week @ 2025-02-08 15149/week @ 2025-02-15 16910/week @ 2025-02-22 16657/week @ 2025-03-01 17169/week @ 2025-03-08 11734/week @ 2025-03-15

65,732 downloads per month
Used in 2 crates

MIT license

79KB
989 lines

cf-rustracing-jaeger

Crates.io: rustracing_jaeger Documentation License: MIT

Jaeger client library created on top of cf-rustracing.

Documentation

Examples

Basic Usage

use cf_rustracing::sampler::AllSampler;
use cf_rustracing_jaeger::Tracer;
use cf_rustracing_jaeger::reporter::JaegerCompactReporter;
use std::net::Ipv4Addr;

#[tokio::main]
async fn main() {
    // Creates a tracer
    let (tracer, mut span_rx) = Tracer::new(AllSampler);
    {
        let span = tracer.span("sample_op").start();
        // Do something
    
    } // The dropped span will be sent to `span_rx`
    
    let span = span_rx.recv().await.unwrap();
    assert_eq!(span.operation_name(), "sample_op");
    
    // Reports this span to the local jaeger agent
    let reporter = JaegerCompactReporter::new(
        "sample_service",
        (Ipv4Addr::LOCALHOST, 6831).into(),
        (Ipv4Addr::LOCALHOST, 0).into(),
    )
    .await
    .unwrap();
    
    reporter.report(&[span]).await.unwrap();
}

Executes report.rs example

# Run jaeger in background
$ docker run -d -p6831:6831/udp -p6832:6832/udp -p16686:16686 jaegertracing/all-in-one:latest

# Report example spans
$ cargo run --example report

# View spans (see the image below)
$ firefox http://localhost:16686/

Jaeger UI

References

Dependencies

~3–16MB
~129K SLoC