前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LogQL如何转义特殊字符

LogQL如何转义特殊字符

作者头像
云原生小白
发布2021-05-13 10:05:59
2.8K0
发布2021-05-13 10:05:59
举报
文章被收录于专栏:LokiLoki

在上篇的Loki操作方法系列中,我已经分享了创建快速过滤器查询的所有最佳技巧,这些查询可以在几秒钟内过滤掉TB级的数据。

在本篇中,我将介绍如何在Loki的LogQL中正确转义字符串中的特殊字符。

在编写LogQL查询时,可能已经意识到,我们必须在多个地方编写用双引号分隔的字符串。对于标签匹配器,行过滤器,正则表达式和标签过滤器来说,这是没问题的,我们也在很多地方都使用双引号字符串。

但是,当我们突然想要过滤包含双引号的行时,就会出现问题。例如,下面这条查询语句

代码语言:javascript
复制
{namespace="loki-ops",container="query-frontend"} |= """

Logql将返回解析错误,因为Loki认为没有关闭双引号字符串。

这是另一个示例:这次我们假装正在研究Windows容器。在这种查询中也是相同的结果……

代码语言:javascript
复制
{namespace="dev",container="win-broker"} |= "c:\Users\test\null"

这将导致一个错误,因为\U\t\n被认为是特殊字符。

因此,我们需要转义那些特殊字符。转义的方法是\在特殊字符前面使用

代码语言:javascript
复制
{namespace="loki-ops",container="query-frontend"} |= "\”"
{namespace="dev",container="win-broker"} |= "c:\\Users\\test\\null"

最后但并非最不重要的,做的正则表达式时,还有更特殊字符(\.+?,等)在起作用。例如,如果要匹配数字\d或点.,则还需要对它们进行转义。

因此,如果要提取IP地址,查询将如下所示:

代码语言:javascript
复制
{namespace="grafana-com",container="nginx"} |= "/observabilitycon" != "assets" |  regexp "(?P<ipaddress>\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"

这有很多\,而且很容易混淆。

但好消息是,在Loki中有一个更酷的方法来做到这一点!我们可以使用所谓的原始字符串,不需要转义。原始字符串以反引号(```)引起来的字符串。

上面的三个示例使用原始字符串更简单:

代码语言:javascript
复制
{namespace="loki-ops",container="query-frontend"} |= `"`
{namespace="dev",container="win-broker"} |= `c:\Users\test\null`
{namespace="grafana-com",container="nginx"} |= "/observabilitycon" != "assets" |  regexp `(?P<ipaddress>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})`

唯一使用原始字符串的问题是,如果您实际上需要转义像反引号(`)这样的字符,因为它标志着原始字符串的结尾和开始,所以它并不有效。因此,在这种情况下,我们必须使用字符串。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生小白 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Grafana 服务
Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档