Kapacitor:定义tick文件时出错

时间:2017-07-12 13:33:24

标签: influxdb telegraf kapacitor

我是第一个使用kapacitor的剧本。我写了一个刻度文件。以下是剧本。

stream
        .from().measurement('cpu')
                .where("cpu" == 'cpu-total')
        .alert()
                .info(lamda:TRUE)
                .log('/tmp/cpu.log')

我使用以下命令

将刻度文件定义为kapacitor
kapacitor define highcpu -type stream -dbrp telegraf.default -tick cpu.tick

获取以下错误

invalid TICKscript: parser: unexpected unknown state, last char: ':' line 5 char 14 in "info(lamda:TRUE)". expected: ")"

我没有完全出错。我确定config和telegraf和Influxdb没有任何问题。

Kapacitor 1.3.1版 操作系统:Fedora 22

2 个答案:

答案 0 :(得分:2)

失踪' b'在lamda。 应该是:lambda。

答案 1 :(得分:0)

问:我没有完全出错。

答:答案简短,语法错误。

不幸的是,Kapacitor的TICK脚本的解析器还不成熟,你真的不能责怪它们。这个项目仍然是个孩子,因此这些错误只会在运行时出现。

问题在于你的lambda表达式.info(lamda:TRUE)。您需要告诉表达式fieldtag查找其值。

典型的lambda表达式看起来像

  1. info(lambda: if ("sum" >= 45000, '1', '0'))
  2. info(lambda: "isPeakHour" == 'true')
  3. 此处需要注意的是,Kapacitor中还没有TrueFalse10通常用于表示布尔值。

    您可能还想在TICK脚本中记下single quotedouble quotes

    • 单引号是字符串文字
    • 双引号是对字段或标记的引用。双引号是 仅用于lambda表达式。