首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LogQL - label_format有条件地格式化标签

LogQL - label_format有条件地格式化标签
EN

Stack Overflow用户
提问于 2021-07-19 09:33:21
回答 2查看 2.9K关注 0票数 2

我有一个日志流,从其中提取一组字段,将其设置为标签或度量值。流不是标准格式,所以我使用regexp管道命令提取字段,如下所示。

代码语言:javascript
复制
(...)
 | regexp "(?P<api>\\w+)\\sAPI"
 | regexp "\\[performed\\.(?P<action>\\w+)"
 | regexp "duration\\s\\[(?P<duration_ms>\\d+)"
 | regexp "response \\[(?P<response>.*?)\\]"

问题是,在某些交互中,api捕获的字段没有被填充,我希望更新这些情况,以便设置默认值--用于表示目的。

我尝试使用本机LogLQ的包含hasPrefix模板命令,文档表明它们可以与if else块一起使用。文档不清楚如何在label_formatline_format管道命令中构建这些块。但是根据方法的不同,它要么返回格式错误,要么什么也不做。

请举例说明。谢谢。

注意:尝试将此标记为LogQL主题,但没有足够的声誉来这样做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-15 15:31:33

使用@AnthonyA的答复,在提取字段之后,我能够使用label_format模板函数修改其值。

代码语言:javascript
复制
 (..)
 | regexp "response \\[(?P<response>.*?)\\]"
 (..)
 | label_format api=`{{ if hasPrefix "Error" .response }}ERROR{{else}}{{.response}}{{end}}`
 (..)

这样,如果字段以"Error“开头,而保留其原始值,则该字段的值将被ERROR替换。

票数 1
EN

Stack Overflow用户

发布于 2021-10-15 08:30:55

我想我和line_format合作过了

代码语言:javascript
复制
{environment=~"$environment",level=~"$level"} | json | line_format "{{ if hasSuffix `Exception` .thrown_name  }} Exception occurred! {{end}} {{.message}}" |~ "(?i)$grep"

后面滴答的文档很难找到,方法参数的顺序也有点不同。希望这能帮上忙?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68438229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档