💢线上高延迟请求排查
前几天排查了一个业务接口执行高延迟的问题,也挺有参考意义的,分享一下排查过程。
现象是业务反馈有一个接口业务逻辑其实很简单,但是调用一次耗时,如下图所示:
因为公司内部在使用 PowerJob 作为我们的分布式调度系统,同时又是使用 OpenTelemetry 作为可观测的底座,但目前 OpenTelemetry 还没有对 PowerJob 提供支持,目前社区只对同类型的 XXL-JOB 有支持。
恰好公司内部也有一些开发同学有类似的需求:
于是在这个背景下我便开始着手开发 PowerJob 的 instrumentation,最终的效果如下:
23 年在 ChatGPT 刚出来的时候就在 V 站上看到有一个看到有大佬用自己的微信聊天记录和博客文章生成了一个 AI 替身:
最近在给 opentelemetry-java-instrumentation
提交了一个 PR,是关于给 gRPC 新增四个 metrics:
rpc.client.request.size
: 客户端请求包大小rpc.client.response.size
:客户端收到的响应包大小rpc.server.request.size
:服务端收到的请求包大小rpc.server.response.size
:服务端响应的请求包大小这个 PR 的主要目的就是能够在指标监控中拿到 RPC
请求的包大小,而这里的关键就是如何才能拿到这些包的大小。
在上一篇文章:OpenTelemetry 实战:从零实现分布式链路追踪讲解了链路相关的实战,本次我们继续跟进如何使用 OpenTelemetry 集成 metrics 监控。
建议对指标监控不太熟的朋友可以先查看这篇前菜文章:从 Prometheus 到 OpenTelemetry:指标监控的演进与实践