【发布时间】:2021-09-26 23:36:16
【问题描述】:
我有一个日志流,从中提取一组要设置为标签或指标值的字段。流不是标准格式,所以我使用正则表达式管道命令提取字段,如下所示。
(...)
| regexp "(?P<api>\\w+)\\sAPI"
| regexp "\\[performed\\.(?P<action>\\w+)"
| regexp "duration\\s\\[(?P<duration_ms>\\d+)"
| regexp "response \\[(?P<response>.*?)\\]"
问题是 api 捕获的字段在某些交互中没有被填充,我想更新这些情况,以便设置默认值 - 用于演示目的。
我已经尝试使用本机 LogLQ 的 contains 和 hasPrefix 模板命令,因为文档表明它们可以与 if else 块一起使用。文档不清楚如何在label_format 或line_format 管道命令中构建这些块。但根据方法,它要么返回格式错误,要么不执行任何操作。
一个工作示例将不胜感激。 谢谢。
注意:尝试将此标记为 LogQL 主题,但没有足够的声誉。
【问题讨论】:
-
在这个问题上运气好吗?我也会感兴趣的。
-
我实施的解决方法是在稍后的处理阶段执行此操作。我通过 label_replace 函数实现了聚合后的逻辑。它允许正则表达式替换。我对解决方法并不完全满意。我会试试你的方法。
标签: grafana-loki