Рубрики
Uncategorized

APM хорош в обнаружении основной причины. Но это гораздо больше.

Действительно верно, что более быстрое обнаружение причины является одним из преимуществ, которые может развернуть APM. Tagged с помощью APM, DevOps, предупреждение, rootcause.

Это действительно верно, что более быстрое обнаружение причины является одним из преимуществ, которые может развернуть развертывание APM. Это правда, использование только функции обнаружения основной причины в изоляции приводит к плохим решениям — основная причина должна быть в фокусе только в ситуациях, когда влияние конкретной основной причины оправдывает вмешательство. Чтобы проиллюстрировать это, позвольте мне провести вас через одну из довольно типичных ситуаций, которые мы видим в нашей повседневной жизни:

  • Клиенты жалуются на то, что открытия ежемесячных отчетов «слишком медленно»
  • Владелец продукта реагирует на повторяющиеся жалобы и назначает инженеров задачу «давайте быстрее сделаем отчеты»
  • Инженер, заряженный запросом, раскачивает данные, выявленные APM, находит медленный вызов базы данных и проводит неделю, оптимизируя запрос, чтобы ускорить отчетность 2x.
  • Установленная версия выпускается, и жалобы на отчеты исчезают.

Что не так с использованием APM только для обнаружения основной причины?

Что было не так с приведенным выше подходом? Проблема была решена, так что могло быть улучшено в такой ситуации? Как бы то ни было, есть несколько недостатков с подходом выше, поэтому позвольте мне провести вас через это:

В первую очередь Команда, похоже, не имеет четких требований к производительности. Симптом для этого является отсутствие цели; Вместо этого расплывчатые задачи, содержащие фразы «слишком медленные» или «сделать его быстрее», появляются в отставании.

Производительность-это лишь одна из нефункциональных требований, с которыми должна иметь дело. Кроме того, удобство использования, безопасность и доступность являются примерами других подобных требований. Чтобы иметь четкое понимание приоритетов, команда должна понимать, сосредоточиться или нет даже на проблемах производительности. Вполне может быть, что приложение работает достаточно хорошо, и вместо этого должно быть потрачено на улучшение других аспектов продукта.

Второй Осознание проблемы достигла инженерной команды только после того, как ряд жалоб клиентов достигли менеджера по продукту. В результате дни задержки или даже недель, пройденных до того, как задача была сделана приоритетом для инженеров. В течение всего этого времени все больше и больше пользователей разочаровались продуктом.

Последнее, но не менее важное Инженерная инженерия была сосредоточена на улучшении аспекта, на который жаловались клиенты, что не всегда коррелирует с тем, чтобы тратить время с узкими местами с наибольшим воздействием. Могут быть и другие аспекты продукта, которые даже медленнее, чем ежемесячная функциональность отчетности, на которой сосредоточена команда. В результате команда может не тратить ресурсы на повышение эффективности эффективности.

Как улучшить ситуацию?

Понимание проблем с описанным подходом устанавливает пейзаж для улучшения. В конце концов — первый шаг к выздоровлению — это признание, что у вас есть проблема, не так ли? Итак, позвольте мне провести вас через то, как действительно извлечь выгоду из APM в ситуациях, когда возникают проблемы с производительностью.

Начните с установки объектива (ы) производительности для службы Анкет Это создает основу для успеха и устраняет смутные билеты «сделать его быстрее» и «слишком медленные» билеты с трекера. Наличие четкого требования, такого как «Среднее время отклика должно составлять менее 800 мс, и 99% ответов должны быть выполнены менее чем за 5000 мс», создает четкую и измеримую цель, для которой можно оптимизировать.

Знание того, где установить пороги задержки, может показаться сложным. Действительно, конечные знания в этой области могут быть получены путем понимания корреляции показателей эффективности и бизнес -метрик. Это специфично для бизнеса, которой работает компания. Например:

  • Для цифровых медиа, улучшая среднюю задержку на 20%, вовлечение по сравнению с контентом увеличивается на 6%
  • Для электронной коммерции коэффициент конверсии на шаге воронки увеличивается на 17%, если первая удовлетворенная краска на шаге уменьшается с 2500 мс до 1300 мс.

