#jaeger #opentracing #tokio #tracer #future

opentracing-rs-jaeger

jaeger for opentracing

1 unstable release

0.1.0 Dec 11, 2018

#9 in #opentracing


Used in opentracing-rs

MIT license

15KB
492 lines

Opentracing Rust Client

Crates.io MIT licensed Travis Build Status

Features:

  • support tokio and futures

Quickstart

TBD

Example

fn main() {
    tokio::run(lazy(move || {
        // build and serve tracer
        let mut tracer = JaegerTracer::builder()
            .probabilistic_sampler(0.50)
            .udp_remote_reporter(
                "jaeger_example",
                "127.0.0.1:6831".parse().unwrap(),
                TransportProtocol::ThriftCompact,
                Duration::from_millis(500),
            )
            .build_and_serve();
            
        // clone tracer into event callback
        // start tracing
        tokio::spawn(lazy(move || {
            let span = tracer.span("hello 1").start();

            std::thread::sleep(std::time::Duration::from_secs(1));

            let child_span = tracer.span("testing 1").child_of(&span);
            {
                let _child_span = child_span.start();
                std::thread::sleep(std::time::Duration::from_secs(2));
            }

            let child_span = tracer.span("testing 2").child_of(&span);
            {
                let _child_span = child_span.start();
                std::thread::sleep(std::time::Duration::from_secs(2));
            }

            std::thread::sleep(std::time::Duration::from_secs(2));

            Ok(())
        }));

        Ok(())
    }));
}

License

This project is licensed under the MIT license.

Dependencies

~4MB
~55K SLoC