1 个不稳定版本

0.20.0-beta.12023年6月13日

#18#metrics-collection


用于 3 个crate (2 直接)

Apache-2.0

450KB
9K SLoC

OpenTelemetry — An observability framework for cloud-native software.

OpenTelemetry Rust

是Rust OpenTelemetry 实现的分支。

Crates.io: opentelemetry Documentation LICENSE

概述

OpenTelemetry 是一系列工具、API 和 SDK,用于对软件的性能和行为进行度量和分析,以便理解软件的性能和行为。您可以使用 PrometheusJaeger 和其他可观察性工具导出和分析它们。

编译器支持: 需要 rustc 1.60+

入门

use opentelemetry::{
    global,
    sdk::trace::TracerProvider,
    trace::{Tracer, TracerProvider as _},
};

fn main() {
    // Create a new trace pipeline that prints to stdout
    let provider = TracerProvider::builder()
        .with_simple_exporter(opentelemetry_stdout::SpanExporter::default())
        .build();
    let tracer = provider.tracer("readme_example");

    tracer.in_span("doing_work", |cx| {
        // Traced app logic here...
    });

    // Shutdown trace pipeline
    global::shutdown_tracer_provider();
}

请参阅 示例目录 了解不同的集成模式。

生态系统

除了 opentelemetry 之外,open-telemetry/opentelemetry-rust 仓库还包含几个额外的 crate,这些 crate旨在与 opentelemetry 生态系统一起使用。这包括一系列跟踪 SpanExporter 和指标拉取和推送控制器实现,以及用于传播状态和仪器化应用的实用程序和适配器 crate。

特别是以下 crate 可能会很有趣

此外,还有一些由 opentelemetry 项目维护的第三方 crates。这些包括

如果你是上面未列出的 opentelemetry 生态系统 crates 的维护者,请告诉我们!我们很高兴将你的项目添加到列表中!

支持的 Rust 版本

OpenTelemetry 是基于最新稳定版本的。最低支持的版本是 1.60。当前 OpenTelemetry 版本不一定能在低于最低支持版本的 Rust 版本上构建。

当前的稳定 Rust 编译器和它之前的三个最近的次版本将始终得到支持。例如,如果当前的稳定编译器版本是 1.49,则最低支持版本不会提高到 1.46,即三个次版本之前。只要这样做符合此政策,提高最低支持编译器版本不被视为 semver 破坏性更改。

贡献

请参阅 贡献文件

依赖关系

~2–17MB
~176K SLoC