【问题标题】:Parsing GCP logs with Loki使用 Loki 解析 GCP 日志
【发布时间】:2021-09-02 03:53:31
【问题描述】:
我正在向 loki 发送 GCP 日志,我想将 jsonPayload 解析为标签。当我运行查询时,我知道我可以做到query| json 但是有没有办法通过 yaml 配置来做到这一点?
jsonPayload 可以为不同的日志有不同的字段,所以我不想在 json 管道阶段对每个字段进行硬编码
【问题讨论】:
标签:
google-cloud-platform
grafana
grafana-loki
promtail
【解决方案1】:
一般来说,不推荐使用动态标签。更具体地说,它取决于您发送给 Loki 的标签的基数。 This article 介绍了为什么选择标签集很重要。
总而言之,标签中键/值对的每个唯一组合都会生成一个新的流。这些流作为块保存在您的存储中,Loki 使用查询时间中的标签作为“索引”来查找要获取的正确内容(块)。
This other post 更深入地探讨了这个主题。最后,你可以看看Loki label best practices。
实际上,您可以将字段添加到管道配置中的labels 操作阶段,但需要手动维护该列表。 AFAIK 无法将日志行中的所有字段设置为标签,如果您有复杂的 JSON 日志行(想想具有嵌套对象的字段),这甚至可能不容易实现。