主要观点:
- 介绍了 Cloudflare 发布的 Rust 库
foundations
,作者试用后分享使用体验。 foundations
是用于在 Rust 中构建网络服务/微服务的模块化工具集,包含日志、指标、追踪、安全等功能。- 作者对
foundations
的初始印象良好,模块化设计便于增量采用,虽倾向企业用例但对小项目也有用。 - 讨论了
foundations
的设置(通过 YAML 文件)和命令行工具,指出设置默认值较繁琐且不支持环境变量设置,有相关 issue 待解决。 - 日志部分使用了
slog
,但 Rust 日志生态混乱,作者最终放弃foundations
日志支持而使用tracing
。 - 指标部分使用
foundations
收集 Prometheus 格式的数据,设置过程简单且效果良好,还支持暴露 Tokio 内部指标。 - 追踪部分支持与 Jaeger 配合,但对于简单的单站应用意义不大。
jemalloc
是高效的内存分配器,foundations
提供了对它的支持。- 总结认为
foundations
功能强大、模块化,易于在现有代码库中增量采用,还推动作者设置了 Prometheus 和 Grafana 进行监控。
关键信息:
foundations
库地址:https://github.com/cloudflare...- 相关文档:https://docs.rs/foundations/l...
- 日志库:
slog
,还有log
、tracing
等可选 - 指标收集:使用 Prometheus 格式,可设置多种指标
- 内存分配器:
jemalloc
- 未来:在 Cloudflare 核心服务中使用,有定期更新和维护
重要细节:
- 设置结构体示例及生成的 YAML 内容
- 不同日志库之间的适配库
- 展示 Grafana 仪表盘截图
- 提及
foundations
在多个 Rust 服务中的应用及遇到的问题 - 强调
foundations
的活跃维护和未来发展前景
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。