NewRelic: установка порогового значения apdex по-разному для каждой страницы.
Наш сервер приложений предоставляет несколько конечных точек API, осуществляя вызовы API к внешним службам (CRM и т. д.). Давайте рассмотрим 2 конечные точки REST API.
GET /user-details
Это должно быть очень быстро (~50 мс), потому что нужно только получить несколько деталей из базы данных и вернуть данные.
POST /sync-user-with-crm
Это приводит к внешнему вызову API к другой службе, который работает медленно и находится вне нашего контроля, поэтому ожидаемое время ответа составляет 1–2 секунды.
У нас равное распределение вышеуказанных вызовов. Мы хотели бы получить предупреждение с низким апдексом, если первый вызов замедлится до 100 мс или более. Согласно доступным настройкам NewRelic, если мы установим ожидаемое время для API равным 50 мс, apdex будет низким из-за второго API. если мы установим значение 2 с, оно не будет предупреждать нас, когда первый вызов замедляется. Есть ли способ правильно настроить оповещения для приведенного выше варианта использования?
1 ответ
В New Relic есть концепция «ключевых транзакций», где вы можете определить, в вашем случае, обе конечные точки как таковые. Это позволит вам настроить порог Apdex для каждой конечной точки: https://docs.newrelic.com/docs/apm/transactions/key-transactions/introduction-key-transactions/
Альтернатива — просто использовать оповещения NRQL для определения задержки для каждой конечной точки. В основном 2 условия оповещения, запрашивающиеTransaction
eventType, отфильтрованный по каждой уникальной конечной точке:
SELECT max(duration) FROM Transaction where name = <endpoint_name>