iOS 在尝试报告数据时检测到 NewRelic 错误

Posted

技术标签:

【中文标题】iOS 在尝试报告数据时检测到 NewRelic 错误【英文标题】:iOS detect NewRelic errors when it tries to report data 【发布时间】:2015-07-27 21:29:09 【问题描述】:

我想在我的应用程序中知道 NewRelic 何时尝试发送数据并且由于任何原因失败,例如,当没有互联网连接时它会收到错误

NRMAHarvesterConnection.m:101   -[NRMAHarvesterConnection send:]
Failed to retrieve collector response: Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo=0x7fa044e1a360 NSUnderlyingError=0x7fa044e26a10 "The Internet connection appears to be offline.", NSErrorFailingURLStringKey=https://mobile-collector.newrelic.com/mobile/v2/data, NSErrorFailingURLKey=https://mobile-collector.newrelic.com/mobile/v2/data, _kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8, NSLocalizedDescription=The Internet connection appears to be offline.

NewRelic 会将此错误打印到控制台,因此它一定是检测到此类错误。

我想知道这种错误何时发生以及错误是什么,以便我可以记录它

【问题讨论】:

【参考方案1】:

不幸的是,在错误代码低于 400 的情况下,NewRelic 不会发送自动错误报告。所以这种情况需要你自己处理,例如:

[NewRelic noticeNetworkFailureForURL:(NSURL *)url
                      httpMethod:(NSString*)httpMethod
                       withTimer:(NRTimer *)timer
                  andFailureCode:(NSInteger)iosFailureCode];

但在我看来,您应该跟踪此类依赖于客户端的事件,例如缺乏互联网连接。 NewRelic 让您可以检查您的端点是否正常可访问,或返回 HTTP 错误代码。在跟踪 CDN 节点的状态时非常有用。换句话说:跟踪返回 HTTP 错误代码的所有内容,但不要跟踪 Cocoa 错误代码。

【讨论】:

以上是关于iOS 在尝试报告数据时检测到 NewRelic 错误的主要内容,如果未能解决你的问题,请参考以下文章

在部署时从 ELB env 变量设置 Newrelic APP 名称

NewRelic - 如何忽略 PHP 应用程序的一部分

Pentaho 数据集成:错误处理

检测连接的音频设备 iOS

如何配置 New Relic 插件以显示速率

我可以向 New Relic 发送字符串吗?