在 Grafana 上排序日志(来自 Loki)

Posted

技术标签:

【中文标题】在 Grafana 上排序日志(来自 Loki)【英文标题】:Sorting logs (from Loki) on Grafana 【发布时间】:2022-01-09 19:05:04 【问题描述】:

场景: 日志格式如下:

<SequenceID> <Level> <Message>

我需要根据 Grafana 的 SequenceID 对日志进行排序。

背景:我正在使用 promtail 发送日志,并在其中为 SequenceID 和 Level 创建标签。 但是,我无法在 Grafana Dashboard 上找到任何有效的可视化/转换选项(面板/小部件),这将帮助我创建一个表格,在该表格中我可以根据 sequenceID 对日志条目进行排序。

另请注意:日志是在微秒级别生成的,因此不能依赖时间戳

PS: 为标签“SequenceID”添加转换“标签到字段”时,出现以下错误: 请注意:

下面的下拉列表中有多个值。 表中只有一个值无法进行排序。

【问题讨论】:

只是一个注释,如果你有很多值,那么有一个 sequence_id 标签可能不是一个好的设计。您将发生日志流爆炸,这将影响性能:grafana.com/docs/loki/latest/best-practices 我同意。太多的标签和值组合会导致太多的流 - 这会导致日志存储中的索引大而块小。这反过来又会降低性能。有任何最佳实践/建议可以克服上述问题吗? 我注意到在 Log shipper(例如 Promtail)中在日志处理时指定标签与通过模式解析器提取标签值之间存在重大差异。后者在日志查询时,不会导致高基数。这个解决方案可能不是最适合上述情况,但仍然是一个值得注意的点。参考:grafana.com/blog/2021/08/09/… 【参考方案1】:

解决方案: 选择“表格”可视化。 改造步骤如下:

减少

模式:系列到行

计算:“步”

启用 - 字段标签

此外,我使用 Filter data valuesFilter by name 转换阶段来过滤空行并删除一些列。

【讨论】:

【参考方案2】:

执行以下步骤:

选择“表格”可视化

选择“标签到字段”转换

点击“sequenceID”列名更改顺序。

【讨论】:

嗨@Marcelo,请在原始问题中找到更新的屏幕截图。问题是:下面的下拉列表中有多个值。表中只有一个值对排序没有意义。抱歉,无法在评论中附加图片。

以上是关于在 Grafana 上排序日志(来自 Loki)的主要内容,如果未能解决你的问题,请参考以下文章

轻量级日志系统 PLG(**Promtail + Loki + Grafana**)架构技术调研

图解下一代轻量级日志系统 Grafana Loki 工作架构

如何在 Grafana 上使用 LogQL 将 Loki 解析的字段绘制为数值?

在 grafana 云中访问 loki

轻量级日志采集系统Loki+grafana搭建

如何在 grafana 中为 Loki 的 json 日志绘制图表?