与 Application Insights 集成的概述

Application Insights 是 Azure Monitor 的一项功能,该功能在企业enterprise landscape范围内广泛用于监控和诊断。 将把已经从特定租户或环境收集的数据推送到您自己的 Application Insights 环境。 这些数据由 Application Insights 存储到 Azure Monitor 日志中,并显示在左窗格中调查下的性能失败面板中。 这些数据将导出到 Application Insights 定义的标准架构中您的 Application Insights 环境内。 支持、开发人员和管理人员可以使用此功能会审和解决问题。

Application Insights 具有广泛的功能来帮助您使用遥测数据:

  • 为组织的运行状况概览创建仪表板
  • 使用智能检测执行主动监控。
  • 根据组织为重要方案设置警报
  • 从使用情况角度可视化和跟踪常用导航模式。 例如,这将帮助您了解用户是否始终首先选择特定选项卡,然后再导航回主选项卡并关闭窗体。 如果是这样,可能说明应该在第一个选项卡(而不是其他选项卡)上放一个字段,以便用户在每次打开此记录时节约时间。
  • 使用左窗格上监控下的日志面板创建自定义查询来对性能和错误进行故障排除。

示例:列举 pageViews 表中窗体加载的前 100 条记录:

pageViews
| take 100

Application Insights 中的“概览”面板

Application Insights 提供了不同的视图。 概览面板显示您的应用的关键诊断度量的摘要,是门户其他功能的入口。 您可以钻取到度量来查看更多详细信息。 请参阅以下示例。

Application Insights“概览”面板。

Application Insights 中的“性能”面板

若要打开性能面板,请选择概览面板中的服务器响应时间图形,或选择左窗格中调查下的性能。 Application Insights 允许您选择服务器浏览器数据视图。 可通过最长持续时间识别这些操作来诊断潜在问题。

性能面板显示应用程序每个操作的计数和平均持续时间。 可以使用这些信息来识别对用户影响最大的操作。

服务器视图显示最常调用的 API 和延迟的表现。

Application Insights“性能”面板。

调用数量较大和持续时间较长的操作可能值得调查。 在上面的示例中,POST /XRMServices/2011/Organization.svc/web 的调用数较大,持续时间长。 同样,GET /api/data/v9.0/accounts 的持续时间相对较长。

选择其中一项操作还将显示有关前三个依赖项和所用时间的详细信息。 可以通过选择依赖项选项卡查看更多详细信息。

如果切换到浏览器视图,将看到有关环境中哪些页面查看最频繁和每个页面的延迟的数据。 您将看到指标,包括与不同操作相关联的会话计数和依赖项。 例如,选择帐户操作将显示对帐户表进行的请求。

帐户的 Application Insights“性能”面板。

可以钻取到特定示例以查看特定操作在何处消耗了时间。

Application Insights“性能”端对端事务详细信息。

更多信息:使用 Azure Application Insights 查找和诊断性能问题

Application Insights 中的“失败”面板

若要打开失败面板,请选择左窗格中调查下的失败,或选择失败请求图形。

Application Insights 失败。

Application Insights 中的 的exceptions 表为失败面板提供支持。 其显示失败请求的计数和应用程序每个操作影响的用户数量。 可以查看错误详细信息以了解服务器和浏览器的操作和依赖项。 此处提供与 API 应用程序中使用的,创建/读取/更新/删除 (CRUD) 特定的 HTTP 方法(GET、POST、PUT 和 DELETE)有关的失败。 可用于识别对用户影响最大的失败。 例如,在下面的示例中,可以看到 GET/api/data/v9.0/GetClientMetaData 操作的失败和用户数量较大。 选择此操作将在右面板中显示有关此操作的详细信息。

Application Insights 失败依赖项。

还可以查看与依赖项有关的失败,包括映射到失败的常见响应代码的摘要视图。

Application Insights 失败详细信息。

可以钻取到出现瓶颈的步骤的详细信息。

Application Insights 日志查询。

更多信息:使用 Azure Application Insights 查找和诊断运行时异常

在 Application Insights 中查询数据

在 Application Insights 中,转到左窗格中监控下的日志面板。

Application Insights 日志查询。

常见字段

Application Insights 中填充的所有表都有这些公共字段:

  • cloud_RoleInstance:对于在此示例中发出的事件,该字段将设置为 CDS 数据导出,以确保可以将其与同一个 Application Insights 环境中的其他事件区分开来。

  • operation_Id:该字段将单个交互中的所有操作链接到一起—这种方法获取某个失败事件的所有相关事件。

    pageViews
    | where operation_Id == "[insert id here]"
    
  • session_Id:该字段设置唯一标识单个用户会话中的所有活动。 当用户打开新选项卡,选择 F5/刷新或关闭再重新打开移动应用时,将重置会话值。

  • user_Id、user_AuthenticatedId:这两个字段当前都设置为用户的 Microsoft Entra ID。

  • client_IP:此字段会始终填充 0.0.0.0,以遵守隐私法律和法规。 提供的 IP 地址用于填充 client_Cityclient_StateOrProvinceclient_CountryOrRegion 字段。

  • client_Type:如果日志来自统一接口,此处的值为浏览器,如果日志来自 Dataverse,则此处的值为服务器。 请注意,可以在 customDimensions 下的 requests 表中找到 userAgent(如果有)。

因为 Application Insights 架构是固定的,并且此功能在导出流程中将数据推送到了 Application Insights 中,因此使用 Application Insights 中的 customDimensions 字段添加属性。