Kapacitor настраивает вывод Influxdb для хранения сообщений

Я хотел бы сохранить сообщение об оповещении в InfxDB с помощью InfxDBOut. Это возможно?

Вот мой сценарий тиков

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

Заранее спасибо


person Flávio Ferreira    schedule 27.03.2017    source источник


Ответы (2)


К сожалению, в настоящее время нет способа добиться такого результата. Если эта функция особенно важна для вас, я бы рекомендовал открыть запрос функции на Kapacitor с подробным описанием вашего варианта использования.

person Michael Desa    schedule 19.05.2017

В: Я хотел бы сохранить сообщение об оповещении в InfxDB с помощью InfxDBOut. Это возможно?

A: Майкл определенно знает вайуайу лучше, чем я. Да, прямого выхода на данный момент нет. Однако это не значит, что это невозможно.

То, что вы пытаетесь сделать здесь, - это типичная проблема разработчиков программного обеспечения.

  1. Открыть файл
  2. Прочтите его содержание
  3. Отформатируйте это
  4. Напишите это где-нибудь еще.

Вы можете справиться с подобными проблемами на любом языке сценариев, который поддерживает выделенные выше пункты. Единственная сложность - это, вероятно, №4, поскольку не каждый язык сценариев имеет influxdb драйвер базы данных, но все же вы можете выполнять curl команды для выполнения записи.

Что ты мог сделать, это

  1. Измените сценарий TICK для вывода предупреждения в файл. См. log() узла alert.
  2. Напишите простой сценарий для поиска новых файлов, написанных функцией log().
  3. Разобрать файл

  4. отформатируйте данные так, чтобы их можно было вставить в measurement

  5. настроить планировщик, например cron в unix, для периодического запуска вашего скрипта.

Надеюсь, поможет.

person Samuel Toh    schedule 26.07.2017
comment
Спасибо, мы просто решили обойтись без сообщения. Я попробую ваше решение в будущем. - person Flávio Ferreira; 31.07.2017