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.kind
New Relic会通过
span.kind
设置为server
和consumer
的Span创建跟踪和响应时间仪表板。 -
otel.status_code
&otel.status_description
当
otel.status_code
设置为ERROR
时,New Relic为Span创建错误率仪表板。 -
service.name
New Relic会通过
service.name
字段对实体进行分组。 -
name
New Relic会通过
name
字段对事务进行分组。
许可证
MIT
依赖项
~7–21MB
~326K SLoC