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
每月下载量 272 次
18KB
192 行
Tembo Telemetry
为 Tembo.io 应用程序提供日志记录和遥测导出器。
概述
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