Транзакции
Введение
Заголовок раздела «Введение»Транзакция — это логическая единица работы веб-приложения, охватывающая все операции от получения веб-запроса до ответа или от начала и конца фоновой задачи.
В APM есть два типа транзакций:
- Web — для HTTP-запросов (загрузка страниц, API запросы);
- Other — для фоновых задач и обработки сообщений.
Для каждого из них реализован дашборд модуля APM. Дашборды Web- и Other- имеют одинаковую структуру, за исключением того, что в Web-транзакциях также есть метрики Apdex.
Собираемые метрики можно поделить на категории:
- Метрики приложения: включают количество обработанных запросов, длительность обработки запросов, число ошибок, Apdex. Эти метрики собираются для всего приложения и для отдельных транзакций.
- Метрики транзакций: фиксируют длительность операций внутри каждой транзакции. Операции бывают:
- External — взаимодействие с внешними системами;
- Datasource — доступ к базам данных.
Необходимо отметить, что статистика работы приложения вычисляется не только из метрик, но и на основе событий. Подробнее о метриках и событиях можно прочесть в документации по модели данных.
Структура дашбордов Web/Other
Заголовок раздела «Структура дашбордов Web/Other»На дашборде транзакций есть панели:
- Время ответа сервиса на web-запросы (среднее с детализацией и с разбивкой по перцентилям)
- Ключевые метрики здоровья системы (ошибки, пропускная способность (throughput), APDEX)
- Метрики с разбивкой по хостам
- ТОП транзакций в системе
- Сравнение с историческими данными (сутки и неделю назад)
Разберем основные метрики, представленные на панелях экрана транзакций.
Apdex (Application Performance Index) - это индекс, показывающий отношение количество “удовлетворительно” отработавших транзакций (по времени) к общему количеству запросов. Метрика варьируется от 0 до 1:
- Apdex = 1 означает, что все запросы удовлетворяют ожиданиям пользователей (satisfied). Время ответа сервера находится в пределах “удовлетворительного” диапазона для всех запросов.
- Apdex более 0.7 означает, что в системе есть множество tolerated запросов.
- Apdex = 0 означает, что все запросы неудовлетворительны (frustrated). Это указывает на то, что время ответа значительно выше ожидаемого, и пользователи испытывают проблемы с производительностью сервиса.
Satisfied считаются запросы обработанные без ошибок и менее, чем за лимит, который по умолчанию установлен в 500мс. Tolerated до четырехкратного превышения лимита, остальные считаются frustrated. Данный лимит можно изменить в настройках APM агента переменной NEW_RELIC_APDEX_T
Throughput - пропускная способность, метрика пользовательской активности, для APM измеряется в requests per minute (RPM) и также на графике выводится частота satisfied, tolerated и frustrated запросов.
Percentilies - показатель позволяющий увидеть, какой процент запросов выполняется быстрее или медленнее определенного порога. Это полезно для понимания того, как долго пользователи ждут ответа от приложения, и помогает выявить узкие места в производительности.
- 95-й перцентиль показывает, что 95% запросов выполняются быстрее или равны этому значению, тогда как 5% выполняются медленнее.
- 99-й перцентиль аналогично: только 99% выполняются быстрее него и только лишь 1% запросов медленнее или равны ему
Перцентили помогают лучше понять распределение производительности приложения по сравнению со средним значением. Это особенно важно, если есть большое количество запросов, которые выполняются очень быстро, но также присутствуют редкие события с очень длительным временем отклика: среднее значение может сильно отклониться, но, например, 99-я перцентиль нет, это будет значить, что очень медленные запросы составляют лишь 1 или менее процента от общего числа запросов.
Status codes - статус коды, которые собираются в рамках веб-транзакций, на графике отображено количество запросов в минуту. Полагаясь на время возникновения, переходим в транзакции для дальнейшего расследования, если видим коды кроме 200.
Transactions - разбивка суммарного времени обработки запросов по транзакциям и список транзакций ведущий на дашборд метрик по конкретным транзакциям. Структура дашборда конкретных транзакций повторяет структуру основного дашборда.
В дополнение к перечисленным метрикам, дашборд транзакций включает в себя данные по производительности хостов:
- список хостов с метриками Apdex, времени ответа, пропускной способностью, количеством ошибок
- графики времени ответа, использования памяти и процессорного времени, пропускной способности хоста
Также в дашборде транзакций приложения представлены графики сравнения с историческими данными по ключевым метрикам производительности приложения - среднему времени ответа, пропускной способности, Apdex и частоте возникновения ошибок. На этих графиках три линии - значение величины на данный момент, день и неделю тому назад.
Структура дашборда метрик отдельной транзакции
Заголовок раздела «Структура дашборда метрик отдельной транзакции»На этом дашборде отсутствуют метрики производительности хоста, но добавлены:
- список операций, происходящих в рамках данной транзакции
- трассировки транзакции, которые позволяют детально изучить стек вызова транзакции для той или иной платформы исполнения кода