Скрытые отчеты NewRelic об исключениях с уведомлением

Мы хотим использовать поведение NewRelic noticeNetworkFailure в Mobile для скрытой записи исключений в операторах catch, которые на самом деле не являются исключениями сети; потому что на данный момент это единственный способ отслеживать исключения с помощью NewRelic Mobile.

В следующем примере кода, похоже, не загружается какая-либо информация о событии. Я подумал, что это может быть связано с тем, что NewRelic распознает, что исключение не является сетевым исключением, и игнорирует вызов.

long time = System.currentTimeMillis();
NewRelic.noticeNetworkFailure("HomeFragment.updateUi.IllegalStateException", time, time, new IllegalStateException());

Значение URL-адреса - это просто строка, которую мы создаем с помощью classname.method (или подкласс, затем метод) .exceptionType, он позволяет идентифицировать связанный код и теоретически группирует исключения под общим URL-адресом в NewRelic.

Кто-нибудь делал это раньше или знает, что я могу сделать для этого?

NB: NewRelic отлично работает со всеми остальными трассировками, и другие отчеты работают хорошо.

Обновление №1: По-прежнему не удается проверить URL? Я инициирую несколько уведомлений, используя приведенную ниже кодировку, но все равно получаю, что Harvester отправляет 0 ошибок HTTP.

NewRelic.noticeNetworkFailure("http://exception.com/HomeFragment/updateUi/IllegalStateException", time, time+1, new IllegalStateException());

person Syntax    schedule 04.12.2013    source источник


Ответы (1)


К сожалению, без дальнейших хитростей это не сработает. Сетевые ошибки не считаются ошибками HTTP и группируются с транзакциями HTTP. Вместо этого используйте NewRelic.noticeHttpTransaction следующим образом:

NewRelic.noticeHttpTransaction("http://exception.com/HomeFragment/updateUi/IllegalStateException", 500, time, time+1, 0, 0);

Если вы добавите http://exception/... перед строкой, вы пройдете проверку (хотя помните о символах в вашей строке), и ошибка появится на newrelic.com на странице ошибок HTTP. Добавление exception в начале сгруппирует эти ошибки для облегчения чтения. Однако имейте в виду, что вы будете смешивать эти ошибки с «реальными» ошибками, сгенерированными вашим приложением.

Всегда приятно слышать, что New Relic хорошо работает для вас, спасибо!

person asm    schedule 04.12.2013
comment
Спасибо asm, это именно то, что мне было нужно: D - person Syntax; 05.12.2013
comment
Хм, похоже, все еще не проходит проверка / валидация, есть идеи? Я добавил обновление выше. - person Syntax; 05.12.2013
comment
Потрясающе @asm, спасибо, я надеялся использовать noticeHttpFailure, чтобы передать исключение для трассировки стека, но я предполагаю, что это не работает, поскольку тип исключения проверяется на соответствие? Пока что noticeHttpTransaction подойдет, ура :) - person Syntax; 09.12.2013
comment
После обзора реализации в NewRelic я заметил, что трек стека предоставляется NewRelic при использовании noticeHttpTransaction, это именно то, что я хотел; спасибо asm! - person Syntax; 09.12.2013