出口

重要

Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息

App Center 允许连续将所有 Analytics 原始数据导出到 Azure。 可以将分析数据导出到 Blob 存储Application Insights(Azure Monitor)。 通过导出数据,可以受益于:

  • 无限的数据保留
  • 详细使用情况分析
  • 统一仪表板
  • Application Insights 中的其他丰富功能,例如漏斗分析、用户留存率分析

App Center 在您配置导出后,即时将分析数据持续导出到 Application Insights,并包含两天的回填数据。 使用 Application Insights 中的新更新仪表板,App Center 用户可以在一个仪表板上获取应用程序和后端分析的统一视图。

App Center 从配置导出的那一刻起,将分析数据持续导出到 Blob 存储,以及 28 天的回填数据。 进一步了解 Blob 存储

还可以将数据导出到 Azure 常规用途 v2 存储 Blob。 常规用途 v2 存储帐户支持最新的 Azure 存储功能,并整合常规用途 v1 和 Blob 存储帐户的所有功能。

了解有关常规用途 v2 存储的详细信息了解有关应用程序洞察的信息

Azure Blob 存储

Azure Blob 存储是一项服务,用于存储大量非结构化对象数据,例如文本或二进制数据,可通过 HTTP 或 HTTPS 在全球使用。 可以使用 Blob 存储公开数据,或私下存储数据。

数据每分钟导出一次,每次创建一个新的子文件夹。 默认情况下,当blob_path_format_kind设置为WithoutAppId时,https://<blob-storage-account>.blob.core.windows.net/archive/2017/12/09/04/03/logs.v1.data数据将存储为年/月/日/时/分格式(例如)。 config如果属性设置为WithAppId,则数据存储在 appId/year/month/day/hour/minute 格式中,该格式为默认路径加上 appID 前缀。 数据最多需要 5 分钟才能显示在 Azure Blob 存储中。

数据分为“分析”数据(会话、事件)、“崩溃”、“错误”和“附件”。 详细了解如何导出诊断数据

Azure Blob 存储中的数据可视化

Blob 文件的内容是包括客户端设备日志的 JSON 数组,它类似于分析数据:

[
    {
        "AppId": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "Timestamp": "2017-12-09T04:02:53.618Z",
        "InstallId": "e589a371-ea0c-4479-9a7b-9f834adec040",
        "MessageType": "EventLog",
        "IngressTimestamp": "2017-12-09T04:02:57.987Z",
        "MessageId": "980e21a0-0cbb-48ac-8820-28acf4beb00d",
        "EventId": "ad980536-e743-48a9-ab7e-cb043602d2c9",
        "EventName": "log_out",
        "CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
        "IsTestMessage": "False",
        "SdkVersion": "1.0",
        "Model": "PC",
        "OemName": "Samsung",
        "OsName": "Android",
        "OsVersion": "8.1.0",
        "OsApiLevel": "2",
        "Locale": "EN",
        "TimeZoneOffset": "PT2M",
        "ScreenSize": "320x240",
        "AppVersion": "1.1.0",
        "AppBuild": "1",
        "AppNamespace": "com.microsoft.test",
        "CarrierName": "AT&T",
        "CarrierCountry": "US",
        "CountryCode": "US",
        "WrapperSdkVersion": "1.0",
        "WrapperSdkName": "mobilecenter.xamarin","Properties": "{\"extra_00\":\"5bcacf3598ca44ebbbc99e4488cfc854\",\"extra_01\":\"2673e48867c74d51af8dc24c762a8b28\",\"extra_02\":\"5b76c801e5074cd3a13ea37253b94484\",\"extra_03\":\"c1e76aa252c947d4b4bcd4d1d96a7be6\",\"extra_04\":\"caea50034c4f441a963700fa3cf70d03\"}",
        "SessionId": "10df497a-4261-4995-b466-3fd77ac47395",
        "SdkName": "mobilecenter.android",
        "OsBuild": "2",
        "WrapperRuntimeVersion": "None",
        "LiveUpdateDeploymentKey": "stage",
        "LiveUpdatePackageHash": "dsadsdasd3211321233",
        "LiveUpdateReleaseLabel": "2.0"
    }
]

Azure Application Insights

