仪器仪表
编辑仪器仪表
编辑本文档列出了 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") } }
必须插入整个字符串 All Products - view appearing
以匹配其他两个命名选项使用的默认格式。
系统指标
编辑系统指标仪器仪表以分钟为单位记录 CPU 和内存使用情况作为指标。CPU 指标记录为 system.cpu.usage
,内存使用情况记录为 system.memory.usage
。
MetricKit 仪器仪表
编辑适用于 iOS 13 及更高版本,代理提供关键 MetricKit 数据点的仪器仪表。
- 应用程序启动时间
- 应用程序响应能力
- 应用程序退出次数
生成的指标的技术细节可以在移动规范中找到。
application.launch.time
编辑此直方图指标提供了按 first draw
、first draw (optimized)
和 resumed
分类的启动持续时间。有关 MetricKit 数据点的更多详细信息,请参阅Apple 文档。
application.responsiveness.hangtime
编辑应用程序太忙而无法响应地处理用户交互的不同持续时间的直方图。有关 MetricKit 数据点的更多详细信息,请参阅Apple 文档。
application.exits
编辑按各种属性分类的应用程序退出次数:foreground
或 background
,以及 normal
或异常,其中异常退出进一步细分。更多详细信息可以在Apple 文档中找到。
应用程序生命周期事件
编辑在 v0.5.0 中,应用程序生命周期事件会自动进行检测。技术细节可以在移动规范中找到。