插桩编辑

本文档列举了 apm-agent-ios sdk 提供的各种插桩。可以按照插桩配置中所述配置这些插桩。

崩溃报告编辑

代理将自动捕获崩溃并将其上传到 apm 服务器。这些崩溃将按照移动代理事件规范中所述的格式存储。

URLSession 插桩编辑

URLSession 插桩由 Open Telemetry Swift sdk 提供,它将自动为使用 URLSessions 生成的所有网络请求生成跟踪。更多详细信息,请参阅URL Session 插桩 Open Telemetry 文档

视图插桩编辑

代理提供 SwiftUI.View 和 UIViewController 插桩,其中使用跨度测量视图的加载时间。同时加载的所有视图将分组在同一个起始跨度下。跨度的名称将由以下规则决定,从优先级最低到最高:

  1. <视图的类名> - 视图出现
  2. <导航标题> - 视图出现
  3. 传递给 View 扩展方法 reportName(_ name: String) -> Viewname

视图的类名将是一个 swift 名称修改后的字符串,它是最不可取的命名方法。如果可能,请在视图上设置导航标题

AllProductsList.swift

struct AllProductsList: View {
    @EnvironmentObject var modelData : ModelData

    var body: some View {
        VStack {
            List(modelData.products, id: \.id) { product in
                AdminProductRow(product: product)

            }
        }.onAppear  {
            modelData.loadProducts()
        }.navigationTitle("All Products")
    }
}

您将在 Kibana 中看到“所有产品 - 视图出现”。

如果无法设置导航标题,请使用 reportName(_ name: String) -> View 设置将显示在 Kibana 中的名称

AllProductsList.swift

struct AllProductsList: View {
    @EnvironmentObject var modelData : ModelData

    var body: some View {
        VStack {
            List(modelData.products, id: \.id) { product in
                AdminProductRow(product: product)

            }
        }.onAppear  {
            modelData.loadProducts()
        }.reportName("All Products - view appearing")
    }
}

必须插入整个字符串 所有产品 - 视图出现,以匹配用于其他两个命名选项的默认格式。

系统指标编辑

系统指标插桩每分钟记录一次 CPU 和内存使用情况作为指标。CPU 指标记录为 system.cpu.usage,内存使用情况记录为 system.memory.usage

MetricKit 插桩编辑

代理为 iOS 13 及更高版本提供关键 MetricKit 数据点的插桩

  • 应用程序启动时间
  • 应用程序响应能力
  • 应用程序退出次数

有关生成的指标的技术细节,请参阅移动规范

application.launch.time编辑

此直方图指标提供按 首次绘制首次绘制(优化)恢复 细分的启动持续时间。有关 MetricKit 数据点的更多详细信息,请参阅Apple 文档

application.responsiveness.hangtime编辑

应用程序过于繁忙而无法响应用户交互的不同持续时间的直方图。有关 MetricKit 数据点的更多详细信息,请参阅Apple 文档

application.exits编辑

按各种属性分类的应用程序退出次数:前台后台,以及 正常 或异常,其中异常退出 further subdivided。更多详细信息,请参阅Apple 文档

应用程序生命周期事件编辑

在 v0.5.0 中,应用程序生命周期事件会自动进行插桩。技术细节可以在移动规范中找到。