3个不稳定版本

0.2.1 2021年2月21日
0.2.0 2021年2月21日
0.1.0 2020年9月4日

#25 in #datadog

Download history 1231/week @ 2024-03-14 1317/week @ 2024-03-21 1213/week @ 2024-03-28 1039/week @ 2024-04-04 1098/week @ 2024-04-11 1197/week @ 2024-04-18 1609/week @ 2024-04-25 1218/week @ 2024-05-02 1086/week @ 2024-05-09 907/week @ 2024-05-16 1182/week @ 2024-05-23 1187/week @ 2024-05-30 1532/week @ 2024-06-06 989/week @ 2024-06-13 1206/week @ 2024-06-20 923/week @ 2024-06-27

4,909 monthly downloads

MIT许可证

31KB
532 代码行

Datadog Logs

是什么

datadog-logs 是一个用于将日志记录到DataDog的最小化crate。它直接通过HTTP(S)使用DataDog的公共API来完成。

如何

日志记录器由两部分组成 - 发送消息到专用线程或任务的日志门面,该线程或任务将批量消息发送到DataDog,如以下序列图所示。

sequence diagram of workflow

由于这种工作流程,日志记录不应该影响应用程序的吞吐量,也不会强迫您处理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