您附加了 OpenTelemotry Java 代理, 将其指向一个收藏家, 几分钟内 Grafana 正在绘制一张你从未绘制过的服务地图。
每个服务都有一个盒子,它们之间的箭头,每个边上都有耐久.
感觉像魔法,而且——更危险地——感觉完整. "特工追踪一切"是每一个登机医生所重复的句子.
这个故事讲述了句子在我平台上不再真实的那一刻, 为什么我很高兴它做到了, 以及一个正在起作用的系统与一个你能实际看到的系统之间的区别。
人人信任的潮流 该平台是一款由事件驱动的Spring Boot服务集:前方的API网关,由MySQL支持,由PostgreSQL支持,而Kafka则在它们之间进行活动.
创建用户,发布事件,发送通知.
我不想画那个地貌 一个手工绘制的建筑图是漂移的文献——你犯案的那一天是真的,一个月后稍有错误,四分之一后就积极误导。
我想要从现场交通中生成的依赖图, 所以它总是反映系统的实际作用。
Grafana Tempo就是这么做的 它的处理器读取匹配的客户端/服务器从痕量数据中相接一对,并发出Grafana作为节点图制作的一公分量.
任何边缘都无法用手接通 地貌学不断从真实的跨度中衍生出来.
不在那里的边缘 我生成图表 和同步边缘 立即亮起: 然后我找了一个我真正关心的边缘—— 一个同步跳过卡夫卡。
它没有在那里。
天真的结论(以及为什么它是错误的) 诱人读取是即刻而明显的: Aync Hop被打破.
赛事还没结束 去调试消费者。
我查过了 消费者完全没事。
已经耗尽了每起事件,并写出每行对应的 PostgreSQL。
它的数据库边缘被点燃。
生活是完美的;这个特色工作到最后结束。
这就是陷阱。
一个缺失的边缘看起来就像一个破碎的特征,本能是去"修复"一些从未被打破的东西.
这个缺陷完全不在信息路径中——它存在于信息路径的可观察性上.
这两个不同的故障域 恰好在仪表板上完全一样 于是我不再相信这张照片,去了真相的来源:追踪商店。
证据与断言 两项 TraceQL 询问解决了它。
零卡夫卡通讯横跨系统任何地方.
两种服务都没有痕迹 代理商——这个建筑,在这个"春靴"版本下——只是没有给"卡夫卡"客户端提供仪器.
没有出错。
没有记录到任何警告。
地图对数据没有错误;数据从未产生.
这是值得坐在一起的部分: 一个绿色仪表板会让我相信 链条被完全追踪。
没有红色不是有覆盖。
如何实际构建图表 制作地图的管道是值得注意的,因为它的一个环节也是一条你必须自觉地打开的无声道:三个有意的决定塑造了它:产生边,而不是宣布边.
Tempo读取客户端/服务器跨对并发出边缘度量.
该图是一个考验,而不是一幅图画——当现实与期望相去甚远时就失败了,这正是它的价值所在。 1个处理器,故意瞄准.
我只能——故意没有。
后者产生RED/纬度系列,并可能夸大了完全与地貌有关的交付品的基本要素。
最小爆炸半径,单一责任。
您必须明确打开一个驱动边界 。
Tempo远程将它生成的度量衡写入了"普罗米修斯"(Prometheus)——由"普罗米修斯"刮去的所有其他组件的反向.
这需要把普罗米修斯翻到一个接收器上 忘了它, 和公尺默默地不着陆。
与卡夫卡差距相同, 低一层: 悄悄失败的数据路径是没有人打开的。
少了个边缘,两个真正的原因 有一个微妙的图表 迫使我表达。
页:1