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

cf-rustracing-jaeger

基于rustracing创建的Jaeger客户端库

3个稳定版本

1.2.0 2024年7月16日
1.1.0 2024年5月3日
1.0.0 2024年4月30日

#246 in 调试

Download history 267/week @ 2024-04-29 57/week @ 2024-05-06 23/week @ 2024-05-20 5/week @ 2024-06-03 50/week @ 2024-06-10 14/week @ 2024-06-17 153/week @ 2024-07-08 417/week @ 2024-07-15 145/week @ 2024-07-22 91/week @ 2024-07-29

806 每月下载量

MIT 许可证

79KB
989

cf-rustracing-jaeger

Crates.io: rustracing_jaeger Documentation License: MIT

Jaeger客户端库,基于cf-rustracing

文档

示例

基本用法

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

执行report.rs示例

# 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 https://127.0.0.1:16686/

Jaeger UI

参考

依赖关系

~4–13MB
~141K SLoC