50
Как неправильно замониторить {% something %} Pavel Trukhanov, OKmeter.io, 2015

How not to monitor something — Failover conf 2015

Embed Size (px)

Citation preview

Как неправильно замониторить

{% something %}

Pavel Trukhanov, OKmeter.io, 2015

План

1. Мониторинг симптомов важнее железа

2. Внешний мониторинг - почему это не тру

3. Тайминги и перцентили

4. Вопросы визуализации

симптомы важнее железа

Чем дальше от пользователя, тем более сложноинтерпретируемые измерения

логи фронта aka reverse-proxy

vsлоги приложения

Чем дальше от пользователя, тем хуже

Чем дальше от пользователя, тем хуже

реальные соединения / попыткиvs

логи фронта

Чем дальше от пользователя, тем хужеситуация у пользователя

vs aka «в браузере»

соединения дошедшие вам в ДЦ

Значит надо мониторить снаружи!pingdom, ...

Значит надо мониторить снаружи!pingdom, ...

НЕТ

План

1. Мониторинг симптомов важнее железа

2. Внешний мониторинг - почему не тру

3. Тайминги и перцентили

4. Вопросы визуализации

Внешние чекиОбычно - только малый набор страниц- только если они упали совсем- css? js?

Модель “упало всё” (почти)

_ 5xx ошибки сервера

Модель “упало не всё”_ 5xx ошибки сервера

Решение?

aka Real User MonitoringМониторить браузеры

План

1. Мониторинг симптомов важнее железа

2. Внешний мониторинг - почему это не тру

3. Тайминги и перцентили

4. Вопросы визуализации

Зачем тайминги?- Оценить “Качество Сервиса” aka SLA - Service Level Agreement

Чтобы задать себе планку-цель и к ней идти

- Оперативно следить, что с SLA все впорядке- Отследить долгосрочный тренд — деградацию или

результат планомерных оптимизаций

Почему перценитили?Есть же avg! Среднее = сумма ресурса использованного всеми запросами / количество запросовaka “mean” aka “average”

Нужно для capacity planning: ожидаемое использование ресурса = сумма / количество * ожидаемое количество

Не подходит для оценки SLA

Почему перценитили - 2 - Медиана“50 перцентиль aka Медиана = 5 секунд” означает что 50% ваших пользователей получат результат менее чем за 5сек

Подходит чтобы сравнить до/после релиза — “всё ли ок?”, две версии кода — “cработала ли наша оптимизация?”

Не подходит для оценки SLAИли ОК, если вас волнует только 50% ваших пользователей!

Зачем перценитили - 2 - Медиана“50 перцентиль aka Медиана = 5 секунд” означает что 50% ваших пользователей получат результат менее чем за 5сек

Подходит чтобы сравнить до/после релиза — “всё ли ок?”, две версии кода — “cработала ли наша оптимизация?”

Не подходит для оценки SLAИли ОК, если вас волнует только 50% ваших пользователей!

Перценитили!“Хотим чтобы было быстро для 100% пользователей”Нужна перцентиль p100! aka max за период

Очень шумно!

Может p99?

Уже лучше!

p95?“Отлично!”

8ч 1д

Как это считать/вычислять?You can't average percentiles. Period.The average of 1,000 99%'lie measurement has as much to do with the 99%'lie behavior of a system as the current temperature on the surface of mars does. Maybe less.

The simplest way to demonstrate the absurdity of this "average of percentiles" calculation is to examine it's obvious effect on two "percentile" values that are hard to hide from: The Max (the 100%'lie value) and the Min (the 0%'lie value).

If you had the Maximum value recorded for each 5 second interval over a 5000 second run, and want to deduce the Maximum value for the whole run, would an average of the 1,000 max values produce anything useful? No. You'd need to use the Maximum of the Maximums. Which will actually work, but only for the unique edge case of 100%...

But if you had the Minimum value recorded for each 5 second interval over a 5000 second run, and want to deduce the Minimum value for the whole run, you'd have to look for the Minimum of the Minimums. Which also works, but only for the unique edge case of 0%.

The only thing you can deduce about the 99%'lie of a 5000 second run for which you have 1,000 5 second summary 99%'lie values is that it falls somewhere between the Maximum and Minimum of those 1,000 99%'lie values…

© Gil Tene, latencytipoftheday.blogspot.ru

p95 и p99

“95% пользователей в штатной ситуации видят сайт за 40мс, а 99% — за 130мс”

p95 и p99

“95% пользователей в штатной ситуации видят сайт за 40мс, а 99% — за 130мс”

Сколько длится сеанс использования сайта? Сколько страниц открывает пользователь за сеанс? Сколько запросов от одной страницы?«% сессий с откликом хуже медианы

= (1 - (0.5 ^ N)) * 100% где N — число [запросов / ресурсов / HTTP GET’ов] При N=42:

(1 - (0.5 ^ 42)) * 100% = 99.999 999 999 977%»© Gil Tene, latencytipoftheday.blogspot.ru

А вот и нет!

План

1. Мониторинг симптомов важнее железа

2. Внешний мониторинг - почему это не тру

3. Тайминги и перцентили

4. Вопросы визуализации

А видно ли перцентили?

А видно ли перцентили?

На самом деле ничего не видно

На самом деле там внутрираспределение!

Много распределений!

Как сделать heatmap

Как сделать heatmapПостроим распределения

Как сделать heatmap

Heatmap!

Heatmap!

Одинаково?

Heatmap!

Одинаково?

Во сколько раз темнее?

Как сделать светофор

Как сделать светофорОпять распределения

Как сделать светофорКрасим в светофор

Как сделать светофорДелаем стек

светофор!

Теперь вы знаете как неправильно!

- Далеко от пользователя

- Среднее от перцентилей

- Хитмапы отстой

Всё!

Pavel Trukhanov, OKmeter.io

Правда ли гугл маркирует медленные сайты большой красной блямбой?

ApDex ?