导出

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方案。

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

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

从配置导出的那一刻起,App Center 会持续将分析数据连同两天的回填数据一起导出到 Application Insights。 借助 Application Insights 中新的更新仪表板,App Center 用户可以在一个仪表板上获取应用程序和后端分析的统一视图。

从配置导出的那一刻起,App Center 会持续将分析数据连同 28 天的回填数据一起导出到 Blob 存储。 详细了解 Blob 存储

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

详细了解常规用途 v2 存储了解有关 Application Insights 的详细信息

Azure Blob 存储

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

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

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

Azure Blob 存储 中的数据可视化

Blob 文件的内容是客户端设备日志的 JSON 数组,对于 Analytics 数据,如下所示:

[
    {
        "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 分析查询和文本组合在一起的交互式工作簿,以在团队中共享见解。

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

Application Insights 应用中心
timestamp 事件时间
name 自定义事件的名称或数据类型
customDimensions 这包括下表中显示的几个字段
session_Id 唯一会话标识符
user_Id 安装标识符
application_Version 应用程序版本
client_Type、client_Model 设备型号
client_OS OS 类型和版本
sdkVersion App Center SDK 版本

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

Application Insights 应用中心
AppBuild 应用程序内部版本号
AppId App Center App ID
AppNamespace 应用程序命名空间
CarrierCountry 运营商国家/地区
CarrierName 运营商类型
EventId App Center 事件 ID
IngressTimestamp 日志引入时间戳
Locale 设备语言
MessageType 事件类型 (会话、事件...)
OsApiLevel OS API 级别
OsBuild OS 内部版本号
OsName OS 名称
OsVersion OS 版本
属性 附加到自定义事件的属性
ScreenSize 设备的屏幕大小
SdkName App Center SDK 名称
SdkVersion App Center SDK 版本
TimeZoneOffset 时区偏移量
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 快速入门指南

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

为多个应用配置导出时,应使用模型的 (部分ExportBlobConfiguration创建或更新配置blob_path_format_kind,) 设置为 WithAppId,这会在导出路径前面加上相应的 appID。

Blob 的路径的格式如下:

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

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

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

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

回填选择退出

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

选择要导出的数据类型

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

自动禁用机制

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

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

注意

如果重新启用导出,则数据流将从该时刻继续,而无需进行回填,以避免可能出现的数据替代或重复。 如果需要回填缺失的数据,则需要重新创建导出配置。 对于 Blob 存储,转到 Application Insights 的数据将保留 48 小时 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 存储定价