Самым критичным в мониторинге бизнес-логики является этап выяснения сути инцидента, зачастую он занимает значительное время и требует высокой квалификации сотрудника, так как основные показатели работы сайта и сервисов представлены более чем 100 тысячами графиков, и нахождение первоисточника - не самое простое дело. Поэтому была создана система мониторинга (SmartMonitoring), которая умеет находить аномалии в работе портала и показывать связь между ними, что значительно упрощает работу как администраторам, так и программистам. Такая система помогает в случае инцидента понять, какой именно среди десятков наших сервисов засбоил первым и, соответственно, ускоряет распутывание «клубка» в процессе расследования инцидента и помогает быстро находить сервис, который во всем виноват.
В этом докладе я расскажу, как мы создали такую систему, как она работает, и с какими трудностями мы столкнулись.
13. Сколько графиков мы смотрели?
•Просмотр графиков
•Новый сервис = новые
графики
•? картинок в час
•Инцидент: + 100500
14. ~ 7.000 графиков за смену!
•Просмотр графиков
•Новый сервис = новые
графики
•650 картинок в час
•Инцидент: + 100500
15. Проблемы
•Нужно мониторить большое кол-во
графиков
•Расследовать инциденты долго и сложно
•Мониторинг глазами – пропуск
инцидентов
•Новый сервис – новые графики
60. Принцип работы с системой
• Известная аномалия
• Инцидент
• Новый тренд
• Ничего не делать
61. Принцип работы с системой
• Известная аномалия
• Инцидент
• Новый тренд
• Ничего не делать
62. Принцип работы с системой
• Известная аномалия
• Инцидент
• Новый тренд
• Ничего не делать
63. Фичи системы!
•Подсказка о подобной проблеме в прошлом
•Связь с JIRA
•Связь с системой конфигурации
•Создание ссылки для выбранного графа
•Поиск по определенному микросервису
•Обнаружение усугубившихся проблем
•Совместная работа
69. Профит!
• Мониторим 100.000 графиков
• Не пропускаем инциденты
• Не тратим время на расследование
• Новые сервисы автоматически попадают в
мониторинг
• Выросла производительность команды мониторинга
• Обзор оперативной обстановки
• Счастье для админов и программистов
70. Кто теперь в этой команде?
•Инженеры
•Команда мониторинга
•Сетевые администраторы
•Системные администраторы
•Программисты
71. Кто теперь в этой команде!
•Инженеры
•Команда мониторинга
•Сетевые администраторы
•Системные администраторы
•Программисты
•SmartMonitoring
Я Сергей, я работаю уже 6 лет в ОК.
Установка и делал первичную настройку. Потом мониторил их. А сейчас
Мой доклад
систему мониторинга превратили в систему анализа
Что же такое одноклассники?
Десятки миллионов уникальных пользователей
Полный цикл.
Очень большая инфраструктура.
Задача узнавать о поломке или вероятной поломке раньше пользователя)
Остановимся на этих двух пунктах. Что же такое аномалияи инцидент в наших понятиях?
На графике показано время загрузки Ленты активности относительно других дней.
Красная линия – это текущий день.
Это и есть в нашем понятии – инцидент! На него нужно оформлять тикет в JIRA и находить причины, смотря другие графики. Так как если мы не знаем что сломалось мы не знаем что чинить.
Когда только появился мониторинг, графиков было не много.
При появлении новых сервисов или микросервисов кол-во графиков продолжало увеличиваться.
Разговор с залом
Если дежурный находил аномалию, то ему нужно было посмотреть ещё несколько десятков, а иногда и сотен графиков для выяснения сути аномалии.
Тут объясняю три проблемы, которые мы решали. Много графиков, их кол-во постоянно увеличивалось, долгое и сложно расследование инцидентов
Нужно было что-то менять!
И мы решили сделать систему, которая избавит нас от этих проблем!
Так как мы логируем каждый запрос между серверами мы взяли за основу эту статистику, из которой мы знаем:
Как мы до этого дошли.
Т.е. Взаимодействие двух серверов описываем тремя графиками, вот один, который показывает кол-во запросов.
Пример картинки того, как взаимодействуют сервера.
Имея такую статистику, очевидно, что мы можем построить граф того, как функционирует портал.
Граф работы портала мог выглядеть как-то вот так, но!
Сейчас у нас более11000 серверов. Строить по ним граф бесмысленно. Он будет очень большой.
Но у каждого сервера есть своя роль, другими словами микросервис. Которых
И как оказалось что у них всего 2500 связей.
И вот так это выглядит!
Ничего не напоминает?
Звезда смерти
Да, вот так сложно работает портал
Что выделено на графе?
Посмотрели на проблемные связи в момент инцидента.
Получили граф проблемы
Это реальный инцидент, когда были проблемы с системой сообщений на мобильной версии.
Давайте разберёмся.
1. Синей линией показана аномалия с ростом времени, желтой, с запросами, фиолетовой ошибки.
На связке веб – сервера бизнес логики рост времени всего + 0,5 мс.
А с базой в которой хранятся приватные сообщения пользователей свосем всё плохо. Увеличилось время, проволились запросы и появились ошибки.
Теперь мы знаем, что нам нужно чинить.
Т.е. При открытии переписки пользователю приходилось ждать, пока подгрузится история его переписки.
Идея оказалась рабочей и мы решили не останавливаться на статистике взаимодействия серверов.
Мы так же стали анализировать статистику с фронтов, это время, ошибки, запросы, трафик:
И в итоге сейчас мы стали анализировать чуть более 100 тысяч графиков!
Не только по сервисам но и по регионам.
Как же это магия происходит?
Централизованное хранилище данных
3 триллиона записей в сутки! А это 600Gb.
А также собирает необходимую информацию из разных источников, такую как Jira/LI
В обучающую выборку идут значения, которые были 7 дней, 14 дней назад в это же время и также в неё попадают по 2 соседние точки с каждой стороны, для обеспечения нормальности выборки. В итоге анализируем 6 дней.
В обучающие данные не попадают те точки, в которых в этот момент была аномалия.
График в ноносекундах.
Т.е. Время увеличилось на 2 миллисекунды.
Гистограмма распределения
Давайте поговорим про каждый в отдельности
Что на графике.
Задача стояла так. Нужно находить аномалии и не находить не аномалии. Нашли баланс экспериментально. 15% для кол-ва запросов и 20% для среднего времени.
Пилообразные графики. Чтобы каждый всплеск или провал не попадал на радары мы показываем только те проблемы, которые продолжаются более 15 минут.
Про график сказать.
Схлопываем данные
При работе с сетью, зачастую происходит юникаст шторм, который влияет на время взаимодействия между собой микросервисов. Т.е. Если произошёл юникаст шторм, то мы его отлавливаем на сетевых графиках и не показываем вот такую бороду.
При сезонном отклонении активности, которое влияет только на колв-во запросов между микросервисами, мы включаем дополнительный рубильник, который делает поправку на отклонение онлайнов.
----- Meeting Notes (03.11.16 11:24) -----
Переделать крупнее каждую часть
Команде мониторинга сначала было туго и не все восприняли систему хорошо, т.к. Приходилось создавать много инцидентов. Но мы этого ожидали и спустя 3 месяца работать стало гораздо проще
----- Meeting Notes (03.11.16 11:24) -----
Начало, про себя. Установка экспертности. !
Отдельный слайд про то, что ломается.
Процесс починки, что делает команда мониторинга. Что происходит с инцидентом. Что такое инцидент. Можно со скриншотами. Нарисовать как обрабатывается инцидент. Мониторщик отвечает мониторщик - важно!
Что такое аномалия - показать. Что означают линии (-1,-2,..) вот это и есть аномалия. Как-то дашборд показать. Графиков всё больше и больше.
40 минут говорить - 1 минута на слайд. 30% подводка к проблеме.
Увеличить подводку!!1
Про нашу структуру - про программистов, про админов, про мониторщиков. Роль в инциденте. - может и не стоит.
Инцидент с рендрингом, сам рендринг, общая схема, фронт апп сервис (с распределенной системы Олега), давайте попробуем найти причины - и по графикам. Пройти всю историю про инцидент.
Начинать с постановки, зачем команда нужна. Что-то есть что-то ломается. про инцидент.
----- Meeting Notes (03.11.16 20:43) -----
Инженеры ДЦ.
Полный цикл.
Мониторинг - это отдельная команда.
Я был ...
----- Meeting Notes (03.11.16 21:17) -----
Продублировать это со словом SmartMonitoring. К этим парням добавили.
Сюда вставляем. Типичный инцидент. Будни команды мониторинга.
Начинать с постановки, зачем команда нужна. Что-то есть что-то ломается. про инцидент.
----- Meeting Notes (03.11.16 20:43) -----
Инженеры ДЦ.
Полный цикл.
Мониторинг - это отдельная команда.
Я был ...
----- Meeting Notes (03.11.16 21:17) -----
Продублировать это со словом SmartMonitoring. К этим парням добавили.
Сюда вставляем. Типичный инцидент. Будни команды мониторинга.