SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
Мониторинг
всех слоев web
проекта
Николай Сивко
Мотивация
1 минута простоя hh.ru днем в будни
затрагивает ~30000 пользователей
~15 * HL++
Задачи
• Узнать, что сломалось
• Быстро узнать, где сломалось
• Увидеть, что починилось
• Capacity planning
• Планирование оптимизаций
• Контроль оптимизаций
Поговорим
• На какие метрики нужно смотреть, если вы
эксплуатируете web проект
• Как смотреть на метрики, чтобы быстро понимать, что
происходит
Не затронем сегодня
• Инструменты: чем рисовать графики, как скрещивать
разные решения и т.д.
• Алерты: имея нужные метрики, сделать проверку
триггеров не так сложно
• Методология: workflow, KPI
http://www.slideshare.net/NikolaySivko/rootconf2015
hh.ru
Физический смысл
• Видеть, как работает система с точки зрения
пользователя
• Видеть, что происходит в каждой подсистеме
• На что уходят ресурсы
• На все это надо смотреть во времени: как было минуту
назад, вчера, в прошлый понедельник
Navigation timing API
• js снипет отстреливает метрики на сервер GET запросом
с параметрами
• location = /stat {
return 204;
access_log /var/log/nginx/clientstat.access.log;
}
• парсим лог
Client-side timers
Работает ли сайт?
• Есть ли ошибки? Сколько?
• Быстро или медленно? У одного пользователя или у
всех?
• Сколько запросов? Как обычно/провал/боты?
• Не тупит ли канал до клиентов?
Всё есть в логе nginx
• Конечно, стандартный формат “combined” нам не
подходит
• $request_time
• $upstream_response_time
• Опционально: $upstream_addr, $upstream_status,
$upstream_cache_status
$request_time
$upstream_response_t
HTTP-5xx
HTTP-5xx by URL
5xx + 4xx + bots
$bytes_sent
Про урлы
• Ручные правила для парсинга основных урлов
устаревают
• Нормализация: /vacancy/123?arg=value -> /vacancy/$id
• Динамический top урлов (по rps или
сумме$upstream_response_time)
• Можно отдельный top по ошибкам, но с отсечкой снизу,
чтобы не было мусора
Балансировка
На что уходит время
2015-10-14 15:12:00,904 INFO: timings for
xhh.pages.vacancy.Page :
prepare=0.83
session=4.99
page=123.84
xsl=36.63
postprocess=13.21
finish=0.23
flush=0.49
total=180.21
code=200
Страница вакансии
Чем занят кластер?
Шаблонизация
2015-10-14 15:12:00,865 INFO: applied XSL
ambient/pages/vacancy/view.xsl in 22.50ms
Что оптимизировать?
Видим результат
Какой сервис сломался
Опять стадии
2015-10-21 10:47:10.532 [Grizzly-worker(14)] INFO
r.hh.health.monitoring.TimingsLogger: response: 200; context:
GET /hh-session/full;
total time 10 ms;
jersey#beforeHandle=+0;
HHid#BeforeClient=+0;
HHid#Client=+6;
DB#getHhSession=+3;
pbMappers=+0;
makeHeaderSession=+1;
currentSessionInBothBodyAndHeader=+0;
jersey#afterHandle=+0;
Log -> metrics
Не поплохело ли PG?
Чем занят CPU PG?
Кто грузит диски?
Кто грузит диски?
Вопросы про сеть
• Сервис hhsession ждал ответа от hhid 150ms
• Сервис hhid считает, что он ответил на этот запрос за
5ms (тот же request_id)
• “Между ними только сеть”
• Результатов ping за вчера между ЭТИМИ хостами у вас
нет
• Как исключить сеть?
TCP RTT
• TCP Round-Trip Time - время от отправки пакета до
получения ACK
• Стоит рассматривать как некий тренд, не нужно
пытаться сравнивать с ICMP RTT
TCP очень сложный
* www.cs.virginia.edu/~cs458/slides/module15-tcp3V2.ppt
Что с этим делать
• Периодически снимаем со всех хостов RTT всех текущих
соединений
• Делаем агрегаты для всех remote_ip + listen_port в
пределах вашего сегмента сети (перцентиль)
• Сможем увидеть, как вела себя сеть между нужными
хостами
7ms при ping ~ 0.8ms
Немного про OS
• cpu
• memory
• disk
• disk i/o
• net interfaces
• swap
• swap i/o
Что это было?
Процессы
• CPU per process+user
• Memory per process+user
• Disk I/O per process+user
• Swap per process+user
• Swap I/O per process+user
• FD usage per process+user
pg_dump + pbzip2
Итого
• Простые графики могут сильно ускорить поиск
проблемы
• Постарайтесь покрыть мониторингом все подсистемы (а
особенно стыки между ними)
• Чем детальнее метрики, тем проще потом разбираться
Спасибо за внимание!
Вопросы?
Николай Сивко
hh.ru
Email: n.sivko@gmail.com, sivko@hh.ru

