Summary доклада “Как измерить успех? Стратегии мониторинга и их связь с бизнес-проблемами”
Leon Fayer, VP at OmniTI, на РИТ++ 2018
--
Тестирование дает иллюзию, что все хорошо. Потому что тестирование не может покрыть все сценарии. Тестов мало не бывает, но 100% покрытие недостижимо.
Примеры — фамилия длиной 256 символов, “corrupted blood bug” в World of Warcraft, проблемы внешних зависимостей (прямые, косвенные), leaftpad.
Таким образом, тестирования недостаточно и нужен мониторинг.
Все меняется, и это нужно обнаруживать. Мониторинг должен покрывать всё.
Например по чеклисту: инфраструктура, БД и т.д. И можно добиться того, что с точки зрения опсов все “зеленое”.
Но это не всегда означает, что сервис работает. Все может быть хорошо с точки зрения опсов, тестировщиков, программистов. Но бизнес не получает деньги.
Изменения на проде могут влиять на бизнес метрики, а могут и нет.
А алерты важны как раз в случае проблем у пользователя.
И бизнес метрики в этом плане более важны, чем инфра.
Бизнес мониторинг:
- понимание бизнес проблем
- определение baseline
- корреляция данных
Пример случая из жизни, когда клиент звонит и говорит, что стали получать меньше денег. И он думает, что проблема в системе.
Начали смотреть метрику дохода и ее корреляции с другими метриками. В итоге нашли, что просели метрики почтовых рассылок. Потому что один из провайдеров добавил их в блеклист.
Поэтому мониторинг должен быть с начала проекта, а не добавляется по факту в конце проекта. И его развитие никогда не заканчивается.
Другой пример — те же исходные данные — падение денег.
Все метрики ок, ниже процент успешных авторизаций. В итоге проблем в системе не найдено было. И только через пару дней выяснилось, что сайт не работал с American Express, хотя заявлял это на сайте.
Что же такое “успех” для бизнеса и как это измерить?
Обычно это что-то, что имеет отношение к деньгам. Например — регистрации, оплаты, покупки, логины, показы рекламы.
Причем скорее всего эти метрики так или иначе уже собираются. И их сбор можно добавить в мониторинг.
Также важная метрика для бизнеса это скорость загрузки (latency) и их корреляции с активностью пользователей. На них можно заметить как одно влияет на другое.
- среднее арифметическое при измерении таких величин очень вредно, т.к. оно сглаживает проблемы.
- Очень важно понимать, что каждый пользователь важен. И нужно понимать, когда они испытывают проблемы. Проблемой может быть как долгие ответы, так и слишком быстрые.
Для визуализации этих данных лучше использовать гистограммы и тепловые карты (heatmap).
Что важно:
- Value stream mapping [wikipedia]
- MTTD —mean time to discovery
- MTTR —mean time to recovery
- Время от создания до пользователя
- Время/ресурсы каждого шага
Спрашивать про то, что критично для бизнеса и на что нужно реагировать, нужно у бизнеса, а не у технических людей. Если бизнесов несколько, общаться надо с каждым стекхолдером.