Application Insights 是一种应用程序性能管理(APM)服务,通过 App Center 事件数据提供查询、分段、筛选和使用情况分析功能。 通过将 App Center SDK 添加到应用并将数据导出到 App Center 应用类型 Application Insights 资源中,你将访问以下功能:

  • Application Insights Analytics。 使用功能强大的查询语言分析原始事件数据并创建可视化效果。 可以将查询的结果导出到 Power BIExcel
  • 用户、会话和事件。 了解有多少人使用应用的每个页面和功能,然后按国家/地区、浏览器或其他属性细分,以了解原因。
  • 漏斗用户流。 了解用户如何浏览你的应用。 识别瓶颈。 发现提高转换率和消除痛点的方法。
  • 保留。 发现有多少用户返回使用你的应用。 了解他们在哪里和为什么退出。
  • 工作簿。 创建交互式工作簿,将使用情况分析可视化效果、Application Insights Analytics 查询和文本组合在一起,以在团队中共享见解。

App Center 的字段被映射成 Application Insights 的格式。 下面是映射字段之间的等效性:

Application Insights 应用中心
时间戳 事件的时间
姓名 自定义事件或数据类型的名称
自定义维度 这包括下表中显示的多个字段
会话_ID 唯一会话标识符
user_Id 安装标识符
应用程序_版本 应用程序的版本
client_Type,client_Model 设备型号
客户端操作系统 OS 类型和版本
sdkVersion App Center SDK 版本

下表显示了“customDimensions”字段的字段映射。

Application Insights 应用中心
AppBuild 应用程序内部版本号
AppId 应用中心 App ID
AppNamespace 应用程序命名空间
承运国 承运国
CarrierName 运营商类型
EventId App Center 事件 ID
IngressTimestamp 日志引入时间戳
地区 设备语言
消息类型 事件类型(会话、事件、...)
操作系统 API 级别 OS API 级别
OsBuild 操作系统内部版本号
OsName OS 名称
OsVersion OS 版本
性能 附加到自定义事件的属性
屏幕尺寸 设备的屏幕大小
SdkName App Center SDK 名称
SdkVersion App Center SDK 版本
时区偏移 时区偏移量
UserId 自定义用户标识符(开发人员集)
WrapperRuntimeVersion App Center SDK 封装器运行时版本
WrapperSdkName App Center SDK 包装器名称
WrapperSdkVersion App Center SDK 包装器版本

用于检索自定义事件的示例 AI 查询:

customEvents
    | where name == "YourEventName"
    | extend Properties = todynamic(tostring(customDimensions.Properties))
    | extend YourPropertyName = Properties.YourPropertyName

有关 Application Insights 和 App Center 的详细信息:

先决条件

必须具有 Azure 订阅才能使用导出;如果没有 Azure 订阅,请在开始之前创建一个免费的 Azure 帐户。

Azure 订阅链接

注释

仅标准导出需要此步骤;自定义导出不需要 Azure 订阅。

App Center 的应用数据标准导出到 Azure 需要一个链接到 App Center 应用的 Azure 订阅。 添加订阅并将其链接到应用必须由应用所有者(如果应用不属于组织)或组织的管理员完成。

添加 Azure 订阅

  • 属于组织的应用: 如果你是组织管理员,请转到应用所属组织的“ 管理 ”部分。
  • 属于用户的应用: 如果你是应用所有者,请执行以下步骤。
  1. 登录到 App Center 门户。
  2. 转到用户设置。
  3. 在 Azure 下,单击“添加订阅
  4. 选择现有的 Azure 订阅或创建新的订阅。

将应用链接到 Azure 订阅

将 Azure 订阅添加到用户或组织帐户后,需要向应用提供访问权限,以便该应用内可以使用订阅。 这样做,您是在允许该应用中的任何经理/开发人员使用订阅来进行导出操作。 这笔费用将从您的 Azure 订阅中扣除。

设置导出

  1. 在 App Center 门户中,选择“应用”。
  2. 转到“应用设置”。
  3. 单击“ 导出 ”并选择“ 新建导出 ”选项。
  4. 根据应用需求选择 Blob 存储或 Application Insights。
  5. 选择所需的配置类型(标准与自定义)。

App Center 提供两种方法来导出数据: 标准导出自定义导出。 使用与应用关联的 Azure 订阅,标准导出能够让您通过一键操作导出数据。 自定义导出将提供更大的灵活性,配置将在 Azure 中自定义。

