3个版本
| 0.1.2 | 2022年3月4日 |
|---|---|
| 0.1.1 | 2022年2月17日 |
| 0.1.0 | 2022年2月17日 |
#470 在 调试 中
每月 75 次下载
1MB
620 行
tracing-newrelic
New Relic的跟踪集成
概述
此crate提供从tracing收集跟踪数据并发送到New Relic的层。
tracing::Span将尝试作为跟踪Span,tracing::Event作为日志。
tracing::Attribute和tracing::Metadata将尝试作为自定义属性。
示例
use std::thread::sleep;
use std::time::Duration;
use tracing_subscriber::{layer::SubscriberExt, Registry};
#[tracing::instrument(name = "fibonacci()")]
fn fibonacci(n: u32) -> u32 {
let ms = 100 * n as u64;
tracing::info!(n = n, "sleep {}ms", ms);
sleep(Duration::from_millis(ms));
match n {
0 | 1 => 1,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}
fn main() {
env_logger::init();
let newrelic = tracing_newrelic::layer("YOUR-API-KEY");
let fmt = tracing_subscriber::fmt::layer();
let subscriber = Registry::default().with(newrelic).with(fmt);
tracing::subscriber::with_default(subscriber, || {
let span = tracing::info_span!(
"calculating fibonacci(3)",
service.name = "tracing-newrelic-demo"
);
let _enter = span.enter();
fibonacci(3);
});
}
-
将上面的
YOUR-API-KEY替换为你的API密钥并运行。 -
打开New Relic One,导航到
实体探索器并搜索tracing-newrelic-demo。 -
你应该会看到一个名为
calculating fibonacci(3)的条目Span,并单击它以获取更多详细信息
- 单击
查看日志以查看此Span内部的所有事件
并且我强烈建议在您的Span中包含以下属性
-
span.kindNew Relic会通过
span.kind设置为server和consumer的Span创建跟踪和响应时间仪表板。
-
otel.status_code&otel.status_description当
otel.status_code设置为ERROR时,New Relic为Span创建错误率仪表板。
-
service.nameNew Relic会通过
service.name字段对实体进行分组。
-
nameNew Relic会通过
name字段对事务进行分组。
许可证
MIT
依赖项
~7–21MB
~326K SLoC