Loki日志查询中@符号的转义方法及含@字段查询问题
Loki日志查询中含@符号字段的处理方法
在Loki的LogQL中,查询包含@这类特殊字符的字段时,有两种可行的解决方式:
1. 用反引号包裹含特殊字符的字段名
当通过json解析后生成的字段名(比如log_@l)包含@符号时,直接书写会触发语法错误,需要将整个字段名用反引号`包裹起来,示例:
... | json | `log_@l`="Error"
2. 解析时给字段重命名
在json解析阶段,直接给带@符号的字段指定一个不含特殊字符的别名,后续查询使用别名即可,示例:
... | json log_time=@t, log_msg_template=@mt, log_level=@l, log_source=Source | log_level="Error"
说明
LogQL的标识符规则默认不允许字段名包含@这类特殊字符,因此必须通过反引号包裹来强制识别;而重命名的方式则从根源上避免了特殊字符的问题,更利于后续查询语句的可读性和维护性。
内容的提问来源于stack exchange,提问作者Matthew MacFarland
相关产品推荐
相关产品推荐

