1

下午好,我已经使用标准的 tickstack 设置创建了以下 tickscript。其中包括:InfluxDB(最新版本)和kapacitor(最新版本):

dbrp "derivatives"."default"
var data = batch
|query('select sum(value) from "derivatives"."default".derivative_test where time > now() - 10m')
        .every(1m)
        .period(2m)

var slope = data
    |derivative('value')
        .as('slope')
        .unit(2m)

slope
    |eval(lambda: ("slope" - "value") / "value")
        .as('percentage')

    |alert()
        .crit(lambda: "percentage" <= -50)
        .id('derivative_test_crit')
        .message('{{ .Level }}: DERIVATIVE FOUND!')
        .topic('derivative')

// DEBUGGING
    |influxDBOut()
        .database('derivatives')
        .measurement('derivative_logs')
        .tag('sum', 'sum')
        .tag('slope', 'slope')
        .tag('percentage', 'percentage')

但是每次我想定义它时,我都会收到以下消息:

batch query is not allowed to request data from "derivatives"."autogen"

我以前从未遇到过这个问题,但我编写stream的每个刻度脚本都返回相同的消息。batch

我的 kapacitor 用户拥有完整的管理员权限,我可以通过 curl 请求获取数据,有谁知道这里可能存在什么问题?

提前致谢。

4

1 回答 1

0

改变这个

dbrp "derivatives"."default"
var data = batch
|query('select sum(value) from "derivatives"."default".derivative_test where time > now() - 10m')

对此:

dbrp "derivatives"."autogen"
var data = batch
|query('select sum(value) from "derivatives"."autogen".derivative_test where time > now() - 10m')

这可能并不明显,但保留策略很可能是不正确的。

如果您在衍生数据库上运行 SHOW RETENTION POLICIES,您将看到 RP。我怀疑你有一个自动生成的 RP,这是默认的 RP。但是,除非您创建它,否则“默认”通常不会作为 RP 存在,它只是表示它是默认 RP,如果这有意义吗?

RP 文档可能有助于清除数据库文档

默认自动生成 RP

于 2018-06-15T15:43:29.767 回答