本文提供了使用 OpenTelemetry (OTel) 将移动应用遥测发送到 Azure Monitor 的高级链接指南。
OTel 是一种供应商中立的开源标准,用于跨语言和平台(包括移动应用)收集和导出遥测数据。
- 设置用于数据引入的 Azure Monitor 资源。
- 选择并部署遥测网关(OpenTelemetry 收集器或 Azure API 管理)。
- 使用社区 OpenTelemetry (OTel) SDK 检测移动应用。
- 分析 Azure Monitor 和 Application Insights 中的遥测数据。
重要
- 有关适用于测试版、预览版或尚未正式发布的 Azure 功能的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款。
- Microsoft支持在遥测数据到达 Azure Monitor 后的 Azure Monitor 体验。 Microsoft 不提供对社区版 OpenTelemetry 移动 SDK 的产品支持,也不提供对 OpenTelemetry 网关的配置、操作或故障排除的支持。 有关详细信息和支持链接,请查看 支持边界和支持选项。
App Center 停用时间线
- 2025 年 3 月 31 日:应用中心终止支持(分析与诊断除外)。
- 2027 年 3 月 31 日:App Center Analytics 与诊断服务终止支持(遥测数据录入)。
迁移到 Azure Monitor
按顺序完成以下任务:
- 准备 Azure Monitor 目标。
- 部署 遥测网关。
- 配置 网关以将遥测数据导出到 Azure Monitor。
- 从应用中删除 App Center SDK。
- 使用社区 OpenTelemetry SDK 监测应用。
- 配置 应用程序,以将遥测数据发送到您的网关终端。
- 验证 引入和更新查询、仪表板和警报。
准备 Azure Monitor 目标
在部署网关或更改应用之前,请确定要存储和分析网关导出的遥测数据的位置。
对于此迁移,通常使用:
- 基于工作区的 Application Insights 资源,用于接收遥测数据并提供用于引入的连接字符串。
- 链接到 Application Insights 资源的 Log Analytics 工作区,用于存储 Azure Monitor 日志(KQL)、工作簿和警报的遥测数据。
注释
如果已有基于工作区的 Application Insights 资源和链接的 Log Analytics 工作区,请重复使用这些资源进行此迁移。
了解 Azure Monitor
使用这些资源熟悉 Azure Monitor 概念和术语:
- Azure Monitor 概述
- Application Insights 概述
- Azure Monitor 日志概览
- Log Analytics 概述
- Application Insights 中的连接字符串
- Application Insights 中的托管工作区
创建和配置目标资源
使用此清单设置迁移的 Azure Monitor 端:
- 创建或选择用于存储和查询的 Log Analytics 工作区 。 有关分步指南,请查看 “创建 Log Analytics 工作区”。
- 创建或选择基于工作区的 Application Insights 资源 并将其链接到工作区。 有关分步指南,请查看 创建和配置 Application Insights 资源。
- 记录 Application Insights 连接字符串。 您可以在配置网关导出到 Azure Monitor 时使用它。 查看 Application Insights 中的连接字符串。
-
选择引入身份验证模型:
- 验证引入和查询时使用 连接字符串 。 查看 Application Insights 中的连接字符串。
- 确认您的网关环境具有到 Azure Monitor 终结点和 Microsoft Entra ID 终结点的出站网络访问。 查看 Azure Monitor 终结点访问和防火墙配置。
部署遥测网关
部署在云或网络环境中管理的网关,以便从应用接收 OpenTelemetry Protocol (OTLP) 遥测数据并将其转发到 Azure Monitor。
选择以下网关选项之一:
OpenTelemetry 收集器网关(支持社区;建议用于大容量应用)。 对于具有许多用户的大型应用,选择此选项。 它允许你在到达 Azure Monitor 之前控制遥测数据。 可以使用采样、筛选、扩充或修订。 必须能够操作网关。
查看以下 OpenTelemetry 资源:
Azure API 管理 (APIM) 代理(建议用于小型应用)。 如果你有一个拥有少量用户的小型应用,并且你不想部署和操作 OpenTelemetry Collector,请选择此选项。 查看 使用 Azure API 管理作为 Application Insights 遥测的代理。
要点
- 移动应用将 OTLP 遥测导出到网关终结点。
- 选择一个你管理的网关。 网关保存凭据并将遥测数据转发至 Azure Monitor 接收终结点。
- 需要遥测管道功能(例如批处理、重试/队列、采样、扩充、筛选/修订或路由)时,请使用 OpenTelemetry 收集器网关。
- 需要更简单的操作模型以及集中化的策略实施(例如路由、流量限制、标头注入),并且对遥测数据的专用处理需求较少时,请使用 Azure API 管理(APIM)代理。
- 引入后,使用 Azure Monitor 体验(例如日志、Application Insights、工作簿和警报)分析和处理遥测数据。
配置网关以将遥测数据导出到 Azure Monitor
配置从网关到 Azure Monitor 的经过身份验证的导出。
如果使用 OpenTelemetry 收集器网关,可以从以下社区资源开始:
如果使用 Azure API 管理作为代理,请查看 使用 Azure API 管理作为 Application Insights 遥测的代理。
从应用中删除 App Center SDK
完成以下任务:
- 确定 App Center 依赖项并在代码库中生成集成。
- 从依赖项管理器中删除 App Center 包。
- 删除 App Center 初始化代码和服务特定的 API 调用。
- 从构建或持续集成(CI)管道中删除 App Center 配置值以及任何符号或映射上传步骤。
- 验证应用是否不再将遥测数据发送到 App Center。
使用这些资源查找相关的 SDK 及其配置入口点:
- 适用于 Android 的 App Center SDK (GitHub)
- 适用于 Apple 平台的 App Center SDK (GitHub)
- App Center SDK for React Native (GitHub)
- 适用于 Unity 的 App Center SDK (GitHub)
如果需要有关这些任务的帮助,请查看 支持边界和支持选项。
使用社区 OpenTelemetry SDK 检测应用
社区版 OpenTelemetry SDK,选择与您的平台和框架匹配的版本。 使用 OpenTelemetry 平台指南确认当前信号支持、支持的导出者和检测选项。
从以下 OpenTelemetry 资源开始:
OpenTelemetry (OTel) 不提供对 .NET 多平台应用 UI(MAUI)或 React Native 项目的跨平台软件开发工具包(SDK)支持。 在跨平台框架中通过本地桥接激活 OTel 功能。
对于 .NET MAUI:
- 请按官方指南使用本地 SDK 互操作。
- 使用 opentelemetry-dotnet 存储库中的示例实现自定义 OTel 行为。
对于 React Native:
- 在 React Native 中使用 本机模块 创建原生集成。
配置应用以将遥测数据发送到网关终结点
通过在应用中配置 OpenTelemetry 协议(OTLP)导出,将遥测数据发送到部署的网关终结点。
使用以下 OpenTelemetry 资源:
- OTLP 导出程序配置
- OpenTelemetry 收集器网关配置 (如果使用 OpenTelemetry 收集器网关)
验证引入和更新分析
完成以下任务:
- 使用 Azure Monitor 日志验证遥测是否到达 Log Analytics 工作区。
- 标识包含 OpenTelemetry 数据的表,然后更新保存的查询以使用这些表和字段。
- 更新工作簿和仪表板以匹配引入的数据形状。
- 更新警报规则以使用更新的查询和阈值。
使用以下资源:
在 Azure Monitor 中使用 OpenTelemetry 数据
引入后,使用 Azure Monitor 和 Application Insights 分析遥测数据。
在日志中查询 OpenTelemetry 表
如果将 OpenTelemetry 日志和跟踪引入 Log Analytics 工作区,请使用 OpenTelemetry 表引用和示例查询作为起点:
若要了解如何运行 Kusto 查询语言(KQL)查询,请查看 Log Analytics 教程:
使用 Application Insights 的功能
使用 Application Insights 体验浏览请求、依赖项、失败和性能趋势:
创建工作簿和警报
使用 Azure Monitor 功能生成自定义体验,以替换 App Center 仪表板和报告:
规划功能差异
App Center 和 OpenTelemetry 使用不同的数据模型和门户体验。 计划使用 Azure Monitor 日志、工作簿和警报重新生成 App Center 仪表板和分段。
常见差异包括:
- App Center Analytics 提供用于事件探索的专用体验。 Azure Monitor 使用日志和工作簿进行分析。
- App Center 诊断包括以移动为中心的崩溃分组和堆栈跟踪符号解析。 Azure Monitor 存储异常和堆栈跟踪,但崩溃报告工作流与 App Center 不同。
- App Center 属性使用特定于 App Center 的架构。 OpenTelemetry 使用属性,属性集取决于所使用的 SDK 和检测库。
支持边界和支持选项
使用本节中的链接将问题路由到正确的支持渠道。
使用社区支持删除 App Center SDK
Microsoft不提供对 App Center SDK 的产品支持。 Microsoft不会排查与 App Center 相关的 App Center SDK 删除、生成错误或运行时行为。
使用这些社区资源删除 App Center SDK:
- 适用于 Android 的 App Center SDK (GitHub)
- 适用于 Apple 平台的 App Center SDK (GitHub)
- App Center SDK for React Native (GitHub)
- 适用于 Unity 的 App Center SDK (GitHub)
对于常规社区支持,请使用以下资源:
使用社区支持实现 OpenTelemetry 的监测和数据收集
社区支持涵盖在遥测到达 Azure Monitor 之前完成的步骤,包括:
- 适用于移动应用的 OpenTelemetry SDK 选择和检测
- OpenTelemetry 收集器部署和配置
- Azure Monitor 的 OpenTelemetry 收集器导出程序配置
使用以下社区资源:
- OpenTelemetry 社区
- OpenTelemetry GitHub 组织
- OpenTelemetry 收集器文档
- OpenTelemetry Android 客户端应用指南
- OpenTelemetry iOS 客户端应用指南
- OpenTelemetry 生态系统注册表
- 用于 OpenTelemetry 收集器的 Azure Monitor 导出器
- OpenTelemetry 收集器支持模型
使用Azure技术支持来支持Azure Monitor
Azure 技术支持涵盖在遥测到达 Azure Monitor 之后的所有功能,包括:
- 当请求到达 Azure Monitor 摄取终结点时,将开始摄取到 Azure Monitor。
- Azure Monitor 日志和 Application Insights 中的存储和查询。
- Azure Monitor 体验 (如日志、工作簿和警报)。
如何联系Azure 支持
有关详细信息,请参阅创建 Azure 支持请求。