我正在开始使用Kapacitor,并且一直在尝试运行Kapacitor文档中的first guide,但是已经有了数据。我设法定义了一个任务,但是我既不能启用它,也不能运行回填。我遇到了this question,与我的问题类似,但是那里的答案没有帮助。与错误消息相反,我得到了用于数据库,保留策略和/或度量的空字符串。
[在Kapacitor配置中,我将InfluxDB连接设置为名称为localhost
的本地主机实例(其具有数据库mydb
以及具有默认保留策略weather.current.clouds
的度量weather.current.visibility
和autogen
)并创建了以下weathertest.tick
脚本:
dbrp "mydb"."autogen"
var clouds = batch
|query('select mean(value) / 100.0 as val from "mydb"."autogen"."weather.current.clouds"')
.period(1h)
.every(1h)
.groupBy(time(1m), *)
.fill(0)
var vis = batch
|query('select mean(value) / 10000.0 as val from "mydb"."autogen"."weather.current.visibility"')
.period(1h)
.every(1h)
.groupBy(time(1m), *)
.fill(0)
clouds
|join(vis)
.as('c', 'v')
|eval(lambda: 100 * (1 - "c.val") * "v.val")
.as('pcent')
|influxDBOut()
.cluster('localhost')
.database('mydb')
.retentionPolicy('autogen')
.measurement('testmetric')
.tag('host', 'myhost.local')
.tag('key', 'weather.current.lightidx')
这是经过数小时的试用(尤其是错误)后我想到的。如标题中所述,当我尝试使用kapacitor enable weathertest
启用任务时,收到错误消息enabling task weathertest: batch query is not allowed to request data from "".""
。当我尝试记录时,与"Backfill" example中的情况相同。同样,在该示例中,存在用于限制时间范围的开始日期和停止日期。此处给出的时间格式有误,Kapacitor无法理解。代替e。 G。 2015-10-01
我必须放入2015-10-01T00:00Z
,以使其至少传递有关时间格式错误的错误消息。
[Kapacitor日志中没有关于这些错误的一行,只有当我尝试删除记录时,我才得到类似remove /var/lib/kapacitor/replay/1f5...750.brpl: no such file or directory
的信息,并且可以在日志中找到。日志中有很多info
行,它们显示HTTP响应结果为204的_internal
数据库成功往返InfluxDB的POST。
有人知道我在做什么错吗?
好,周末之后,我再次尝试。没有任何更改,它现在在失败的步骤中接受了我的脚本,但是,现在我已经能够在日志中找到错误消息。提到的节点是eval
节点,指向类型不匹配。当我改变线
|eval(lambda: 100 * (1 - "c.val") * "v.val")
to
|eval(lambda: 100.0 * (1.0 - "c.val") * "v.val")
错误消息消失了,命令kapacitor show weathertest
现在显示了相当合理的内容。
此外,我在测试过程中一遍又一遍地重新定义,记录,重放和删除了任务和记录,可能我忘记了对滴答脚本进行更改后重新定义任务(不是很确定)。更改上述内容之后,重新定义任务并重播它,我终于在InfluxDB实例中找到了预期的数据。