使用 Loki 解析 GCP 日志

Parsing GCP logs with Loki

我正在向 loki 发送 GCP 日志,我想将 jsonPayload 解析为标签。当我 运行 查询时,我知道我可以做 query| json 但是有没有办法通过 yaml 配置来做到这一点?

jsonPayload 对于不同的日志可以有不同的字段,所以我不想在 json 管道阶段

中对每个字段进行硬编码

一般来说,不推荐使用动态标签。更具体地说,它取决于您发送给 Loki 的标签的基数This article 介绍了为什么选择标签集很重要。

简而言之,标签中 key/value 对的每个 唯一组合 都会生成一个新的 。这些流作为块保存在您的存储中,Loki 在您的查询时间使用标签作为“索引”来查找要获取的正确内容(块)。

This other post goes a bit deeper into the topic. And finally, you can take a look at the Loki label best practices.

实际上,您可以将字段添加到管道配置中的 labels 操作阶段,但需要手动维护该列表。据我所知,无法将日志行中的所有字段设置为标签,如果您有复杂的 JSON 日志行(想想具有嵌套对象的字段),这甚至可能不容易实现。