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 在 科学
310 每月下载量
用于 5 crates
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和函数所包装。
这意味着
- 更改分布式追踪器意味着更改追踪器初始化。
- 分布式追踪器可以在运行时由库用户进行配置。
- 支持新的分布式追踪器需要实现少量特例。
参考
- 文档:https://docs.rs/opentracingrust/
- Crates.io页面:https://crates.io/crates/opentracingrust
- 仓库:https://github.com/stefano-pogliani/opentracingrust
- 可用的追踪器:https://crates.io/search?q=opentracingrust
快速入门
要使用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 有四个步骤
- 设置追踪器(应该只有一个追踪器实例:根据需要传递它)。
- 创建表示操作的跨度。
- 传递跨度上下文以在系统中链接跨度。
- 操作完成后,将每个跨度发送到追踪系统。
依赖项
约 2.5MB
约 44K SLoC