5 个不稳定版本
0.3.1 | 2023 年 6 月 23 日 |
---|---|
0.3.0 | 2023 年 6 月 23 日 |
0.2.0 | 2023 年 6 月 21 日 |
0.1.2 | 2023 年 6 月 13 日 |
0.1.0 | 2023 年 5 月 9 日 |
#409 在 性能分析
每月 392 次下载
79KB
1.5K SLoC
tracing-actions-otlp
一个用于消耗操作跟踪并将其提供给 OpenTelemetry 跟踪服务器的 tracing-actions 扩展。
tracing-actions
正在开发中,一些详细资料可能会改变。我们将尽力确保破坏性更改在编译时而不是运行时失败,这样您就可以知道何时规则发生变化。
这与 opentelemetry_otlp
的关系
简而言之,没有关系。
tracing-actions
没有像 tracing-subscriber
和 opentelemetry_otlp
那样通用。它跟踪最新的上游代码 - 欢迎提交 pr,并且会及时处理。您的服务不会锁定在旧版本的 tonic 上。
lib.rs
:
Rust 跟踪和 OpenTelemetry 跟踪之间的桥梁。
tracing-actions-otlp
是一个 tracing-actions
汇聚器,用于将跟踪发送到以 OpenTelemetry 跟踪格式监听的服务器。该服务器可能是您的 NAS 上的 OpenTelemetry 汇聚器,或者像 Honeycomb 或 Lightstep 这样的服务。
您的批次由 ActionSpans 在堆上构建,然后发送。这里没有后台计时器来刷新您的管道。如果您需要确保跟踪不会在批次中停留太长时间,您可以调用 drain_batch
fn periodic_job(otlp_sink: &tracing_actions_otlp::OtlpActionTraceSink) {
otlp_sink.drain_batch();
}
示例
Lightstep
use tracing_actions;
use tracing_actions_otlp;
// First, we set up our trace sink.
let batch_size = 1024;
let secure = true;
let otlp_sink = tracing_actions_otlp::OtlpActionTraceSink::new(
"https://ingest.lightstep.com:443",
tracing_actions_otlp::header_interceptor(vec![
("lightstep-access-token", std::env::var("token").unwrap_or_else(|_| "none".to_string())),
]),
batch_size,
secure,
tracing_actions_otlp::OtlpAttributes {
service_name: "docs-rs example".to_string(),
other_attributes: None,
}
).expect("should be able to make otlp sink");
// Next, we configure a subscriber (just like any usage of `tracing-actions`)
let level = "debug".parse().unwrap();
let k_logging_subscriber = tracing_actions::ActionTraceSubscriber::new(
level,
otlp_sink,
tracing_actions::span_constructor::LazySpanCache::default(),
);
// Finally, we install the subscriber.
tracing::subscriber::set_global_default(k_logging_subscriber)
.expect("I should be able to set the global trace subscriber");
// Now the rest of your application will emit ActionSpans as opentelemetry spans to Lightstep.
依赖关系
~17–28MB
~507K SLoC