加载中

排查 EDOT iOS 代理故障

本页面提供在使用 Elastic OpenTelemetry 分发版 (EDOT) SDK 对 iOS 应用程序进行插桩时,解决常见问题的指导。

在排查 EDOT iOS 代理故障时,请确保您的应用程序与该代理的支持的技术兼容。

如果您的应用程序正在运行,但 Elastic 未收到任何遥测数据,则可能是 SDK 未能将数据发送到配置的端点。有关连接性故障排查,请参阅连接性问题。如果 Kibana 中未显示遥测数据,请参阅Kibana 中看不到应用级遥测数据Kibana 中无数据显示

当 SDK 无法导出数据时,您可能会注意到以下迹象

  • Elastic 中没有显示遥测数据。

  • 应用程序日志显示如下错误

    [ElasticOtelExporter] Failed to send spans: Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server"
    		
  • OpenTelemetry Collector 或 Elastic 端点显示未收到数据。

这通常是因为 iOS 应用程序因以下原因无法连接到配置的 OTLP 端点:

  • 端点 URL 或端口不正确。
  • TLS/HTTPS 证书问题。
  • Info.plist 中缺少 App Transport Security (ATS) 配置。

请尝试以下步骤来解决该问题

  • 验证 SDK 配置中的端点 URL 和端口。

  • 如果使用带有自签名证书的 HTTPS,请将该证书添加到 iOS 信任存储或配置 ATS 异常。

  • 将所需的 ATS 异常添加到您应用程序的 Info.plist 中。例如

    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSAllowsArbitraryLoads</key>
      <true/>
    </dict>
    		

如果数据仅在应用程序处于前台时显示,则该问题可能与 iOS 后台执行限制有关。

以下行为表明应用程序移至后台时遥测停止

  • 遥测数据仅在应用程序处于前台时显示。

  • 应用程序进入后台后丢失 Span 或指标。

出现此问题的原因可能是 iOS 管理后台任务和网络活动的方式

  • iOS 会主动挂起后台网络活动。如果应用程序被挂起,SDK 将无法刷新(flush)遥测数据。

请遵循以下建议,以确保数据导出按预期继续

  • 确保导出间隔足够短,以便在挂起之前完成刷新。

  • 如果适合您的应用程序,请使用 iOS 后台模式(例如 Background fetchBackground processing)。

  • 对于崩溃或冷启动遥测,请依赖批处理,并在应用程序下次恢复时重试。

如果发送了遥测数据,但缺少设备型号、操作系统版本或应用程序版本等关键属性,则可能是资源检测未正常工作。

当资源检测不完整时,您可能会遇到以下情况

  • Elastic 中显示了 Span 或指标,但缺少预期的资源属性(例如设备型号、操作系统版本、应用程序版本)。

常见原因包括禁用了资源检测器或缺少权限

  • 可能未启用资源检测器,或未授予所需的权限。

要恢复完整的元数据报告,请验证以下内容

  • 确保在 SDK 初始化中启用了 iOS 资源检测器。

  • 验证您的构建是否包含 DeviceResourceDetectorOSResourceDetector

  • 检查隐私权限(例如,如果使用了网络或设备标识符)。

如果在集成 SDK 后应用程序崩溃或显著变慢,则原因可能是初始化或导出器配置。

以下症状可能表明存在与 SDK 相关的性能或初始化问题

  • 启用 SDK 后,应用程序在启动后立即崩溃。

  • 第一个屏幕出现前有明显的延迟。

崩溃或启动缓慢通常由以下原因之一引起

  • SDK 在主线程上进行繁重的配置初始化。

  • 导出器配置错误并阻塞了启动。

请尝试以下步骤来解决初始化和启动问题

  • 尽可能在后台线程上初始化 SDK。

  • 使用异步导出器。

  • 从最小化配置开始,逐步添加导出器以隔离问题。

如果问题仍然存在

© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.