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 условия оповещения, запрашивающиеTransactioneventType, отфильтрованный по каждой уникальной конечной точке:

SELECT max(duration) FROM Transaction where name = <endpoint_name>

Другие вопросы по тегам