代码之家  ›  专栏  ›  技术社区  ›  Mahendra

Kapacitor:定义记号文件时出错

  •  0
  • Mahendra  · 技术社区  · 7 年前

    我和kapacitor在写我的第一个剧本。我写了一个勾号文件。下面是脚本。

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

    我使用以下命令将tick file定义为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: ")"
    

    Kapacitor版本1.3.1 操作系统:Fedora 22

    2 回复  |  直到 7 年前
        1
  •  3
  •   Igor Toropov    7 年前

    lamda中缺少“b”。

        2
  •  0
  •   Samuel Toh    7 年前

    Q: 我并没有完全出错。

    简短回答,语法错误。

    不幸的是,Kapacitor的解析器 TICK 剧本还没那么成熟,你真的不能怪他们。这个项目还是一个婴儿,因此这些错误只在运行时出现。

    .info(lamda:TRUE) .你需要告诉表达式 field tag 查找其值。

    lambda 表达式看起来像

    1. info(lambda: if ("sum" >= 45000, '1', '0'))
    2. info(lambda: "isPeakHour" == 'true')

    这里需要注意的是,没有 True False 在Kapacitor中。 1 0

    您可能还需要注意 single quote double quotes

    • 单引号是字符串文字
    • 双引号是对字段或标记的引用。双引号是