如何使用 Loki 作为数据源对 Grafana 上每天生成的文件中的 500-511 HTTP 错误进行排序

How to sort 500-511 HTTP errors in a file produced daily on Grafana using Loki as Datasource

如何在每天创建的文件名中带有日期戳的文件中仅查找 500 个错误 (500-511)。这些文件配置为由 promtail 代理推送到 Loki 服务器,因此我可以在 Grafana 上可视化它们。这些文件每天都在生成,这是文件 sss2022-03-16.txt 的示例。我想在 grafana 上计算和可视化每天生成的文件的 500-511 HTTP 错误。

在 Grafana Loki 上,我尝试这样做 {job="cbas-dev-logs"} |= "500|501|502|503|504|505|506|507|508|509|510|511" 但它并没有专门 grep 只有 500s HTTPs

您可以在下面看到文件 sss2022-03-16.txt

的示例

10.32.10.181 忽略 2022 年 2 月 19 日 00:26:04 GMT 10.32.10.44 GET / HTTP/1.1 500 73 N 0 h 10.32.26.124 忽略 2022 年 2 月 19 日 00:26:06 GMT 10.32.10.44 GET / HTTP/1.1 501 73 N 0 h 10.32.42.249 忽略 2022 年 2 月 19 日 00:26:27 GMT 10.32.10.44 GET / HTTP/1.1 500 73 N 1 h 10.32.10.181 忽略 2022 年 2 月 19 日 00:26:34 GMT 10.32.10.44 GET / HTTP/1.1 302 73 N 0 h 10.32.26.124 忽略 2022 年 2 月 19 日 00:26:36 GMT 10.32.10.44 GET / HTTP/1.1 503 73 N 1 h 10.32.26.124 忽略 2022 年 2 月 19 日 00:26:36 GMT 10.32.10.44 GET / HTTP/1.1 502 73 N 1 h 10.32.26.124 忽略 2022 年 2 月 19 日 00:26:36 GMT 10.32.10.44 GET / HTTP/1.1 502 73 N 1 h 10.32.26.124 忽略 2022 年 2 月 19 日 00:26:36 GMT 10.32.10.44 GET / HTTP/1.1 504 73 N 1 h 10.32.26.124 忽略 2022 年 2 月 19 日 00:26:36 GMT 10.32.10.44 GET / HTTP/1.1 511 73 N 1 h 10.32.26.124 忽略 2022 年 2 月 19 日 00:26:36 GMT 10.32.10.44 GET / HTTP/1.1 508 73

您的查询不仅选择了 HTTP 状态 5XX,还选择了包含 500-511 数字的所有行。尝试以下解决方案之一:

解决方案 1: 尝试使用更具体的查询,例如:

{job="cbas-dev-logs"} |~ "HTTP/1.1 (500|501|502|503|504|505|506|507|508|509|510|511)"

更新:我试过了,对我有用。 500-511 代码示例:

解决方案 2: 使用 patter parser,因此您的查询将如下所示:

{job="cbas-dev-logs"} | pattern "<_> <_> <_> <_> <_> <_> <_> <_> <_> <_> <_> <status> <_>" | status >= 500 and status <= 511

这里是一个结果示例:

此外,使用模式解析器,您可以在聚合函数中使用 status