InstanaAgent 1.8.2

InstanaAgent 1.8.2

iOSAgent CocoapodsShaorong Li 维护。



  • Instana Inc.

Instana iOSAgent

更改日志 |


使用 Instana 为您的 iOS 应用程序监控而设计的 iOS 代理。当前的监控支持

  • 会话开始
  • 自动或手动捕获 HTTP 会话
  • 自动发送设备与应用程序信息(如 bundle 标识符、版本、语言、iOS 设备信息)
  • 发送自定义事件(这特别有助于发送日志,跟踪额外的性能指标或错误。)
  • [技术预览]崩溃报告,以及 CPU 异常、磁盘写入异常、冻结诊断和应用程序启动诊断

可选

  • 通过正则表达式忽略完整 URL 或完整 URL
  • 设置全局元数据(键/值)
  • 设置用户特定数据(如 id、名称和电子邮件)
  • 设置当前可见视图以匹配 HTTP 会话

要求

  • iOS 11+
  • Swift 5.1+

安装

要安装 iOS 代理,请使用 Swift 包管理器(通过 Xcode)或 CocoaPods。

Swift Package Manager

  1. 打开 Xcode。
  2. 选择 File -> Swift Packages -> Add Package Dependency -> 您的 Xcode 项目。
  3. 输入 https://github.com/instana/iOSAgent 存储库。

CocoaPods

  1. 在您的 Podfile 规范中添加以下内容

    pod 'InstanaAgent'

  2. 为了下载依赖项,运行 pod install

设置

只需使用以下设置初始化 Instana iOS 代理。确保在 didFinishLaunchingWithOptions 中尽早调用设置

import InstanaAgent

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    let options = InstanaSetupOptions(enableCrashReporting: <true or false>)
	Instana.setup(key: <Your Instana Key>, reportingURL: <Your Instana instance URL>, options: options)

	....
	return true
}

有关诊断日志报告的说明

  1. 诊断测试,例如崩溃,需要在物理设备(iPhone、iPad 等)上完成:模拟器无帮助。
  2. 支持崩溃报告的最低版本分别是 iOS 14.0 和 macOS 12.0。
  3. 对于您的测试应用,除了 com.instana.ios.InstanaAgentExample 以外的有效 bundle id 也是必须的。

如何在信标发送失败时启用慢速发送模式

默认情况下,当信标发送失败时,Instana代理尝试重新发送,直到发送成功。信标也以批量的方式(最多100个信标)每2秒发送一次。对于某些蜂窝网络,这并不是一个理想的选择。自1.6.1版本以来,引入了慢速发送模式作为替代方法。通过在setup()调用中提供正数slowSendInterval(以秒为单位)的数值,可以打开此模式。如果信标发送失败,Instana代理只会在每(slowSendInterval)秒发送一个信标。如果发送成功,信标发送将恢复到正常模式,即每2秒批量发送。否则,发送将保持在慢速发送模式。默认情况下禁用慢速发送模式。启用后,有效的slowSendInterval值在2.0到3600.0秒之间。以下是将slowSendInterval设置为60秒的示例代码

import InstanaAgent

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    let options = InstanaSetupOptions(slowSendInterval: 60.0)
    if !Instana.setup(key: InstanaKey, reportingURL: InstanaURL, options: options) {
        // Error handling here
    }

    ....
    return true
}

API

请参阅API页面