# пока без ссылок, быстренько и на коленке
Итак, звучит вопрос: как организовать мониторинг приложения/системы? Абстрактно, какие самые важные метрики нужно выставить для наблюдения ответственными?
Мониторинг делится на три направления:
- Инфраструктура (потребляемые ресурсы)
- Работа ПО
- Бизнес-логика приложения
Первый пункт у нас включает в себя состояние физ. машин, которые у нас есть:
- Нагрузка на CPU
- Загруженность RAM (сколько жрет оперативки)
- Заполненность дисков
Это критические пункты, без которых наше детище работать не будет.
Есть ещё важные пункты, которые косвенно позволяют предположить, что с нашими серверами что-то не так:
- Растущий объем файла подкачки (SWOP файл)
- Здоровье дисков RAID
- AVIO - среднее время ответа на запросы к диску
- Ещё какие-то пункты
Второй пункт, а именно работа ПО, зависит уже от архитектуры приложений, которые используются. В нашем случае обычно смотрим на:
- Коды ответов от приложений
- RPS - запросы в секунду
- Среднее время ответа от нас
- В случае с БД - статусы реплик (шардов, нод), наличие блокировок при перегрузках, состояние регион-серверов (Hbase)
- Состояние ресурсов, которые не наши, но важны для нас (как минимум доступность сайта. Также кол-во запросов от нас, ответы, приходящие нам)
Третий пункт, это бизнес-логика. В это умное слово входит наблюдение за тем, как пользователи используют систему:
- Кол-во зарегистрированных за диапазон
- Кол-во произведенных запросов
- Топ запросов
- Топ спаммеров и топ их запросов
- Время, за которые приходит отклик по этим запросам
- И тд
Все критически важные метрики обкладываются алертами.