Получение этих знаний может быть невозможным изначально, поскольку для этого требуется корреляция данных, специфичную для домена с производительностью и бизнес-метриками. Для большинства компаний, однако, начальные цели могут быть установлены с использованием простого трехэтапного подхода:

  1. Понять статус -кво, анализируя текущую базовую линию. В результате вы поймете производительность, которую в настоящее время испытывают ваши пользователи. Эта производительность должна быть выражена в распределении задержки в качестве процентилей, аналогично: срединной задержке составляет 900 мс, а 99 -й процентиль — 6200 мс.
  2. Выберите несколько низко висящих и сочных улучшений по коренным причинам, обнаруженным APM. Обычно это требует выделения нескольких человеко-свинков инженерного времени для борьбы с 2-3 узкими местами с большим воздействием, которые легко смягчить.
  3. После того, как улучшения будут выпущены, снова измерьте производительность, используя то же распределение задержки. Вы должны столкнуться с лучшей производительностью, например, с теми же трех показателями, препикнувшей задержку, теперь могут составлять 800 мс для среднего и 4500 мс для 99-го процентиля.

Используйте эту новую базовую линию, чтобы формализовать цель. Снова используя цифры из примеров выше, команда может согласиться с тем, что:

  • Среднее время отклика API должно составлять менее 850 мс за 99% случаев в любом месяце
  • 99 -й процентиль времени отклика API должен составлять менее 5000 мс за 90% случаев в любом месяце.

После прохождения этого упражнения у вас теперь есть четкая цель для достижения следующих шагов, чтобы пожинать полные преимущества развертывания APM.

Настройка предупреждения. Цель здесь состоит в том, чтобы использовать данные APM, чтобы сразу осознавать, когда цели производительности больше не достигаются. Это устраняет отставание в ожидании жалобных пользователей и значительно сокращает время, необходимое для смягчения проблем, когда производительность падает.

Ключом к успешному предупреждению является признание того, что оповещения должны основываться на симптомах, а не к корневым причинам или техническим показателям. На практике это означает, что вместо этого предупреждает, основываясь на увеличении использования памяти или сетевого трафика, вы должны предупредить свою команду в зависимости от того, что испытывают реальные пользователи. APM (и ромы) являются отличным источником для таких метрик.

Google с их инженерным движением на сайте многое сделало в этом отношении для обучения рынка, но в этой области все еще существует значительное сопротивление. Но я могу поощрять вас попробовать — провести неделю, когда вы отключите десятки различных технических предупреждений на основе метрик и заменить их на APM или на основе рома оповещения. Теперь вас будут предупреждены только в ситуациях, когда либо пропускная способность, а не ненормальная, частота ошибок превышает определенный порог или производительность, как и пользователи, испытываемые пользователями. Я готов принять ставку на то, что вы приятно удивлены качеством используемого сигнала. Приготовьте себя за значительно меньше ложных срабатываний и отрицательных, и приведите уверенность в своих предупреждениях!

Настройка оповещений на практике проста. Выберите базовую метрику, установите пороговые значения на основе SLO и транслируйте оповещения в уже используемый канал (Slack, Pagerduty, электронная почта,…). Для оповещений о производительности — расширение примера, используемого в предыдущем разделе — команда может устанавливать оповещения в ситуациях, когда среднее время отклика превысило 850 мс, или 99 -й процентиль времени отклика превысило 5000 мс.

Работать с первопричинами с большинством воздействий Анкет В ситуациях, когда производительность SLO нарушается, и предупреждение было вызвано, крайне важно убедиться, что инженерное время потрачено на изучение и улучшение узких мест, которые внесли наибольший вклад в нарушение.

По иронии судьбы, это не часто. Времена и времена я снова видел команды, которые упорно бреют миллисекунды из конкретной ситуации с кодом IT, где реальные проблемы на несколько порядков больше и расположены в совершенно не связанных разделах кода. Используйте силу вашего APM и, прежде чем улучшать что -либо, убедитесь, что улучшения осуществляются в самых проблемных областях исходного кода.

Лучшие поставщики APM делают вашу работу в этой области тривиальной, ранжируя различные узкие места, основываясь на их влиянии. В результате у вас будет информация, похожая на следование у вас под рукой, давая вам уверенность в том, что улучшения должны сосредоточиться на смягчении первого узкого места:

Еда на вынос

Любая APM, которую стоит принять, упростит разрешение основной причины, обнаружив узкие места и ошибки в вашем приложении посредством распределенных трассов и дополнительных инструментов для конкретной технологии. Однако использование APM только для процесса разрешения основной причины является инвалидом. Разверните, как вы используете APM, чтобы действительно контролировать производительность и доступность цифровых услуг, которые вы контролируете.

Будучи сильным сторонником этого, я могу побудить вас вывезти Plumbr Apm для тестового прогона. Возьмите свою 13-дневную бесплатную пробную версию наслаждаться преимуществами, описанными выше.

Оригинал: «https://dev.to/ivomagi/apm-is-good-at-root-cause-detection-but-there-is-much-more-to-it-1d83»