请教关于分布式服务状态检测以及链路问题

2024-08-28 10:00:06 +08:00
 Curiosity777

场景为一个分布式环境,大概十几个服务,不同团队分别维护自己,历史原因链路比较长,且复杂

目前的需求是

  1. 如何监控这十几个服务工作是否正常
  2. 当一个功能模块出现问题的时候,如何快速定位到是谁的服务出了问题
  3. 如何对指定的功能模块做监控,如果出现问题,及时报警,通知相关人员

了解到分布式链路追踪,trace-id 什么的,不知道现在有么有更先进的,最好是无侵入的方案

1942 次点击
所在节点    Java
7 条回复
crossoverJie
2024-08-28 10:12:40 +08:00
推荐直接使用 OpenTelemetry 一步到位,Java 的话使用 agent 完全无侵入。

https://opentelemetry.io/docs/zero-code/java/agent/getting-started/
Curiosity777
2024-08-28 10:39:15 +08:00
@crossoverJie 谢谢我去了解一下
Curiosity777
2024-08-28 18:00:30 +08:00
@crossoverJie 发现好像不支持 openfegin 呀,有解决办法吗大佬
chenzezeya
2024-08-28 19:09:19 +08:00
@Curiosity777 feginclient 改造一下,header 里面穿 traceid
foolishcrab
2024-08-28 21:19:22 +08:00
单说这个场景的话,一个接入方便的包>>>agent>每个服务开发手动串 trace

你的需求其实是一个很庞大的话题,需要看你公司基建,和你个人在公司的话语权来决策。
crossoverJie
2024-08-29 15:25:10 +08:00
@Curiosity777 #3 https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/docs/supported-libraries.md#libraries--frameworks

OTel 目前是支持 okhttp/Java Http Client/HttpURLConnection/Google HTTP Client 挺多的 http 客户端,我看 feign 也支持这些。

理论上是可以支持的,你可以手动切换下 feign 的客户端为 OTel 所支持的试试。
wolfie
2024-08-29 17:34:44 +08:00
skywalking ,agent 无侵入的。
基本功能就是定位问题的,拿到 tid 秒定位。

一般链路追踪本身不提供警报功能,即使搭配一些工具也是针对系统整体运行情况。

你就让所有团队,接口报错都往一个 mq 扔错误上下文。
消费时候在自定义警报通知。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1068341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX