0

我想使用 influxDBOut 将警报消息存储在 influxDB 中。有可能吗?

这是我的刻度脚本

batch
    |query('SELECT mean(value) as value FROM "metrics"."autogen"."__MEASUREMENT__"')
        .period(15m)
        .every(5s)
        .groupBy(*)
        .fill(0)
    |alert()
        .id('[METRICS] - {{ .Name }}')
        .message('{{ .ID }} changed state to {{ .Level}} [{{ .Time }}] => The metric {{ index .Fields "value" }} in the last 15m.')
        .info(lambda: TRUE)
        .warn(lambda: "value" < __WARN_THRESHOLD__)
        .crit(lambda: "value" < __CRIT_THRESHOLD__)
        .stateChangesOnly()
        .levelField('Severity')
    |influxDBOut()
        .database('alerts')
        .retentionPolicy('autogen')
        .measurement('__MEASUREMENT__')
        .tag('Condition', 'Low')

提前谢谢你

4

2 回答 2

0

问: 我想使用 influxDBOut 将警报消息存储在 influxDB 中。有可能吗?

A: 迈克尔肯定比我更了解。是的,目前没有直接的出路。但是,这并不意味着这是不可行的。

您在这里尝试做的是典型的软件开发问题。

  1. 打开一个文件
  2. 阅读其内容
  3. 格式化
  4. 写在别的地方。

您可以使用任何支持上述突出显示点的脚本语言来处理此类问题。唯一棘手的可能是#4,因为并非每种脚本语言都有influxdb数据库驱动程序,但您仍然可以执行curl命令来执行写入。

你能做的是

  1. 修改您的 TICK 脚本以将警报输出到文件。见节点log()alert
  2. log()编写一个简单的脚本来查找由该功能写入的任何新文件。
  3. 解析文件

  4. 格式化数据,以便它们可以插入到measurement

  5. 设置一个像unix这样的调度程序cron来定期运行你的脚本。

希望能帮助到你。

于 2017-07-26T01:36:07.733 回答
0

不幸的是,目前没有办法达到这样的结果。如果此功能对您特别重要,我建议您在 Kapacitor 上打开一个功能请求,详细说明您的用例。

于 2017-05-19T18:23:33.600 回答