12个版本 (7个破坏性)
0.24.1 | 2024年7月18日 |
---|---|
0.23.0 | 2024年5月15日 |
0.22.1 | 2024年2月26日 |
0.21.1 | 2023年11月13日 |
0.1.0 | 2019年6月27日 |
#181 in 调试
2,289,081 每月下载量
用于 484 个代码包 (119直接)
1MB
18K SLoC
OpenTelemetry Rust SDK
此代码包包含OpenTelemetry SDK的Rust实现。
概述
OpenTelemetry是一个可观测性框架和工具包,旨在创建和管理遥测数据,如跟踪、指标和日志。OpenTelemetry是供应商和工具无关的,这意味着它可以与广泛的可观测性后端一起使用,包括Jaeger和Prometheus等开源工具,以及商业产品。
OpenTelemetry不是一个可观测性后端,如Jaeger、Prometheus或其他商业供应商。OpenTelemetry专注于遥测的生成、收集、管理和导出。OpenTelemetry的主要目标是可以轻松地对应用程序或系统进行仪表化,无论它们的语言、基础设施或运行时环境如何。关键的是,遥测的存储和可视化有意留给了其他工具。
编译器支持:需要rustc
1.65+
此代码包包含什么?
这个crate是OpenTelemetry的官方SDK实现,涵盖了OpenTelemetry的多个方面,例如上下文管理、传播、日志记录、追踪和指标。它遵循OpenTelemetry规范。以下是其组件的分解
- 传播器实现: 虽然
opentelemetry
crate包含API,但这个crate包含实际的实现。 - 日志SDK: 实现了日志SDK规范。
- 追踪SDK: 实现了追踪SDK规范。
- 指标SDK: 实现了指标SDK规范。
这个crate通过替换opentelemetry
crate中的门面或无操作实现来激活遥测。在许多方面,可以将opentelemetry
视为包含“特性和无操作实现”的crate,而此(opentelemetry-sdk
) crate包含实际的实现以替换默认的无操作。
这个crate定义了遥测管道,并使遥测可用于处理器等,但实际的遥测导出需要额外的crate,如opentelemetry-stdout、opentelemetry-otlp等。
相关crate
除非你是插件(自定义采样器、处理器等)的作者,否则你几乎总是需要使用与这个crate一起使用的额外crate。鉴于这个crate没有导出功能,几乎总是需要OpenTelemetry导出器。OpenTelemetry提供以下导出器
- opentelemetry-stdout: 将遥测打印到标准输出,主要用于学习/调试目的。
- opentelemetry-otlp: 以OTLP格式将遥测(日志、指标和追踪)导出到接受OTLP的端点。这可能是OTel Collector、遥测后端如Jaeger、Prometheus或特定供应商的端点。
- opentelemetry-zipkin: 根据以下OpenTelemetry到Zipkin规范将遥测(仅追踪)导出到Zipkin。
- opentelemetry-prometheus: 根据以下OpenTelemetry到Prometheus规范将遥测(仅指标)导出到Prometheus。
OpenTelemetry Rust还有一个贡献仓库,可以在其中找到额外的导出器。请查看OpenTelemetry注册表以获取额外的导出器和其他相关组件。
入门指南
请参阅文档。
支持的Rust版本
OpenTelemetry基于最新的稳定版构建。最低支持的版本是1.65。当前OpenTelemetry版本不一定能在低于最低支持版本的Rust版本上构建。
当前稳定版的Rust编译器和它之前的三个最新小版本将始终得到支持。例如,如果当前稳定编译器版本是1.49,则最低支持版本不会超过1.46,即之前的三个小版本。只要这样做符合此政策,增加最低支持的编译器版本不被视为semver破坏性变更。
依赖项
~1–13MB
~158K SLoC