使用 Application Insights 中的实时指标来监视 Web 应用程序。 选择并筛选指标和性能计数器以实时监视,并检查来自示例失败请求和异常的堆栈跟踪。 当与 .NET Profiler 和 Snapshot Debugger 结合使用时,实时指标体验是一个强大的诊断工具。
使用实时指标可执行以下操作:
- 通过监视性能和故障计数,在修补程序发布时对其进行验证。
- 监视测试负载的效果,并实时诊断问题。
- 通过选择和筛选想要监视的指标,重点处理特定的测试会话或筛选出已知问题。
- 发生异常时获取异常跟踪。
- 试用筛选器,查找最相关的 KPI。
- 实时监视任何 Windows 性能计数器。
- 轻松识别有问题的服务器,并筛选出只与该服务器相关的所有 KPI/实时源。
开始
- 遵循特定于语言的指导原则来启用实时指标:
- ASP.NET:不支持。
- ASP.NET Core:默认启用。
- Java:默认启用。
- Node.js:默认启用。
-
Python:将
enable_live_metrics=True传递到configure_azure_monitor中。 有关详细信息,请参阅 Azure Monitor OpenTelemetry 发行版文档。
在 Azure 门户中,打开应用程序的 Application Insights 资源。 选择在左侧菜单中的“调查”下列出的“实时指标”。
如果使用自定义筛选器,则通过启用 Microsoft Entra 身份验证来保护控制通道。
实时指标与指标资源管理器和 Log Analytics 有何区别?
| 功能 | 实时流 | 指标资源管理器和 Log Analytics |
|---|---|---|
| 延迟 | 在一秒内显示数据。 | 在几分钟聚合。 |
| 无保留期 | 当数据在图表上显示时会得到保留,然后将被丢弃。 | 数据会保留 90 天。 |
| 按需 | 仅“实时指标”窗格处于打开状态时才会对数据进行流式处理。 | 每当安装并启用 SDK 时,都会发送数据。 |
| 免费 | 实时流数据不会产生费用。 | 遵从定价。 |
| 采样 | 传输所有选择的指标和计数器。 对失败和堆栈跟踪进行采样。 | 可以对事件进行采样。 |
| 控制通道 | 筛选器的控制信号会发送到 SDK。 建议确保此通道的安全。 | 通信为通向门户的单向通信。 |
选择和筛选指标
ASP.NET、ASP.NET Core 和 Azure Functions (v2) 可提供这些功能。
可以通过在门户中针对任何 Application Insights 遥测数据应用任意筛选器来实时监视自定义性能指示器。 选择筛选器控件(将鼠标悬停在任何图表上时会显示)。 下图绘制了一个自定义请求计数 KPI,其中的数据已按“URL”和“持续时间”属性进行筛选。 借助“流预览”部分(显示与在任意时间点指定的条件匹配的实时遥测源)验证筛选器。
可以监视与“计数”不同的值。 选项取决于流的类型,这可能是任何 Application Insights 遥测数据,如请求、依赖项、异常、跟踪、事件或指标。 也可能是自己的自定义度量。
除了 Application Insights 遥测外,还可以监视任何 Windows 性能计数器。 从流选项中选择它,并提供性能计数器的名称。
实时指标在以下两个位置聚合:在每个服务器本地聚合,然后在所有服务器上聚合。 通过在相应的下拉列表中选择其他选项,可以在任一位置更改默认选项。
采样遥测数据:自定义实时诊断事件
默认情况下,事件实时源显示已失败的请求和依赖项调用、异常、事件与跟踪的样本。 选择筛选器图标可以查看在任意时间点应用的条件。
与使用指标时一样,可以将任意条件指定为任何 Application Insights 遥测类型。 在本示例中,我们将选择特定的请求失败和事件。
注意
目前,对于基于异常消息的条件,请使用外部异常消息。 在上述示例中,若要筛选出具有内部异常消息(追随“<--”分隔符)“客户端已断开连接”的良性异常,请使用不包含“读取请求内容时出错”条件的消息。
若要查看实时源中某个项的详细信息,请选择它。 可以通过选择“暂停”或通过向下滚动并选择某个项来暂停源。 在实时源处于暂停状态时,滚回到顶部后,或者选择收集的项的计数器后,该实时源会恢复。
按服务器实例筛选
如果要监视特定服务器角色实例,则可以按服务器进行筛选。 若要进行筛选,请在“服务器”下选择服务器名称。
确保控制通道的安全
通过启用 Microsoft Entra 身份验证来保护实时指标控制通道,从而防止未经授权而泄露输入到自定义筛选器中的潜在敏感信息。
注意
2025 年 9 月 30 日,用于将实时指标遥测流式传输到 Application Insights 中的 API 密钥将停用。 在该日期之后,使用 API 密钥的应用程序将无法将实时指标数据发送到 Application Insights 资源。 用于将实时指标流式传输到 Application Insights 的经过身份验证的遥测引入需要使用适用于 Application Insights 的 Microsoft Entra 身份验证来完成。
支持的功能表
| 语言 | 基本指标 | 性能指标 | 自定义筛选 | 样本遥测数据 | CPU 按进程划分 |
|---|---|---|---|---|---|
| .NET Framework | 支持 (LTS) | 支持 (LTS) | 支持 (LTS) | 支持 (LTS) | 支持 (LTS) |
| .NET Core(目标=.NET Framework) | 支持 (LTS) | 支持 (LTS) | 支持 (LTS) | 支持 (LTS) | 支持 (LTS) |
| .NET Core(目标=.NET Core) | 支持 (LTS) | 支持* | 支持 (LTS) | 支持 (LTS) | 不支持 |
| Azure Functions v2 | 支持 | 支持 | 支持 | 支持 | 不支持 |
| Java | 支持 (V2.0.0+) | 支持 (V2.0.0+) | 不支持 | 支持 (V3.2.0+) | 不支持 |
| Node.js | 支持 (V1.3.0+) | 支持 (V1.3.0+) | 不支持 | 支持 (V1.3.0+) | 不支持 |
| Python | 支持(发行版版本 1.6.0+) | 不支持 | 不支持 | 不支持 | 不支持 |
基本指标包括请求、依赖项和异常率。 性能指标(性能计数器)包括内存和 CPU。 示例遥测显示了有关失败的请求和依赖项、异常、事件和跟踪的详细信息流。
PerfCounters 支持在不针对 .NET Framework 的 .NET Core 版本之间略有不同:
- 在适用于 Windows 的 Azure 应用服务中运行时(ASP.NET Core SDK 版本 2.4.1或更高版本),支持 PerfCounters 指标。
- 对于面向 .NET Core LTS 或更高版本的应用,当应用在任何 Windows 计算机上运行时,支持 PerfCounters。
- 当应用以最新版本在任意位置(例如 Linux、Windows、用于 Linux 的应用服务、容器等)运行时,支持 PerfCounters,但仅适用于针对 .NET Core LTS 或更高版本的应用。
故障排除
请参阅专用疑难解答文章。