博客/工程

Grafana 8.4中的新功能:如何使用Grafana Loki的全范围日志体积直方图

2022年3月2日4分钟

在刚刚发布的Grafana 8.4,在默认情况下,我们已经为Grafana Loki数据源启用了全范围日志容量直方图。以前,直方图只显示返回的前1000行所处的时间范围内的值。现在那些使用探索查询Grafana洛基将看到反映在所选时间范围内日志线分布的直方图。

如果你渴望了解更多关于日志体积的知识,并学习一些技巧和技巧,我们在这里为你提供!

注意:Loki数据源的全范围日志容量直方图仍然可以通过设置Grafana的来禁用满RangeLogsVolume功能切换为false。我们预计用户会选择这样做的唯一原因是,全范围直方图增加了Loki的查询负载。来自早期OSS采用者的反馈和我们自己的内部测试表明,负载的增加应该不会有问题,但我们目前保留了功能切换作为安全关闭。我们打算在Grafana 8.5中删除它。

1.对数体积说明了什么?

它显示了在所选时间范围内的日志线分布。在底层,它运行以下查询Sum by (level) (count_over_time({日志查询}[日志卷间隔]))Grafana根据所选时间跨度自动调整间隔,使之简单易用(例如,1分钟、1小时、1天)。

2.放大

放大不会触发新的查询;这样,如果您不想运行新的查询,就不必不必要地运行。但是,如果您希望更详细地查看日志行的分布,您总是可以使用“重新加载日志卷”按钮,并使用更新的分辨率运行新的日志卷查询,以更详细地显示日志的分布。

3.如何查看具有级别的日志卷

如果日志级别在日志行中,请尝试使用解析器(JSON、logfmt、regex、..)将级别信息提取到水平用于标识日志级别的标签。这样,日志量直方图将显示一个表示各种日志级别的堆叠柱状图。您可以找到受支持的日志级别的列表以及日志级别缩写和表达式的映射在这里.如果用于表示级别的标签与水平你可以使用label_format函数将标签重命名为水平.例如,如果你使用标签error_level要指示级别信息,可以使用以下查询将其重命名为水平然后得到堆叠柱状图:{error_level="WARN"} | json | label_format level=error_level . {error_level="WARN".在我们的直播上试试游戏网站

4.如何处理管道处理错误

在LogQL中,由于各种原因,您可能会得到管道处理错误。一种常见的情况发生在使用解析器(例如,| logfmt, | json)时,并不是所有的日志行都遵循您试图解析的格式。例如,如果您的查询包含| json,但扫描一些不是有效json文档的日志行。

因为日志量直方图在底层运行一个度量查询,如果发生任何管道处理错误,度量查询就会失败,如果原始查询中存在任何管道处理错误,日志量直方图将无法呈现。

要解决这个问题,可以通过添加来跳过抛出错误的日志行__error__ = ""回复你最初的查询。当您这样做时,您看到的对数体积直方图将表示无错误线的分布。

假设您运行了查询{filename="/var/log/nginx/access.log"} | logfmt .log . {filename="/var/log/nginx/access.log但由于管道处理错误,直方图未能加载。例如,可能只有一些行是logfmt格式的。通过将查询更新为{filename="/var/log/nginx/access.log"} | logfmt | __error__ =" "现在将加载日志容量直方图。它会显示log线的分布/var/log/nginx/access.log成功应用了logfmt解析器,忽略了其他解析器。

有关更多信息,请参见中的“管道错误”LogQL文档

告诉我们你的想法!

我们希望您会发现新的全范围对数体积直方图是有用的,我们期待听到您对如何使用它的反馈,以及您认为我们可以如何进一步改进它!在bob电竞频道Grafana实验室社区Slack

要了解更多关于Grafana Loki和LogQL的信息,请查看Grafana大学的“介绍用LogQL查询Loki学习系列。Grafana大学提供免费在线课程,可观察到任何人在世界上-只需登录与您的Grafana云账号开始吧。(没有Grafana Cloud账户?报名今天免费!)