我是第一个使用kapacitor的剧本。我写了一个刻度文件。以下是剧本。
stream
.from().measurement('cpu')
.where("cpu" == 'cpu-total')
.alert()
.info(lamda:TRUE)
.log('/tmp/cpu.log')
我使用以下命令
将刻度文件定义为kapacitorkapacitor 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
答案 0 :(得分:2)
失踪' b'在lamda。 应该是:lambda。
答案 1 :(得分:0)
问:我没有完全出错。
答:答案简短,语法错误。
不幸的是,Kapacitor的TICK
脚本的解析器还不成熟,你真的不能责怪它们。这个项目仍然是个孩子,因此这些错误只会在运行时出现。
问题在于你的lambda表达式.info(lamda:TRUE)
。您需要告诉表达式field
或tag
查找其值。
典型的lambda
表达式看起来像
info(lambda: if ("sum" >= 45000, '1', '0'))
info(lambda: "isPeakHour" == 'true')
此处需要注意的是,Kapacitor中还没有True
或False
。 1
或0
通常用于表示布尔值。
您可能还想在TICK脚本中记下single quote
和double quotes
。