标准导出

标准导出为您提供一键式的数据导出体验。 使用此选项,所有必需的资源都会在 Azure 中自动创建。

自定义导出

自定义导出允许用户在 Azure 中自定义其导出配置。

对于 Blob 存储

  1. 登录到 Azure 门户
  2. 单击“创建新资源
  3. 在“市场搜索”中搜索 存储帐户
  4. 单击“创建”。 这将打开“创建存储帐户”页。
  5. 选择 Azure 订阅。
  6. 选择现有资源组,或创建一个新的资源组。 (资源组是一个容器,用于保存 Azure 解决方案的相关资源)
  7. 对于帐户类型,你将看到以下下拉列表。 支持三个选项。 选择适合你的东西。 支持的 Blob 存储帐户
  8. 单击“审阅 + 创建
  9. 一旦验证通过
  10. 单击“创建
  11. 部署成功后,转到资源
  12. 在“设置”选项卡中找到访问密钥
  13. 复制 连接字符串 并将其添加到 App Center 自定义配置中。

在 App Center 中添加连接字符串

对于 Application Insights

  1. 登录到 Azure 门户
  2. 选择“ 创建资源> 管理工具 > Application Insights”。
  3. 将显示配置框
  4. 应用程序类型 设置为 App Center 应用程序
  5. 从 Azure 门户复制 检测密钥 ,并将其添加到 App Center 自定义配置中。 可以在 Application Insights 资源的“概述”页中找到检测密钥。

在 App Center 中添加检测密钥

有关导出的详细信息,请参阅 Application Insights 快速入门指南

将多个应用导出到同一存储帐户

配置多个应用的导出时,应创建或更新一个配置,其中blob_path_format_kind(作为ExportBlobConfiguration模型的一部分)设置为WithAppId,此配置会将导出路径前缀化为相应的appID。

Blob 路径格式如下:

  • 当枚举设置为WithoutAppId=falseyear/month/day/hour/minute
  • 当枚举设置为WithAppId=true时为appId/year/month/day/hour/minute

上面概述了导出配置创建 API。 对于现有配置,下面是 部分更新 API

PATCH /v0.1/apps/{owner_name}/{app_name}/export_configurations/{export_configuration_id}

更改将需要 5-10 分钟才能传播,然后实体将开始使用新的路径格式进行写入。

补充选择退出

默认情况下,新的导出配置将重新填充 AI 资源的过去两天数据,以及 Blob 存储的 30 天。 在某些情况下,不需要回填;例如,如果这样做会导致覆盖或复制数据。 在这种情况下,请将属性设置为backfillfalse创建新配置时。

选择要导出的数据类型

默认情况下,新的导出配置仅导出 Analytics 数据(事件、会话等)可以通过将属性(模型)设置为Entities属性(export_entity模型)来errorscrashesattachments导出诊断相关数据, 该属性还允许通过在no_logsEntities数组中添加值来排除不导出 Analytics 数据。

自动停用机制

App Center 可能会自动禁用错误的导出配置,以防止整个导出管道中的任何可能延迟。 例如,App Center 处理来自 Azure 的以下故障。

  • Application Insights 检测密钥无效。
  • 无法对 Blob 资源进行身份验证,或者无法解析远程名称。

注释

如果导出是重新启用的数据流将继续从那一刻开始,而无需回填,以避免可能的数据替代或重复。 如果需要重新填充缺失的数据,则需要重新创建导出配置。 转到 Application Insights 的数据保留 48 小时,Blob 存储的数据保留 30 天。

可以使用以下 API 之一来检查状态,以便执行还原作。

GET  /v0.1​/apps​/{owner_name}​/{app_name}​/export_configurations
GET  /v0.1​/apps​/{owner_name}​/{app_name}​/export_configurations​/{export_configuration_id}

可以使用以下 API 启用导出配置

POST /v0.1​/apps​/{owner_name}​/{app_name}​/export_configurations​/{export_configuration_id}/enable

定价

若要设置导出,需要创建 Azure 订阅。 导出数据会产生相应的成本,这将取决于您要导出的 Azure 服务。 在以下位置查找每个服务的定价详细信息:

Application Insights 定价

Blob 存储定价