Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

682 views

Published on

Почти год назад мы завершили проект по универсальному мониторингу и в процессе приобрели кучу секретных знаний и умений, которыми хотим поделиться:
* как сделать мониторинг простым, отказоустойчивым и горизонтально масштабируемым;
* как понять, что важно, что не важно, а что важно, но чуть-чуть;
* полезные логи: конвертация логов в метрики и обратно;
* как диагностировать реальные проблемы и отличить их от ложной тревоги (на примере связки js-фронтенд + балансеры + java-бэкенд);
* и, конечно же, как внедрить практики DevOps посредством мониторинга (и подготовить разработчиков к тому, что они ответственны за алерты).


Стек мониторинга: sensu, graphite, cassandra, logstash, heka, influxdb, elsticsearch, chef, statsd, nginx.
Стек поддержки: js, java, erlang, lisp, python, ruby, nginx, mysql, haproxy

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Путь мониторинга: модульность, гибкость, devops / Всеволод Поляков (Grammarly)

  1. 1. Путь мониторинга модульность, гибкость, devops
  2. 2. Ghbdtn! • Всеволод Поляков • Lead DevOps Grammarly • поддержка около 30 сервисов на Java, erlang, python, lisp, ruby, js силами 4- х админов
  3. 3. Чего мы хотим? • Получать сообщения о проблемах • Не получать сообщения когда проблем нет • Помощь в поиске проблемы • Предупреждение о возможных проблемах • Не пропускать проблемы
  4. 4. DevOps • Разработчики знают сервис лучше чем опсы • Нет батлнека в опс команде • Повышается скорость работы
  5. 5. Почему старое плохо? • Свои сложные концепции • Сложно для девелоперов • Содержит в себе все что может пригодиться, а может и не пригодиться • Две системы управления конфигурацией
  6. 6. Метрики • env.role.node_name.metric • Приложение пишет метрики в statsd • Система пишет метрики в statsd • Агрегируем и чекаем сами, без приложения
  7. 7. Пожелания • Простота добавления метрик и проверок по ним • Должно скейлиться и не падать • Хранить информацию по метрикам как можно дольше • Хранить много метрик • Разработчики мониторят свои сервисы без участия опсов
  8. 8. • Логи: 300 Gb/день • Метрики: 120 000, обновляются раз в 10 секунд • 300 проверок состояний • Разработчики всех сервисов отвечают за мониторинг • Занятость команды админов в мониторинге минимальна
  9. 9. Sensu
  10. 10. influx • Маленькая база на go ~ 20mb RAM • Локальная база на каждом сервере • Хранилище метрик на два дня
  11. 11. Сбор метрик в ноде
  12. 12. Глобальное хранилище
  13. 13. скрин графаны
  14. 14. Логи • Общий формат для всех сервисов: json • Текстовый файл с logrotate
  15. 15. Мониторинг фронтенда • Логи → nginx → logstash • Метрики → nginx → агрегатор → statsd • Плагин для логстеша, разворачивает сорсмап
  16. 16. Слайд по всяким штукам • 500-е, уникальные юзеры • разработчики сами все мониторят и просыпаются ночью • сравнение времени обработки чего-то в фронтенде и на бекенде • сквозной userID по всем сервисам
  17. 17. Над чем мы думаем • Мониторинг безымянных серверов • Хранение метрик приложений в mesoskubernetis окружениях

×