Как предупредить в Сейрене с помощью графита, если транзакции за последние 60 минут меньше x?
Я использую Graphite+Statsd (с клиентом Python) для сбора пользовательских метрик из веб-приложения: счетчик для успешных транзакций. Допустим, счетчик stats.transactions.count
, который также имеет показатель скорости / в / секунду, доступный в stats.transactions.rate
,
Я также настроил Seyren как систему мониторинга + оповещения и успешно извлек метрики из Graphite. Теперь я хочу настроить оповещение в Сейрене, если количество успешных транзакций за последние 60 минут меньше определенного минимума.
Какие метрические и графитовые функции я должен использовать? Я пробовал с summarize(metric, '1h')
но это дает мне предупреждение каждый час, когда Graphite начинает агрегировать метрику за начальный час.
Обратите внимание, что Сейрен также позволяет указать графит from
а также until
параметры, если это поможет.
1 ответ
Я внес код Сейрен в поддержку from
/until
чтобы справиться с этой точной ситуацией.
Следующая конфигурация должна выдавать предупреждение, если счет за последний час падает ниже 50, и ошибку, если он падает ниже 25.
- Цель: обобщение (nonNegativeDerivative(stats.transactions.count),"1h","sum",true)
- От: -1ч
- Кому: [пусто]
- Предупреждения: 50 (минимум мягких)
- Ошибка: 25 (жесткий минимум)
Обратите внимание, что это будет выполняться каждую минуту, поэтому "последний час" представляет собой скользящую шкалу. Также обратите внимание, что третий логический параметр true
для функции суммирования говорит ему, чтобы выровнять его 1 ч ведро с From
Это означает, что вы получаете полный 1-часовой сегмент, начинающийся 1 час назад, а не случайно получаемый половиной. (Более новые версии Graphite могут делать это автоматически.)
Ваш пробег может отличаться. У меня были проблемы с этим подходом, когда счетчик возвращается к 0 при перезапуске сервера. Но в моем случае я использую метрики dropwizard + графит, а не statsd + графит, поэтому у вас может не быть такой проблемы.
Пожалуйста, дайте мне знать, если этот подход работает для вас!