#apm #tracing-layer #tracing #telemetry #elastic

tracing-elastic-apm

Elastic APM 收集 API 跟踪层

14 个稳定版本

3.4.0 2024年6月3日
3.2.3 2022年8月12日
3.2.2 2022年7月15日
3.2.0 2021年10月27日
1.0.1 2020年12月22日

网页编程 中排名 #270

Download history 191/week @ 2024-04-29 284/week @ 2024-05-06 163/week @ 2024-05-13 189/week @ 2024-05-20 326/week @ 2024-05-27 434/week @ 2024-06-03 332/week @ 2024-06-10 93/week @ 2024-06-17 45/week @ 2024-06-24 103/week @ 2024-07-01 202/week @ 2024-07-08 138/week @ 2024-07-15 191/week @ 2024-07-22 259/week @ 2024-07-29 58/week @ 2024-08-05 11/week @ 2024-08-12

每月下载量 519

MIT 许可证 MIT

54KB
1.5K SLoC

tracing-elastic-apm

crates.io version Documentation (latest release)

Elastic APM 跟踪层。使用原生摄入 API。

用法

创建一个新的跟踪层

let layer = tracing_elastic_apm::new_layer(
    "ServiceName".to_string(),
    // remember to use desired protocol below, e.g. http://
    tracing_elastic_apm::Config::new("APM address".to_string())
)?;

注册层

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

查看 Config 以获取更多配置选项。

支持的功能标志

  • default-tls (默认启用) - 使用默认 TLS 后端。
  • rustls-tls - 使用 Rustls TLS 后端。

有关更多信息,请参阅 reqwest 库中的相应标志:https://docs.rs/reqwest/0.11.2/reqwest/#optional-features

异步和时间测量

APM 不支持空闲时间的概念,仅跟踪实际的跨度持续时间。异步代码在 await 点自然地交错跨度,这意味着跨度开始时间 + 持续时间可能低于由时钟测量的实际跨度结束时间。这反过来意味着 APM 中的子跨度有时可能开始于父跨度开始时间 + 持续时间之后。

依赖项

~7–21MB
~317K SLoC