#diagnostics #events #background-processing #infrastructure #emit #batch #structured

emit_batcher

emit的批处理基础设施

9个版本

0.11.0-alpha.9 2024年8月21日
0.11.0-alpha.82024年8月15日
0.11.0-alpha.72024年7月31日
0.11.0-alpha.62024年6月28日

#479异步

Download history 4/week @ 2024-05-31 654/week @ 2024-06-07 73/week @ 2024-06-14 2/week @ 2024-06-21 187/week @ 2024-06-28 57/week @ 2024-07-05 107/week @ 2024-07-26 22/week @ 2024-08-02 89/week @ 2024-08-09 167/week @ 2024-08-16

385 每月下载量
2 crate 中使用

MIT/Apache

210KB
4K SLoC

emit_batcher

batcher

当前文档

在后台发射诊断事件的架构。


lib.rs:

在后台发射诊断事件的架构。

此库实现了一个通道,可以在专用线程或 tokio 运行时上创建后台工作线程。通道实现

  • 批处理: 写入通道的事件将由工作线程批量处理,而不是逐个处理。
  • 带有退避的重试: 如果工作线程失败或崩溃,则可以将批次重试一定次数,并在重试之间应用退避。工作线程可以决定需要重试多少批次。
  • 最大大小管理: 如果工作线程无法跟上,则通道截断以避免内存使用过载。另一种选择是应用背压,但这会影响系统可用性,因此不适合诊断。
  • 刷新: 调用者可以要求工作线程在处理了它们调用时的通道中所有诊断事件后发出信号。这可用于审计和关闭时的刷新。

状态

此库仍处于实验阶段,因此其API可能会更改。

依赖关系

~0.7–2.3MB
~47K SLoC