2个版本
0.1.1 | 2024年8月6日 |
---|---|
0.1.0 | 2024年7月31日 |
320 在 调试 中
每月下载 246 次
40KB
722 行
Ottofeller遥测库
此crate包含在Rust中设置遥测的API。
概述
此crate补充tracing库,并提供了一种简单的方式来设置收集日志、指标和跟踪的提供者。
此crate包含什么内容?
- 遥测API:提供了一种使用预配置提供者来设置日志、指标和跟踪收集的方法。
其他模块提供了一种在设置期间微调遥测的方法。它们包含合理的默认值,并允许在公开的API范围内进行配置。
- 日志:日志提供者的集合。可用选项有
Stdout
和Stderr
。 - 指标:指标提供者的集合。可用选项有
Stdout
和CloudWatch
。 - 跟踪:跟踪提供者的集合。可用选项有
Stdout
和Xray
。
入门指南
要收集遥测数据,需要
- 为每种类型的遥测设置提供者;
- 使用相关事件对代码进行标记。
设置遥测
use metry::telemetry;
telemetry::new()
.with_stdout_logs()
.with_aws_metrics()
.with_aws_traces()
.init()
.await;
标记你的代码
use tracing::{info, info_span};
// Emit a log event with level info
info!("Started execution");
// Start a synchronous trace span
let span = info_span!("my sync span");
span.in_scope(|| {
info!("This event is recorder within the trace span");
// Do work inside the span...
// Collect metrics: count on foo
info!(monotonic_counter.foo = 1);
});
// Run async code in a future with a span attached
let future_result: Vec<u64> = some_future
.instrument(tracing::info_span!("my async span"))
.await;
// Collect metrics: put data into the bar histogram
info!(histogram.bar = future_result);
info!("Execution complete");
依赖项
44MB
~697K SLoC