10个版本

0.4.0 2020年4月29日
0.3.4 2019年6月29日
0.3.3 2019年5月19日
0.3.1 2018年2月26日
0.1.1 2018年1月16日

#297科学

Download history 5/week @ 2024-04-08 4/week @ 2024-04-15 13/week @ 2024-04-22 10/week @ 2024-04-29 6/week @ 2024-05-06 16/week @ 2024-05-13 14/week @ 2024-05-20 8/week @ 2024-05-27 8/week @ 2024-06-03 11/week @ 2024-06-10 33/week @ 2024-06-17 79/week @ 2024-06-24 50/week @ 2024-07-01 75/week @ 2024-07-08 104/week @ 2024-07-15 77/week @ 2024-07-22

310 每月下载量
用于 5 crates

MIT 许可证

120KB
2K SLoC

OpenTracing Rust

实现OpenTracing API的Rust crate。

此crate必须由一个追踪器实现来向支持的分布式追踪器发送信息。

Alpha公告

此库处于alpha状态!

功能完整性

此库在OpenTracing v1.1下几乎功能完整。

稳定性

大多数功能刚刚推出,尚未在生产环境中广泛测试。

为什么选择OpenTracing?

如果您尚未确信分布式跟踪是一种有用的工具,请参阅:http://opentracing.io/documentation/

OpenTracing是一个语言和追踪器独立的规范,许多语言都存在不同的库来集成生态系统中的任何软件。

OpenTracing规范还允许库用户选择他们想要的任何分布式追踪器(并由语言生态系统支持)。

为什么不选择rustracing?

Rust已经有一个名为rustracing的opentracing实现,那么为什么还要创建另一个?

主要区别在于opentracingrust使用特性和特例对象来抽象特定追踪器的细节。然后,这些抽象被实现所有追踪器实现共享的公共逻辑的struct和函数所包装。

这意味着

  • 更改分布式追踪器意味着更改追踪器初始化。
  • 分布式追踪器可以在运行时由库用户进行配置。
  • 支持新的分布式追踪器需要实现少量特例。

参考

快速入门

要使用opentracingrust,请添加对此crate的依赖。

对于开发和测试,核心库提供了两个追踪器

  • NoopTracer 是一个丢弃所有接收信息的追踪器。这个追踪器是单元测试和项目启动的有用默认选项。
  • FileTracer 是一个仅用于测试的追踪器,将跨度信息写入 rust 的 Write 流(通常是 stdout 或 stderr)。此追踪器可用于测试是否收集了所有所需信息,并实验 opentracingrust。

对于生产使用,您需要添加所有您想要支持的追踪器的依赖项

# These crates may not exist yet but tracer crates will look like this
opentracingrust_appdash = "^0.1.0"
opentracingrust_zipkin = "^0.1.0"

使用示例和逐步说明可以在 examples/ 目录中找到,您应该从 examples/0-quickstart.rs 开始。尽管如此,使用 opentracingrust 有四个步骤

  1. 设置追踪器(应该只有一个追踪器实例:根据需要传递它)。
  2. 创建表示操作的跨度。
  3. 传递跨度上下文以在系统中链接跨度。
  4. 操作完成后,将每个跨度发送到追踪系统。

依赖项

约 2.5MB
约 44K SLoC