插桩
编辑插桩编辑
本文档列举了 apm-agent-ios sdk 提供的各种插桩。可以按照插桩配置中所述配置这些插桩。
崩溃报告编辑
代理将自动捕获崩溃并将其上传到 apm 服务器。这些崩溃将按照移动代理事件规范中所述的格式存储。
URLSession 插桩编辑
URLSession 插桩由 Open Telemetry Swift sdk 提供,它将自动为使用 URLSessions 生成的所有网络请求生成跟踪。更多详细信息,请参阅URL Session 插桩 Open Telemetry 文档
视图插桩编辑
代理提供 SwiftUI.View 和 UIViewController 插桩,其中使用跨度测量视图的加载时间。同时加载的所有视图将分组在同一个起始跨度下。跨度的名称将由以下规则决定,从优先级最低到最高:
-
<视图的类名> - 视图出现
-
<导航标题> - 视图出现
- 传递给 View 扩展方法
reportName(_ name: String) -> View
的name
视图的类名将是一个 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 中,应用程序生命周期事件会自动进行插桩。技术细节可以在移动规范中找到。