Kapacitor:定义刻度文件时出错
Kapacitor: Getting error while defining tick file
我正在编写我的第一个 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
OS:软呢帽 22
问: 我没有弄错。
A: 简答,语法错误。
不幸的是,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
。
- 单引号是字符串文字
- 双引号是对字段或标记的引用。双引号是
仅用于 lambda 表达式。
lamda 中缺少 'b'。
应该是:lambda.
我正在编写我的第一个 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 OS:软呢帽 22
问: 我没有弄错。
A: 简答,语法错误。
不幸的是,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
。
- 单引号是字符串文字
- 双引号是对字段或标记的引用。双引号是 仅用于 lambda 表达式。
lamda 中缺少 'b'。 应该是:lambda.