用 OpenTelemetry 调试我的意式咖啡机
Instrumenting my espresso machine with OpenTelemetry

大多数可观测性故事始于生产事故,而我的故事始于一杯难喝的浓缩咖啡。面对湿度、研磨度、压力等无数变量,我决定像调试分布式系统一样调试我的 Gaggia 咖啡机。通过 GaggiMate 控制器,我将 OpenTelemetry 集成到 ESP32 微控制器中,把每一杯咖啡的萃取过程转化为 Metrics 和 Traces,并发送到 ClickHouse Cloud 进行存储分析。在资源受限的硬件上,我通过裁剪 protobuf 定义、利用 FreeRTOS 双核隔离任务以及采用快照模式解决并发问题,成功实现了实时可观测性。这不仅帮我定位了咖啡萃取中的 Channeling 问题,更证明了同一套技术栈既能支撑云基础设施,也能优雅地处理一杯咖啡。
当你这样看待它时,咖啡机不过是一个拥有极短却极美味追踪记录的服务。
HN 评论区
10- alexpotato
所以这个插件是分布在 ESP32 的两个核心上的。控制循环及其传感器事件处理程序独占核心 0。导出器拥有自己固定在核心 1 上的 FreeRTOS 任务,这样阻塞式的 TLS 握手就永远无法干扰萃取过程:
我在 HFT 交易运营的技术侧工作了好几年,交易所网关也存在同样的问题。
例如,你希望以下两点同时为真:
- 通过网关的路径尽可能快
- 能够精确记录消息何时流经网关
实现这一点的做法是将每个方向(例如入站和出站)拆分到单个核心上,然后使用额外的核心来处理日志记录。
- throw0101a
冷知识:第一台网络摄像头就是用来监控咖啡机的:
- sen
AI 生成的垃圾博客,通篇就是个广告。