7个版本 (破坏性)

0.7.0 2024年5月23日
0.6.1 2024年3月19日
0.5.0 2023年11月30日
0.4.0 2023年6月19日
0.1.0 2022年8月26日

调试中排名431

Download history 105/week @ 2024-04-24 61/week @ 2024-05-01 74/week @ 2024-05-08 80/week @ 2024-05-15 214/week @ 2024-05-22 144/week @ 2024-05-29 35/week @ 2024-06-05 11/week @ 2024-06-12 10/week @ 2024-06-26 27/week @ 2024-07-03 10/week @ 2024-07-10 83/week @ 2024-07-17 30/week @ 2024-07-24 231/week @ 2024-07-31 31/week @ 2024-08-07

每月下载381

MIT/Apache

26KB
320

tracing-axiom: The official Rust tracing layer for Axiom tracing-axiom: The official Rust tracing layer for Axiom

docs.rs build crates.io License

Axiom在任何规模下解锁可观察性。

  • 轻松摄取,无限制存储:Axiom的下一代数据存储能够以最高效率摄取PB级数据。从Kubernetes、AWS、Azure、Google Cloud、DigitalOcean、Nomad等发送日志。
  • 随时随地查询一切:无论是DevOps、SecOps还是EverythingOps,无论数据年龄如何,都可以查询所有数据。无需配置,无需从冷存/归档移动到“热”,无需担心查询缓慢。所有数据,随时随地。
  • 强大的仪表板,实现持续可观察性:构建仪表板以收集相关查询,为您和您的团队提供快速、易于消化的信息。仪表板可以是私有的,也可以与他人共享,是收集来自不同来源数据的完美方式。

更多信息请参阅官方文档

用法

将以下内容添加到您的Cargo.toml

[dependencies]
tracing-axiom = "0.7"

在Axiom中创建一个数据集,并将名称导出为AXIOM_DATASET。然后在Axiom设置中创建一个具有摄取权限的API令牌,并将其导出为AXIOM_TOKEN

现在您可以设置跟踪,如下所示

use tracing_subscriber::{layer::SubscriberExt as _, util::SubscriberInitExt as _, Registry};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let axiom_layer = tracing_axiom::default("readme")?; // Set AXIOM_DATASET and AXIOM_TOKEN in your env!
    Registry::default().with(axiom_layer).init();
    say_hello();
    Ok(())
}

#[tracing::instrument]
pub fn say_hello() {
    tracing::info!("Hello, world!");
}

有关更多示例,请访问示例目录

注意:由于底层库的限制,span之外的事件不会被记录

特性

以下是可以启用或禁用的Cargo功能列表

  • rustls-tls (默认启用):启用由 rustls 提供的 TLS 功能。
  • default-tls:使用 reqwest 默认的 TLS 库。
  • native-tls:启用由 native-tls 提供的 TLS 功能。

常见问题解答 & 故障排除

如何在 Axiom 的基础上将跟踪记录输出到控制台?

您可以使用此库获取一个 tracing-subscriber::layer 并将其与其他层结合使用,例如将跟踪记录输出到控制台的层。您可以在 fmt 示例 中看到它是如何工作的。

我的测试函数无限期地挂起了

当您使用 #[tokio::test] 时可能会发生这种情况,因为该宏默认使用单线程执行器,但 opentelemetry crate 需要一个多线程执行器。

许可证

许可方式如下:

任选其一。

依赖关系

~11–25MB
~395K SLoC