小编Sam*_*nde的帖子

如何使用 Rust 跟踪获取/存储跨度持续时间?

我想捕获 Rust 跟踪中跨度的执行持续时间并将其作为指标发送。

我发现 fmt() 有助于打印这里提到的内容:How can I log spanuration with Rust Tracing?

我还尝试过这个关于创建层和实现 on_new_span() 和 on_event() 的示例。我还添加了 on_close() 来检查我们在这里获得了哪些元数据。我写的代码是:

use tracing::{info, info_span};
use tracing_subscriber::prelude::*;
mod custom_layer;
use custom_layer::CustomLayer;

fn main() {

    tracing_subscriber::registry()
        .with(CustomLayer)
        .init();

    let outer_span = info_span!("Outer", level = 0, other_field = tracing::field::Empty);
    let _outer_entered = outer_span.enter();

    outer_span.record("other_field", &7);

    let inner_span = info_span!("inner", level = 1);
    let _inner_entered = inner_span.enter();

    info!(a_bool = true, answer = 42, message = "first example");

}
Run Code Online (Sandbox Code Playgroud)

自定义层.rs:

use std::collections::BTreeMap;
use …
Run Code Online (Sandbox Code Playgroud)

registry trace rust rust-tokio rust-tracing

3
推荐指数
1
解决办法
2022
查看次数

标签 统计

registry ×1

rust ×1

rust-tokio ×1

rust-tracing ×1

trace ×1