使用 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 日志行(想想具有嵌套对象的字段),这甚至可能不容易实现。
我正在向 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 日志行(想想具有嵌套对象的字段),这甚至可能不容易实现。