您的服务地图是谎言

2026年8月9日1 次浏览来源:Dev.to阅读原文

您附加了 OpenTelemotry Java 代理, 将其指向一个收藏家, 几分钟内 Grafana 正在绘制一张你从未绘制过的服务地图。

每个服务都有一个盒子,它们之间的箭头,每个边上都有耐久.

感觉像魔法,而且——更危险地——感觉完整. "特工追踪一切"是每一个登机医生所重复的句子.

这个故事讲述了句子在我平台上不再真实的那一刻, 为什么我很高兴它做到了, 以及一个正在起作用的系统与一个你能实际看到的系统之间的区别。

人人信任的潮流 该平台是一款由事件驱动的Spring Boot服务集:前方的API网关,由MySQL支持,由PostgreSQL支持,而Kafka则在它们之间进行活动.

创建用户,发布事件,发送通知.

我不想画那个地貌 一个手工绘制的建筑图是漂移的文献——你犯案的那一天是真的,一个月后稍有错误,四分之一后就积极误导。

我想要从现场交通中生成的依赖图, 所以它总是反映系统的实际作用。

Grafana Tempo就是这么做的 它的处理器读取匹配的客户端/服务器从痕量数据中相接一对,并发出Grafana作为节点图制作的一公分量.

任何边缘都无法用手接通 地貌学不断从真实的跨度中衍生出来.

不在那里的边缘 我生成图表 和同步边缘 立即亮起: 然后我找了一个我真正关心的边缘—— 一个同步跳过卡夫卡。

它没有在那里。

天真的结论(以及为什么它是错误的) 诱人读取是即刻而明显的: Aync Hop被打破.

赛事还没结束 去调试消费者。

我查过了 消费者完全没事。

已经耗尽了每起事件,并写出每行对应的 PostgreSQL。

它的数据库边缘被点燃。

生活是完美的;这个特色工作到最后结束。

这就是陷阱。

一个缺失的边缘看起来就像一个破碎的特征,本能是去"修复"一些从未被打破的东西.

这个缺陷完全不在信息路径中——它存在于信息路径的可观察性上.

这两个不同的故障域 恰好在仪表板上完全一样 于是我不再相信这张照片,去了真相的来源:追踪商店。

证据与断言 两项 TraceQL 询问解决了它。

零卡夫卡通讯横跨系统任何地方.

两种服务都没有痕迹 代理商——这个建筑,在这个"春靴"版本下——只是没有给"卡夫卡"客户端提供仪器.

没有出错。

没有记录到任何警告。

地图对数据没有错误;数据从未产生.

这是值得坐在一起的部分: 一个绿色仪表板会让我相信 链条被完全追踪。

没有红色不是有覆盖。

如何实际构建图表 制作地图的管道是值得注意的,因为它的一个环节也是一条你必须自觉地打开的无声道:三个有意的决定塑造了它:产生边,而不是宣布边.

Tempo读取客户端/服务器跨对并发出边缘度量.

该图是一个考验,而不是一幅图画——当现实与期望相去甚远时就失败了,这正是它的价值所在。 1个处理器,故意瞄准.

我只能——故意没有。

后者产生RED/纬度系列,并可能夸大了完全与地貌有关的交付品的基本要素。

最小爆炸半径,单一责任。

您必须明确打开一个驱动边界 。

Tempo远程将它生成的度量衡写入了"普罗米修斯"(Prometheus)——由"普罗米修斯"刮去的所有其他组件的反向.

这需要把普罗米修斯翻到一个接收器上 忘了它, 和公尺默默地不着陆。

与卡夫卡差距相同, 低一层: 悄悄失败的数据路径是没有人打开的。

少了个边缘,两个真正的原因 有一个微妙的图表 迫使我表达。

页:1

分享