Kapacitor配置Influxdb输出以存储消息

时间:2017-03-27 11:05:52

标签: influxdb kapacitor

我想使用InfluxDBOut在trendxDB中存储警报的消息。有可能吗?

这是我的刻度脚本

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')

先谢谢你

2 个答案:

答案 0 :(得分:0)

不幸的是,目前还没有办法实现这样的结果。如果此功能对您特别重要,我建议您打开feature request on Kapacitor详细说明您的用例。

答案 1 :(得分:0)

问: 我想使用InfluxDBOut在trendxDB中存储警报的消息。有可能吗?

迈克尔绝对比我更了解waayyy。是的,目前没有直接的出路。然而,这并不意味着这是不可行的。

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

  1. 打开文件
  2. 阅读其内容
  3. 格式化
  4. 把它写在别的地方。
  5. 您可以使用支持上述突出显示点的任何脚本语言来处理此类问题。唯一棘手的事情可能是#4,因为不是每种脚本语言都有influxdb数据库驱动程序,但你仍然可以执行curl命令来执行写操作。

    你能做的是

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

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

    5. 设置调度程序,例如unix&#39; cron,以定期运行您的脚本。
    6. 希望它有所帮助。