Мой вариант использования очень прост: я хочу отслеживать что-то вроде «транзакций в секунду» или любую простую целочисленную метрику.
Вот упрощенная версия того, что я делаю:
Код: Выделить всё
public String simpleFunction() {
Random ran = new Random();
NewRelic.recordMetric("Custom/TestData/RequestsPerSecond", ran.nextInt(10, 100));
return "Hi";
}
Проблема в том, что это не работает — я вообще не вижу никаких данных пользовательских метрик в New Relic.
Важный контекст:
- Агент New Relic настроен правильно.
- Данные есть успешно отправляется с использованием других API:
Код: Выделить всё
recordCustomEventКод: Выделить всё
noticeError- Я вижу их в New Relic без каких-либо проблем.
- Я следовал рекомендациям по присвоению имен для пользовательских метрик ().
Код: Выделить всё
Custom/...
Я также пробовал запросить его с помощью NRQL:
Код: Выделить всё
SELECT * FROM Metric
WHERE metricTimesliceName LIKE 'Custom/TestData%'
Код: Выделить всё
SELECT average(newrelic.timeslice.value)
FROM Metric
WHERE metricTimesliceName = 'Custom/TestData/RequestsPerSecond'
SINCE 30 minutes ago TIMESERIES
Код: Выделить всё
SELECT average(newrelic.timeslice.value)
FROM Metric
WHERE metricTimesliceName = 'Custom/TestData/RequestsPerSecond'
SINCE 1 hour ago
Я понимаю, что существуют встроенные подходы APM для автоматического получения таких показателей, как пропускная способность, но в данном случае я специально хочу записать их вручную с помощью RecordMetric.
Вопрос:
Почему RecordMetric не создает никаких видимых данных в New Relic, даже хотя агент корректно работает с другими функциями?