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 调试

Download history 381288/week @ 2024-05-03 425245/week @ 2024-05-10 442074/week @ 2024-05-17 419140/week @ 2024-05-24 469046/week @ 2024-05-31 475494/week @ 2024-06-07 438019/week @ 2024-06-14 478815/week @ 2024-06-21 447177/week @ 2024-06-28 461891/week @ 2024-07-05 453113/week @ 2024-07-12 461056/week @ 2024-07-19 491919/week @ 2024-07-26 528613/week @ 2024-08-02 589667/week @ 2024-08-09 583546/week @ 2024-08-16

2,289,081 每月下载量
用于 484 个代码包 (119直接)

Apache-2.0

1MB
18K SLoC

OpenTelemetry Rust SDK

OpenTelemetry — An observability framework for cloud-native software.

此代码包包含OpenTelemetry SDK的Rust实现。

Crates.io: opentelemetry-sdk Documentation LICENSE GitHub Actions CI codecov Slack

概述

OpenTelemetry是一个可观测性框架和工具包,旨在创建和管理遥测数据,如跟踪、指标和日志。OpenTelemetry是供应商和工具无关的,这意味着它可以与广泛的可观测性后端一起使用,包括JaegerPrometheus等开源工具,以及商业产品。

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-stdoutopentelemetry-otlp等。

除非你是插件(自定义采样器、处理器等)的作者,否则你几乎总是需要使用与这个crate一起使用的额外crate。鉴于这个crate没有导出功能,几乎总是需要OpenTelemetry导出器。OpenTelemetry提供以下导出器

OpenTelemetry Rust还有一个贡献仓库,可以在其中找到额外的导出器。请查看OpenTelemetry注册表以获取额外的导出器和其他相关组件。

入门指南

请参阅文档

支持的Rust版本

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

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

依赖项

~1–13MB
~158K SLoC