我正在尝试监视部署在多个 Kubernetes 部署上的 java 应用程序。 到目前为止我已经成功发货了
缺少的是有关 HTTP 请求的数据(每分钟请求计数、4xx/5xx 错误数量、端点最耗时的请求……),无法在 Grafana 仪表板上显示。
我无法触及应用程序代码,并且检测不会公开 HTTP 请求指标。所以我在 Prometheus 中没有这些数据。
最自然的方法似乎是对 Tempo 上存储的跟踪进行一些聚合,但很难理解跟踪中存储了哪些数据,而且在查询 Tempo 数据时,我什至无法按持续时间对请求进行排序。简而言之,Tempo 在聚合数据形成仪表板时似乎并不配合。
什么工具适合这项工作?我愿意改变我的监控架构,因为我还想将跟踪与日志相关联(我猜这只能通过将跟踪 ID 注入日志来完成),而这在我当前的设置中似乎不可能。
如果问题看起来含糊不清,我很抱歉。我是监控新手,只是想弄清楚。
因此您无法触及应用程序代码,但依赖的服务 Uris 是否列在外部配置中?
如果是这种情况,您可以设置 nginx 或 envoy 之类的东西作为入口/出口代理,并使其负责监控 http 响应代码、通话持续时间等。