3个不稳定版本
0.2.1 | 2021年2月21日 |
---|---|
0.2.0 | 2021年2月21日 |
0.1.0 | 2020年9月4日 |
#25 in #datadog
4,909 monthly downloads
31KB
532 代码行
Datadog Logs
是什么
datadog-logs
是一个用于将日志记录到DataDog的最小化crate。它直接通过HTTP(S)使用DataDog的公共API来完成。
如何
日志记录器由两部分组成 - 发送消息到专用线程或任务的日志门面,该线程或任务将批量消息发送到DataDog,如以下序列图所示。
由于这种工作流程,日志记录不应该影响应用程序的吞吐量,也不会强迫您处理HTTP错误。
为什么
作者发现没有现成的库可以用于此目的。
功能标志
log-integration
- 启用与log
crate 的集成(默认启用)
lib.rs
:
关于
datadog-logs
是一个具有 log
集成的 DataDog 日志API客户端。
提供对HTTP DataDog 日志摄取API的支持。支持通过功能标志激活的阻塞和非阻塞HTTP(S)客户端。
日志记录器可以通过扩展的 DataDogConfig
容易地进行配置,它可以直接从文件反序列化,归功于 serde
。
它将发送日志到DataDog的工作卸载到单独的线程(阻塞日志记录器)或任务(非阻塞日志记录器)。
与 log
crate 一起使用
use datadog_logs::{config::DataDogConfig, logger::DataDogLogger, client::HttpDataDogClient};
use log::*;
let config = DataDogConfig::default();
let client = HttpDataDogClient::new(&config).unwrap();
// there is also a blocking logger available that does not require runtime
let future = DataDogLogger::set_nonblocking_logger(client, config, LevelFilter::Error).unwrap();
// there is a convinence function available to spawn future to tokio
// however, this design makes it compatible with every runtime without effort
tokio::spawn(future);
// now you can log
error!("An error occured");
warn!("A warning");
依赖关系
~3–18MB
~232K SLoC