Moira: Realtime alerting, Алексей Ларьков, СКБ Контур

Post on 10-Feb-2017

168 views 6 download

Transcript of Moira: Realtime alerting, Алексей Ларьков, СКБ Контур

Мойра - система алертинга

Алексей Ларьков, СКБ Контур

Хранение

Визуализация

Алертинг

Graphite

Мониторинг

Графит - это ...очень простой протокол

<path> <value> [timestamp]

Moira.checker.errors.vm-moira 0.0

Метрика

Графит - это ...удобный API

?target=sumSeries(Moira.checker.errors.*)

функция паттерн

~ 100 функций

ТриггерОписывает условия уведомления через

Графитовский target

Лимиты состояний● WARN● ERROR● NODATA

Alerting GraphiteAPI

● Периодический pull

● Сложный target

Обычный алертинг на базе графита

Микросервисная архитектура

Redis

API Checker Notifier CacheUI

● DB - Redis

● UI - без серверного кода

● REST API

Мойра - не зависит от доступности графита

Сервис Graphite relay

Graphite cache

Moira cache

Метрики

Cache

Метрики в формате графита

Redis

Сохраниние метрики в базу и уведомление по pub/sub

Cache

Метрики в формате графита

Redis

Сохраниние метрики в базу и уведомление по pub/sub

checkermaster

Подписка на метрики

Cache

Метрики в формате графита

Redis

Сохраниние метрики в базу и уведомление по pub/sub

checkermaster

Подписка на метрики Добавление триггера на проверку

Cache

Метрики в формате графита

Redis

Чтение паттернов

каждую секунду

Сохраниние метрики в базу и уведомление по pub/sub

checkermaster

Подписка на метрики Добавление триггера на проверку

Redis

checkermaster Добавление

триггера на проверку

Redis

checkermaster Добавление

триггера на проверку

checker workers

Загрузка данных триггера и вычисление состояния

Redis

checkermaster Добавление

триггера на проверку

checker workers

Загрузка данных триггера и вычисление состояния

Состояние изменилось?

Redis

checkermaster Добавление

триггера на проверку

checker workers

Загрузка данных триггера и вычисление состояния

Если да, то сохраняем уведомление

Состояние изменилось?

Redis

checkermaster Добавление

триггера на проверку

checker workers

Загрузка данных триггера и вычисление состояния

Сохраняем состояние

Если да, то сохраняем уведомление

Состояние изменилось?

notifier

mail

sms

slack

pushover

Redis

Читаем уведомления

Fail?

Повторяем через

минутуДа

30 проектов, 70 пользователей1 М уникальных метрик

20 К метрик в секунду550 триггеровХватает 2 виртуалки

Спасибо!moira.readthedocs.org

gitter.im/moira-alert/moiragithub.com/moira-alert