使用noticeNetworkFailure的NewRelic偷偷摸摸地报告异常

时间:2013-12-04 09:20:53

标签: newrelic newrelic-platform

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

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

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

URL值只是我们使用 classname.method(或子类,然后方法).exceptionType 创建的字符串,它允许识别相关代码,理论上将异常分组到NewRelic中的公共URL下

之前有没有人这样做过,或者知道如果能做到这一点我能做些什么呢?

NB: NewRelic在所有其他方面都做得很好,它的痕迹和其他报告运作良好。

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

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

1 个答案:

答案 0 :(得分:2)

不幸的是,没有进一步的偷偷摸摸,这是行不通的。网络错误不被视为HTTP错误,并将与HTTP事务分组。相反,像这样使用NewRelic.noticeHttpTransaction:

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

如果您在字符串前添加http://exception/...,您将通过验证(尽管请注意字符串中的字符),并且错误将显示在HTTP错误页面上的newrelic.com上。在开头添加exception会将这些错误分组以便于阅读。但是,请注意,您要将这些错误与“真实”相混淆。由您的应用生成的。

总是很高兴听到New Relic对你有用,谢谢!