Contenu connexe

Tendances

Типовое внедрение мониторинга
Типовое внедрение мониторингаТиповое внедрение мониторинга
Типовое внедрение мониторингаUptime Community
 
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix
 
Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Ontico
 
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...Игорь Мызгин
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Tanya Denisyuk
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)Ontico
 
Диагностика postgresql для системного администратора
Диагностика postgresql для системного администратораДиагностика postgresql для системного администратора
Диагностика postgresql для системного администратораNikolay Sivko
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанкуNikolay Sivko
 
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Tanya Denisyuk
 
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновсервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновOntico
 
Ровная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереРовная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереBadoo Development
 
Борис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruБорис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruOntico
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцTanya Denisyuk
 
My talk on administering PostgreSQL
My talk on administering PostgreSQLMy talk on administering PostgreSQL
My talk on administering PostgreSQLAlex Chistyakov
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Ontico
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose HadoopSerguei Gitinsky
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 

Tendances (20)

Типовое внедрение мониторинга
Типовое внедрение мониторингаТиповое внедрение мониторинга
Типовое внедрение мониторинга
 
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
 
Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"Дмитрий Дегтярев, "Хабикаса"
Дмитрий Дегтярев, "Хабикаса"
 
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
на пути к 100% аптайму - доклад с HighLoad 2015 совместно с Станиславом Осип...
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
 
Java Performance
Java PerformanceJava Performance
Java Performance
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
 
Диагностика postgresql для системного администратора
Диагностика postgresql для системного администратораДиагностика postgresql для системного администратора
Диагностика postgresql для системного администратора
 
Поиск наизнанку
Поиск наизнанкуПоиск наизнанку
Поиск наизнанку
 
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
 
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсоновсервис нагрузочного тестирования Ddosme.ru, иван самсонов
сервис нагрузочного тестирования Ddosme.ru, иван самсонов
 
Ровная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластереРовная балансировка нагрузки на фронтенд-кластере
Ровная балансировка нагрузки на фронтенд-кластере
 
Борис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ruБорис Каплуновский, Aviasales.ru
Борис Каплуновский, Aviasales.ru
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяцМихаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
Михаил Табунов, Аналитическая платформа на несколько миллиардов событий в месяц
 
My talk on administering PostgreSQL
My talk on administering PostgreSQLMy talk on administering PostgreSQL
My talk on administering PostgreSQL
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
Принципы и приёмы обработки очередей / Константин Осипов (Mail.ru)
 
Why we did not choose Hadoop
Why we did not choose HadoopWhy we did not choose Hadoop
Why we did not choose Hadoop
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 

Similaire à Мониторинг всех слоев web проекта (hl2015)

Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Ontico
 
"Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
 "Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро... "Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
"Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...Egor Petrov
 
PostgreSQL performance recipes
PostgreSQL performance recipesPostgreSQL performance recipes
PostgreSQL performance recipesAlexey Ermakov
 
Регулярный менеджмент и подготовка к автоматизации процессов
Регулярный менеджмент и подготовка к автоматизации процессовРегулярный менеджмент и подготовка к автоматизации процессов
Регулярный менеджмент и подготовка к автоматизации процессовborovoystudio
 
