简介

编辑

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

代理如何工作?

编辑

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

该代理还会捕获使用 OpenTelemetry-Swift API 创建的任何自定义 open-telemetry 跟踪或测量。

如何添加检测

编辑

此代理将配置 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 ServerElasticsearchKibana 协同工作。APM 指南提供了有关这些组件如何协同工作的详细信息,并提供了一个概述 代理和服务器兼容性 的矩阵。

Open Telemetry 组件

编辑

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

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

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

Elastic 将 OpenTelemetry 属性映射到 Elastic 特定的字段。这些映射的详细信息可以在 Elastic Mobile Agent Spec 中找到。