尝试使用 Cloudflare 的 `foundations` 库进行 Rust 开发

主要观点:

  • 介绍了 Cloudflare 发布的 Rust 库 foundations,作者试用后分享使用体验。
  • foundations 是用于在 Rust 中构建网络服务/微服务的模块化工具集,包含日志、指标、追踪、安全等功能。
  • 作者对 foundations 的初始印象良好,模块化设计便于增量采用,虽倾向企业用例但对小项目也有用。
  • 讨论了 foundations 的设置(通过 YAML 文件)和命令行工具,指出设置默认值较繁琐且不支持环境变量设置,有相关 issue 待解决。
  • 日志部分使用了 slog,但 Rust 日志生态混乱,作者最终放弃 foundations 日志支持而使用 tracing
  • 指标部分使用 foundations 收集 Prometheus 格式的数据,设置过程简单且效果良好,还支持暴露 Tokio 内部指标。
  • 追踪部分支持与 Jaeger 配合,但对于简单的单站应用意义不大。
  • jemalloc 是高效的内存分配器,foundations 提供了对它的支持。
  • 总结认为 foundations 功能强大、模块化,易于在现有代码库中增量采用,还推动作者设置了 Prometheus 和 Grafana 进行监控。

关键信息:

重要细节:

  • 设置结构体示例及生成的 YAML 内容
  • 不同日志库之间的适配库
  • 展示 Grafana 仪表盘截图
  • 提及 foundations 在多个 Rust 服务中的应用及遇到的问题
  • 强调 foundations 的活跃维护和未来发展前景
阅读 10
0 条评论