OpenTelemetry-Rust

Crates.io: opentelemetry Documentation Crates.io GitHub Actions CI Gitter chat

The Rust OpenTelemetry client.

OpenTelemetry provides a single set of APIs, libraries, agents, and collector services to capture distributed traces and metrics from your application. You can analyze them using [Prometheus], [Jaeger], and other observability tools.

Quick Start

```rust use opentelemetry::{api::TracerGenerics, global, sdk};

fn main() { global::set_provider(sdk::Provider::default());

global::tracer("component-a").in_span("foo", |_context| {
    global::tracer("component-b").in_span("bar", |_context| {
        global::tracer("component-c").in_span("baz", |_context| {

        })
    })
});

} ```

See the opentelemetry-example-app for a complete example.

Contributing

See the contributing file.

Release Schedule

OpenTelemetry Rust is under active development. Below is the release schedule for the Rust library. The first version of a release isn't guaranteed to conform to a specific version of the specification, and future releases will not attempt to maintain backwards compatibility with the alpha release.

| Component | Version | Target Date | | --------------------------- | ------- | --------------- | | Tracing API | Alpha | March 31 2020 | | Tracing SDK | Alpha | April 31 2020 | | Metrics API | Alpha | March 31 2020 | | Metrics SDK | Alpha | April 30 2020 | | Zipkin Trace Exporter | Alpha | Unknown | | Jaeger Trace Exporter | Alpha | April 30 2020 | | Prometheus Metrics Exporter | Alpha | April 30 2020 | | Context Propagation | Alpha | April 30 2020 | | OpenTracing Bridge | Alpha | Unknown | | OpenCensus Bridge | Alpha | Unknown |