Я контролирую приложение PHP с помощью NewRelic, и я очень смущен некоторыми номерами, представленными в обзоре моего приложения.
Мое приложение состоит из PHP webapp, который обслуживает страницы для веб-браузеров с одной стороны (очевидно 🙂 и выполняет запросы к бэкэнду Java с другой стороны:
Браузер <-> PHP Webapp -> Java Backend
Я знаю, что некоторые из запросов на бэкэнд Java могут занять до 15 секунд, что приведет к полному webapp с точки зрения браузера, который занимает много времени.
В обзорной панели newrelic (APM> My App> Monitoring> Overview) говорится, что время моего «сервера приложений» составляет в среднем 1560 мс, а мое «время браузера» – 5,63 с (я включил мониторинг браузера). Кроме того, в разделе «Сделки» показаны транзакции длиной до 11,6 секунд.
Итак … как все эти разные измерения времени связаны между собой? Подводя итог, я имею:
Как я могу понять эти цифры? Я бы ожидал, что «время браузера» будет самым высоким (поскольку он включает в себя все остальные, как обработку PHP, так и транзакцию). Складываются ли они каким-то образом? Некоторые из них являются разбивкой других?
Примечание. Я знаю, что в newrelic это все среднее время по сравнению с анализируемым временным окном, но все же это не имеет смысла для меня.
Благодаря!
Ну, я, наконец, понял это. Ключевая концепция, которую я здесь отсутствовала, была «процентили». Позвольте мне немного пояснить.
В моем вопросе я упомянул, что получаю среднее время отклика 1560 мс, что, по-видимому, не имело смысла, учитывая тот факт, что наш бэкэнд всегда должен обрабатывать около 15 секунд, чтобы дать ответ. Следующая картина – это то, что я получаю в «обзоре» моего webapp.
Как вы можете видеть, среднее время ответа не так уж плохо. Тем не менее, я также вижу транзакции, которые занимают до 15 секунд.
Затем, если вы увеличите селектор «Время отклика веб-транзакций» и выберите знак процента («%»), вы получите график «Percentiles». Шахта выглядит следующим образом:
На этом новом графике:
Теперь все начинает иметь смысл. Мои средние запросы на самом деле занимают не более 2 секунд. Но у меня так много запросов, которые очень быстры (те, что ниже красной линии), что те, кто занимает невероятное количество времени в 15 секунд, в среднем не заметны. Это видно только тогда, когда вы смотрите на длинный хвост ваших выборочных запросов, т.е. 95-й и 99-й процентили.
Для его завершения можно подтвердить выбор опции «гистограмма» на графике. Шахта выглядит следующим образом:
Обратите внимание, что подавляющее большинство запросов занимает менее 200 мс, но у нас также есть 8,29% транзакций, которые занимают более 7 секунд для завершения (и если бы мы могли прокрутить направо от гистограммы, мы обнаружили бы, что на самом деле запрос занимает больше, чем 15 секунд – последние 5% и 1%, из-за анализа процентных показателей, который мы делали раньше).
(В этой статье я указал в правильном направлении: https://blog.newrelic.com/2013/10/23/histograms-percentiles-new-relic-style/ )
Это меня долго дезориентировало, надеюсь, что это поможет кому-то!