【问题标题】:Create Kapacitor alert error创建 Kapacitor 警报错误
【发布时间】:2018-08-21 15:42:06
【问题描述】:

创建 Kapacitor 警报时出现以下错误。警报已创建但未触发。

ts=2018-08-21T15:01:05.329Z lvl=error msg="failed to create database" service=kapacitor task_master=main task=chronograf-v1-2004f027-091f-4af9-b5c8-a636ab28fcc8 node=influxdb_out8 err="retention policy conflicts with an existing policy" database=chronograf cluster=

influxdb 数据库上定义的保留策略定义如下。

在 chronograf 上显示保留政策 名称 持续时间 shardGroupDuration 副本N 默认 ---- -------- ------ -------- -------- autogen 1440h0m0s 168h0m0s 1 真

使用Tickscript

var db = 'telemetrics'    
var rp = 'two_months'    
var measurement = 'system'    
var groupBy = []    
var whereFilter = lambda: ("host" == 'hostname.domain.xxxx')    
var period = 1m    
0s    
var name = 'Redis Deadman'    
var idVar = name + ':{{.Group}}'    
var message = 'DEADMAN Alert REDIS.'     
var idTag = 'alertID'    
var levelTag = 'level'    
var messageField = 'message'
var durationField = 'duration'    
var outputDB = 'chronograf'    
var outputRP = 'autogen'    
var outputMeasurement = 'alerts'    
var triggerType = 'deadman'    
var threshold = 0.0

var data = stream
    |from()
        .database(db)
        .retentionPolicy(rp)
        .measurement(measurement)
        .groupBy(groupBy)
        .where(whereFilter)

var trigger = data
    |deadman(threshold, period)
        .stateChangesOnly()
        .message(message)
        .id(idVar)
        .idTag(idTag)
        .levelTag(levelTag)
        .messageField(messageField)
        .durationField(durationField)
        .telegram()
        .chatId('-232933442')
        .log('/var/log/kapacitor/alerts.log')

trigger
    |eval(lambda: "emitted")
        .as('value')
        .keep('value', messageField, durationField)
    |eval(lambda: float("value"))
        .as('value')
        .keep()
    |influxDBOut()
        .create()
        .database(outputDB)
        .retentionPolicy(outputRP)
        .measurement(outputMeasurement)
        .tag('alertName', name)
        .tag('triggerType', triggerType)

trigger
    |httpOut('output')

有什么建议吗?

【问题讨论】:

    标签: influxdb kapacitor chronograf


    【解决方案1】:

    我猜的冲突是你试图创建相同的数据库。

    “保留政策与现有政策冲突”您可能需要另一个 rp。

    【讨论】:

    • 您好,感谢您的建议。我试过但没办法。我不明白为什么 kapacitor 试图创建数据库?
    • 嗯,您正在将数据插入回涌入...这是问题所在: var outputRP = 'autogen' 和 |influxDBOut() .create() .database(outputDB) .retentionPolicy(outputRP) .measurement(outputMeasurement) .tag('alertName', name) .tag('triggerType', triggerType) -> 你已经有了那个数据库...
    猜你喜欢
    • 1970-01-01
    • 2019-11-20
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 2020-06-27
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多