Grafana 仪表板的 HTTP 响应状态代码指标

Pat*_*Pat 6 spring-boot grafana spring-boot-actuator prometheus

关于 Spring Boot 的问题,以及如何获取 HTTP 响应状态代码并将其显示到 Grafana 中。

设置:2.5.1 版本的 Java Spring Boot 应用程序(与任何 Spring Boot 2.xx 相关)。该应用程序具有执行器和千分尺依赖性。应用程序可以正常生成 Prometheus 指标。

我对这个仪表板非常感兴趣:HTTP 响应状态代码。不是经过的时间,不是计数,只是 HTTP 状态代码响应(以 200、401、503 等响应)。由于依赖性,我看到了这些指标!

http_server_requests_seconds

因此,我首先尝试了这个:

increase(http_server_requests_seconds{_ws_="my_workspace",_ns_="my_namespace",_source_="my_source", _bucket_="+Inf"}[15m])

这似乎产生了一些东西:

在此输入图像描述

我可以看到一些 HTTP 200,一些 HTTP 503,但由于某种原因,我不仅看到一个 200,而且看到一堆似乎已经过去了一段时间的内容。

这个查询正确吗?为了随着时间的推移获得不同的 HTTP 状态代码响应,最合适的查询是什么?

最重要的是,代表 HTTP 状态代码响应差异的最佳可视化仪表板是什么?

Mat*_*att 9

Grafana 将为 Prometheus 查询中找到的每个不同标签添加一行。当您定义不包含所有不同标签的图例时,您将看到具有相同图例的多行。

increase(http_server_requests_seconds_count{}[1m])有图例{{status}}

示例相同的图例

如果删除图例的定义,您应该能够查看所有标签以确定哪些标签创建重复值。

increase(http_server_requests_seconds_count{}[1m])没有图例定义:

示例-1

如果您对查询进行更多限制,例如通过添加条件{method="POST"},也会减少行数:

示例2

另一种选择是汇总结果以消除标签。根据问题,您希望看到每个 HTTP 状态代码的总增加量。以下是我找到的一个很好的可视化方法的示例:

sum(increase(http_server_requests_seconds_count{}[1m])) by (status)有图例{{status}}

示例聚合