1

我们想在 Mobile 中使用 NewRelic 的noticeNetworkFailure行为来偷偷记录 catch 语句中实际上不是网络异常的异常;因为这似乎是目前使用 NewRelic Mobile 跟踪异常的唯一方法。

下面的示例代码似乎没有上传任何事件信息,我琢磨了一下,可能是因为NewRelic识别出异常不是网络异常而忽略了调用。

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

URL 值只是我们用classname.method(或子类 then 方法).exceptionType制作的字符串,它允许识别相关代码,并且理论上会将异常分组到 NewRelic 中的公共 URL 下。

有没有人这样做过或者知道如果我能做些什么来实现这一点?

注意: NewRelic 在所有其他方面都运行良好,它的踪迹和其他报告运行良好。

更新 #1: 似乎仍然无法通过 URL 验证?我使用下面的编码触发了许多通知,但仍然让 Harvester 发送 0 个 HTTP 错误。

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

1 回答 1

2

不幸的是,如果没有进一步的偷偷摸摸,这是行不通的。网络错误不被视为 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 对您很有效,谢谢!

于 2013-12-04T22:52:32.583 回答