简介编辑

Elastic APM iOS 代理实时测量移动应用程序的性能。

代理如何工作?编辑

Elastic APM iOS 代理使用 OpenTelemetry-Swift SDK。代理自动跟踪 URLSessions,并提供使用设备信息注释的分布式跟踪,以及使用 Open-Telemetry 检测的后端服务。

代理还捕获使用 OpenTelemetry-Swift API 创建的任何自定义开放遥测跟踪或测量。

如何添加检测编辑

此代理将配置 OpenTelementry-Swift TracerProviderMetricProvider,并将它们设置为全局 OpenTelemetry 提供程序。可以通过 OpenTelemetry SDK 访问它们,如下所示

let tracerProvider = OpenTelemetry.instance.tracerProvider
let meterProvider = OpenTelemetry.instance.meterProvider

这些对象可用于获取新的跟踪器和仪表,它们会将其捕获的数据发送到 Elastic APM 服务器。有关如何使用 OpenTelemetry 检测应用程序的更多详细信息,请参阅 OpenTelemetry.io Swift 手动检测文档

示例可以在 opentelemetry-swift/examples 中找到。

其他组件编辑

APM 代理与 APM 服务器ElasticsearchKibana 协同工作。APM 指南 提供了有关这些组件如何协同工作的详细信息,并提供了一个概述 代理和服务器兼容性 的矩阵。

开放遥测组件编辑

iOS 代理利用多个 OpenTelemetry-Swift 库来提供应用程序和服务的自动检测。有关这些检测库的详细信息,请参阅官方 opentelementry.io Swift 库文档

对于网络检测,代理使用 NSURLSessionInstrumentation。这以跨度的形式提供网络检测,并为所有已检测的下游服务启用分布式跟踪。

SDKResourceExtension 提供有关设备、操作系统和应用程序的详细信息。有关捕获哪些数据点的更多信息,请参阅 opentelementry.io SDKResourceExtension 文档

Elastic 将 OpenTelemetry 属性映射到 Elastic 特定字段。这些映射的详细信息可以在 Elastic 移动代理规范 中找到。