【问题标题】:Using where() node to filter empty tags in Kapacitor使用 where() 节点过滤 Kapacitor 中的空标签
【发布时间】:2017-12-21 05:52:40
【问题描述】:

使用 Kapacitor 1.3,我正在尝试使用以下 where 节点来保持带有空标签的测量值。什么都没有通过,我使用 =='' 得到相同的结果。

| where(lambda: 'process-cpu__process-name' =~ /^$/)

我可以在下面的节点中使用缺失标签的默认值和过滤器来解决这个问题,但我想知道是否有更好的方法来构造初始 where 语句并避免额外的节点。

| default()
  .tag('process-cpu__process-name','system')
| where(lambda: \"process-cpu__process-name\" == 'system' )

【问题讨论】:

    标签: kapacitor


    【解决方案1】:

    肯定没有通过,因为这个

    'process-cpu__process-name'
    

    是一个字符串字面量,它是TICKScript,不是一个字段的引用,它是

    "process-cpu__process-name"
    

    显然,在这种情况下,条件总是为假。

    不过,这是一个很常见的错误,尤其是对于那些以前使用过允许单引号和双引号仅用于字符串的语言的人来说。 :-)

    另外,TICKScript lambda 中有一个名为strLength() 的函数,请查找文档here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多