#open-telemetry #tracing

tembo-telemetry

Tembo.io 应用程序的日志记录和遥测导出器

4 个版本 (2 个重大变更)

0.3.1 2024年1月5日
0.3.0 2023年12月22日
0.2.0 2023年8月14日
0.1.0 2023年8月8日

性能分析 中排名第 395

Download history 177/week @ 2024-04-06 30/week @ 2024-04-13 57/week @ 2024-04-20 17/week @ 2024-04-27 121/week @ 2024-05-04 77/week @ 2024-05-11 82/week @ 2024-05-18 31/week @ 2024-05-25 72/week @ 2024-06-01 99/week @ 2024-06-08 24/week @ 2024-06-15 45/week @ 2024-06-22 67/week @ 2024-06-29 40/week @ 2024-07-06 31/week @ 2024-07-13 116/week @ 2024-07-20

每月下载量 272

Apache-2.0

18KB
192

Tembo Telemetry

Tembo.io 应用程序提供日志记录和遥测导出器。

Crates.io: tembo-telemetry Documentation LICENSE

Tembo Slack

概述

Tembo Telemetry 是一个 Rust 包,旨在轻松地将日志记录和遥测功能集成到使用 Rust 构建的应用程序中。它提供了一种简化的方法来配置和发送遥测数据,支持 OTLP 遥测格式。

快速入门

要开始使用 tembo-telemetry,请将其添加到你的 Cargo.toml 依赖项中

[dependencies]
tembo-telemetry = "*"

然后,在你的主应用程序中设置并初始化遥测系统

use tembo_telemetry::{TelemetryConfig, TelemetryInit};

async fn main() {
    let telemetry_config = TelemetryConfig {
        app_name: "my_app".to_string(),
        env: "production".to_string(),
        endpoint_url: Some("http://my-telemetry-endpoint".to_string()),
        tracer_id: Some("my_tracer_id".to_string()),
    };

    let _ = telemetry_config.init().await;
}

环境配置

tembo-telemetry 包使用 ENV 环境变量来确定适合不同环境的日志格式。这允许你为不同的部署场景(例如,开发与生产)提供定制的日志记录体验。

设置 ENV 变量

要设置日志环境,你可以在运行应用程序之前设置 ENV 变量

export ENV=production

日志结构

  • 开发(ENV=development:在开发环境中,日志格式便于阅读。它们简明扼要,旨在用于本地调试。
2023-08-08T01:33:27.046003Z  INFO actix_server::builder: starting 14 workers
2023-08-08T01:33:27.046046Z  INFO trace: Starting HTTP server at https://0.0.0.0:3001/
2023-08-08T01:33:27.046067Z  INFO actix_server::server: Actix runtime found; starting in Actix runtime
  • 生产(ENV=production 或其他任何值):在生产环境或除开发以外的任何设置中,日志以 JSON 格式进行结构化。这种结构针对机器解析进行了优化,适用于日志聚合系统、监控和警报工具。
{"v":0,"name":"app","msg":"starting 14 workers","level":30,"hostname":"gwaihir","pid":300368,"time":"2023-08-08T01:34:19.145972575Z","target":"actix_server::builder","line":200,"file":"/home/nhudson/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-server-2.2.0/src/builder.rs"}
{"v":0,"name":"app","msg":"Starting HTTP server at https://0.0.0.0:3001/","level":30,"hostname":"gwaihir","pid":300368,"time":"2023-08-08T01:34:19.146026447Z","target":"app","line":66,"file":"src/main.rs"}
{"v":0,"name":"app","msg":"Actix runtime found; starting in Actix runtime","level":30,"hostname":"gwaihir","pid":300368,"time":"2023-08-08T01:34:19.146055049Z","target":"actix_server::server","line":196,"file":"/home/nhudson/.cargo/registry/src/index.crates.io-6f17d22bba15001f/actix-server-2.2.0/src/server.rs"}

默认情况下,如果未设置 ENV 变量,则日志将采用非开发格式。

为了获得最适合你环境的最佳日志记录体验,始终确保在运行应用程序之前适当地设置 ENV 变量。

依赖项

~31–43MB
~852K SLoC