1 个不稳定版本
0.20.0-beta.1 | 2023年6月13日 |
---|
#18 在 #metrics-collection
450KB
9K SLoC
OpenTelemetry Rust
是Rust OpenTelemetry 实现的分支。
概述
OpenTelemetry 是一系列工具、API 和 SDK,用于对软件的性能和行为进行度量和分析,以便理解软件的性能和行为。您可以使用 Prometheus、Jaeger 和其他可观察性工具导出和分析它们。
编译器支持: 需要 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();
}
请参阅 示例目录 了解不同的集成模式。
生态系统
相关Crate
除了 opentelemetry
之外,open-telemetry/opentelemetry-rust
仓库还包含几个额外的 crate,这些 crate旨在与 opentelemetry
生态系统一起使用。这包括一系列跟踪 SpanExporter
和指标拉取和推送控制器实现,以及用于传播状态和仪器化应用的实用程序和适配器 crate。
特别是以下 crate 可能会很有趣
opentelemetry-aws
为 AWS X-ray 提供非官方传播者。opentelemetry-contrib
提供额外的实验性导出器和传播者。opentelemetry-datadog
为Datadog
提供额外的导出器。opentelemetry-dynatrace
为Dynatrace
提供额外的导出器。opentelemetry-http
提供了从http
标头注入和提取跟踪信息的一个接口。opentelemetry-jaeger
提供了一个管道和导出器,用于将跟踪信息发送到Jaeger
。opentelemetry-otlp
导出器,用于将跟踪和指标数据以 OTLP 格式发送到 OpenTelemetry 收集器。opentelemetry-prometheus
提供了一个管道和导出器,用于将指标信息发送到Prometheus
。opentelemetry-semantic-conventions
提供了标准名称和语义 otel 规范。opentelemetry-stackdriver
提供了一个导出器,用于将信息发送到 Google 的 Cloud Trace(以前称为 StackDriver)。opentelemetry-zipkin
提供了一个管道和导出器,用于将跟踪信息发送到Zipkin
。
此外,还有一些由 opentelemetry
项目维护的第三方 crates。这些包括
tracing-opentelemetry
为使用tracing
API 和生态系统进行仪器化的应用程序提供集成。actix-web-opentelemetry
为actix-web
网络服务器和生态系统提供集成。opentelemetry-application-insights
为不官方的 Azure Application Insights 导出器提供。opentelemetry-tide
为Tide
网络服务器和生态系统提供集成。
如果你是上面未列出的 opentelemetry
生态系统 crates 的维护者,请告诉我们!我们很高兴将你的项目添加到列表中!
支持的 Rust 版本
OpenTelemetry 是基于最新稳定版本的。最低支持的版本是 1.60。当前 OpenTelemetry 版本不一定能在低于最低支持版本的 Rust 版本上构建。
当前的稳定 Rust 编译器和它之前的三个最近的次版本将始终得到支持。例如,如果当前的稳定编译器版本是 1.49,则最低支持版本不会提高到 1.46,即三个次版本之前。只要这样做符合此政策,提高最低支持编译器版本不被视为 semver 破坏性更改。
贡献
请参阅 贡献文件。
依赖关系
~2–17MB
~176K SLoC