Оптимизация бизнес-процессов (их схемы в MS Visio)
Оптимизация бизнес-процессов (их схемы в MS Visio)Оптимизация бизнес-процессов (их схемы в MS Visio)
Оптимизация бизнес-процессов (их схемы в MS Visio)Александр Михалькевич
 
Александр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketАлександр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketi20 Group
 
Рынок Drupal (Александр Воинов)
Рынок Drupal (Александр Воинов)Рынок Drupal (Александр Воинов)
Рынок Drupal (Александр Воинов)DrupalYug
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубыAleksandr Tarasov
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Когда проектов больше чем людей - процесс разработки в маленькой, но амбициоз...
Когда проектов больше чем людей - процесс разработки в маленькой, но амбициоз...Когда проектов больше чем людей - процесс разработки в маленькой, но амбициоз...
Когда проектов больше чем людей - процесс разработки в маленькой, но амбициоз...Alexander Gornik
 
Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush
 
дерюшкин Agile vector
дерюшкин   Agile vectorдерюшкин   Agile vector
дерюшкин Agile vectorMagneta AI
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAlexey Deryushkin
 
МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)Ontico
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016Anastasia Goryacheva
 
Презентация TimeInformer Searchinform
Презентация TimeInformer  SearchinformПрезентация TimeInformer  Searchinform
Презентация TimeInformer SearchinformSearch Inform
 
Дикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургДикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургКирилл Толкачёв
 
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...Ontico
 

Similaire à Мониторинг всех слоев web проекта (hl2015) (20)

Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
Monitoring driven эксплуатация / Николай Сивко (HeadHunter)
 
"Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
 "Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро... "Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
"Mobile Velocity Index: Data-driven оптимизация времени старта" / Павел Воро...
 
PostgreSQL performance recipes
PostgreSQL performance recipesPostgreSQL performance recipes
PostgreSQL performance recipes
 
Регулярный менеджмент и подготовка к автоматизации процессов
Регулярный менеджмент и подготовка к автоматизации процессовРегулярный менеджмент и подготовка к автоматизации процессов
Регулярный менеджмент и подготовка к автоматизации процессов
 
Оптимизация бизнес-процессов (их схемы в MS Visio)
Оптимизация бизнес-процессов (их схемы в MS Visio)Оптимизация бизнес-процессов (их схемы в MS Visio)
Оптимизация бизнес-процессов (их схемы в MS Visio)
 
Александр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal marketАлександр Воинов. Power of Drupal market
Александр Воинов. Power of Drupal market
 
Рынок Drupal (Александр Воинов)
Рынок Drupal (Александр Воинов)Рынок Drupal (Александр Воинов)
Рынок Drupal (Александр Воинов)
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Когда проектов больше чем людей - процесс разработки в маленькой, но амбициоз...
Когда проектов больше чем людей - процесс разработки в маленькой, но амбициоз...Когда проектов больше чем людей - процесс разработки в маленькой, но амбициоз...
Когда проектов больше чем людей - процесс разработки в маленькой, но амбициоз...
 
Pavel Dovbush Toster
Pavel Dovbush Toster Pavel Dovbush Toster
Pavel Dovbush Toster
 
дерюшкин Agile vector
дерюшкин   Agile vectorдерюшкин   Agile vector
дерюшкин Agile vector
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в Райффайзенбанке
 
МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)МРТ для данных / Анастасия Горячева (Avito)
МРТ для данных / Анастасия Горячева (Avito)
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016
 
Презентация TimeInformer Searchinform
Презентация TimeInformer  SearchinformПрезентация TimeInformer  Searchinform
Презентация TimeInformer Searchinform
 
Дикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG ЕкатеринбургДикие микросервисы на JUG Екатеринбург
Дикие микросервисы на JUG Екатеринбург
 
Load testing with Tsung
Load testing with TsungLoad testing with Tsung
Load testing with Tsung
 
ClickHouse
ClickHouseClickHouse
ClickHouse
 
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
Хранилище данных Avito: аналитика для микросервисной архитектуры / Артем Дани...
 

Мониторинг всех слоев web проекта (hl2015)

Notes de l'éditeur

  1. Переставить после примера проблемы