我正在向 loki 发送 GCP 日志,我想解析jsonPayload
as 标签。当我运行查询时,我知道我可以做到query
| json 但是有没有办法通过 yaml 配置来做到这一点?
jsonPayload 对于不同的日志可以有不同的字段,所以我不想在 json 管道阶段对每个字段进行硬编码
我正在向 loki 发送 GCP 日志,我想解析jsonPayload
as 标签。当我运行查询时,我知道我可以做到query
| json 但是有没有办法通过 yaml 配置来做到这一点?
jsonPayload 对于不同的日志可以有不同的字段,所以我不想在 json 管道阶段对每个字段进行硬编码
通常,不推荐使用动态标签。更具体地说,它取决于您发送给 Loki 的标签的基数。本文介绍了为什么选择标签集很重要。
简而言之,标签中键/值对的每个唯一组合都会生成一个新流。这些流作为块保存在您的存储中,Loki 使用查询时间中的标签作为“索引”来查找要获取的正确内容(块)。
另一篇文章更深入地探讨了该主题。最后,您可以查看Loki 标签最佳实践。
实际上,您可以在管道配置中将字段添加到labels
操作阶段,但需要手动维护该列表。AFAIK 无法将日志行中的所有字段设置为标签,如果您有复杂的 JSON 日志行(想想具有嵌套对象的字段),这甚至可能不容易实现。