Как получить пороговое значение Apdex на основе SLA?
У нас есть доступный API REST. Для каждой из конечных точек, которые предлагает этот API, у нас есть определенный SLA, основанный на внутреннем тестировании. Новая Relic предоставляет возможность определять T-балл Apdex для каждого приложения. Рассматривая сценарий следующим образом:
- Конечная точка A: SLA составляет 200 мс
- Конечная точка B: SLA составляет 800 мс
Средний SLA: 500 мс
Случай 1. Рассмотрим средний SLA для порогового значения Apdex. Проблема с этим подходом состоит в том, что, хотя моя конечная точка A должна завершиться за 200 мс, она не будет помечена, даже если конечная точка займет в два раза больше времени, определенного в SLA, так как это все равно будет меньше, чем среднее значение. И наоборот, это относится к конечной точке B, где она будет помечена, даже если она была ниже 800 мс.
Случай 2: Рассмотрите максимальное SLA(800 мс) всех конечных точек как значение Apdex T. Опять проблема, здесь будет с конечной точкой A. Любая задержка в ответе от этой конечной точки не будет отмечена, даже если она будет в 4 раза больше фактической ожидаемое время.
Итак, как нам получить пороговое значение Apdex в таких сценариях? Я прошел следующую статью из Новой реликвии: ССЫЛКА. Это имеет смысл, когда мы смотрим на сервис в целом, а не когда мы смотрим на каждую из конечных точек.
1 ответ
Вы уверены, что хотите установить Apdex на основе вашего SLA?
Я бы предположил, что типичная производительность приложения - лучший показатель, на который стоит обратить внимание. Допустим, если за последние 7 дней у вашего приложения была средняя производительность. Однако в статье "Как установить Apdex T" в статье предлагается использовать процентиль для типичной производительности.
Таким образом, если вы получите 90-й процентиль, это должно привести к 0, 95 балла апдекса. Очевидно, что Apdex of 1 бесполезен, так как вы не держите свою учетную запись рядом с достаточной учетной записью. Так что я бы индивидуально спросил Insights
выберите процентиль (продолжительность, 90) из транзакции, где appName="AppA" с 7 дней назад
выберите процентиль (продолжительность, 90) из транзакции, где appName="AppB" с 7 дней назад
Это даст вам время отклика, что 90% ваших клиентов становятся лучше, чем. Так что должно быть хорошим приблизительным ориентиром относительно вашего значения Apdex T.
Однако, если ваша цель заключается в том, чтобы в Приложении A, где SLA составляло 200 мс, а ЛЮБАЯ транзакция превышала это значение, это должно быть 0 баллов к баллу Apdex. Тогда ваш Apdex T просто должен быть 50 мс. Поскольку все, что быстрее 50 мс, получает 1 балл, все, что находится между Apdex T и 4 x Apdex T, получает 0,5 балла, но по крайней мере все еще набирает очки. Все, что медленнее, чем 4 x Apdex T (в этом сценарии 200 мс), получает 0 очков к Apdex. Так что это даст вам транзакции, помеченные как разочарованные для Apdex, если они нарушают SLA.
Apdex - это что-то вроде искусства, но вы можете определенно добраться туда, где вам нужно, с помощью любого из вышеперечисленного. Я надеюсь, что я рассмотрел два сценария, которые я считаю вероятными в этом случае.