在上篇的Loki操作方法系列中,我已经分享了创建快速过滤器查询的所有最佳技巧,这些查询可以在几秒钟内过滤掉TB级的数据。
在本篇中,我将介绍如何在Loki的LogQL中正确转义字符串中的特殊字符。
在编写LogQL查询时,可能已经意识到,我们必须在多个地方编写用双引号分隔的字符串。对于标签匹配器,行过滤器,正则表达式和标签过滤器来说,这是没问题的,我们也在很多地方都使用双引号字符串。
但是,当我们突然想要过滤包含双引号的行时,就会出现问题。例如,下面这条查询语句
{namespace="loki-ops",container="query-frontend"} |= """
Logql将返回解析错误,因为Loki认为没有关闭双引号字符串。
这是另一个示例:这次我们假装正在研究Windows容器。在这种查询中也是相同的结果……
{namespace="dev",container="win-broker"} |= "c:\Users\test\null"
这将导致一个错误,因为\U
,\t
和\n
被认为是特殊字符。
因此,我们需要转义那些特殊字符。转义的方法是\在