使用 Application Insights 中的实时指标来监视 Web 应用程序。 选择并筛选指标和性能计数器以实时监视,并检查来自示例失败请求和异常的堆栈跟踪。
使用实时指标可执行以下操作:
- 通过监视性能和故障计数,在修补程序发布时对其进行验证。
- 监视测试负载的效果,并实时诊断问题。
- 通过选择和筛选想要监视的指标,可以重点处理特定的测试会话或排除已知问题。
- 在异常发生时自动获取异常跟踪
- 试用筛选器,查找最相关的 KPI。
- 实时监视任何Windows性能计数器。
- 轻松识别问题服务器,并将所有 KPI/实时数据流筛选至该服务器。
开始
按照特定于语言的准则,通过 Azure Monitor OpenTelemetry 启用实时指标:
- ASP.NET:不支持。
- ASP.NET Core:默认启用。
- Java:默认启用。
- Node.js:默认启用。
- Python:默认启用。
在 Azure 门户中打开应用程序的 Application Insights 资源。 选择在左侧菜单中的“调查”下列出的“实时指标”。
实时指标与指标资源管理器和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 资源。 需要使用 Microsoft Entra 身份验证使经过身份验证的遥测引入成为可能,以支持实时指标流式传输到 Application Insights。
支持的功能表
| 语言 | 基本指标 | 性能指标 | 自定义筛选 | 样本遥测 |
|---|---|---|---|---|
| .NET | 支持 | 支持 | 支持 | 支持 |
| Azure Functions v2 | 支持 | 支持 | 支持 | 支持 |
| Java | 支持 | 支持 | 不支持 | 支持 (V3.2.0+) |
| Node.js | 支持 (V1.3.0+) | 支持 (V1.3.0+) | 支持 (V1.3.0+) | 支持 (V1.3.0+) |
| Python | 支持 (发行版版本 1.6.0) | 支持 (发行版版本 1.8.2+) | 支持 (发行版版本 1.0.0+) | 支持 (发行版版本 1.5.0+) |
基本指标包括请求、依赖项和异常率。 性能指标(性能计数器)包括内存和 CPU。 示例遥测显示了有关失败的请求和依赖项、异常、事件和跟踪的详细信息流。
PerfCounters 支持在不面向 .NET Framework 的 .NET Core 版本中略有不同:
- 在 Azure 应用服务的 Windows 上运行时,支持 PerfCounters 指标(ASP.NET Core SDK 版本 2.4.1 或更高版本)。
- 在任意 Windows 计算机上运行面向 .NET Core LTS 或更高版本的应用时,支持 PerfCounters。
- 当应用程序在最新版本中 任意地方(例如 Linux、Windows、Linux 应用服务或容器)运行时,PerfCounters 都受到支持,但仅限于那些目标 .NET Core LTS 或更高版本的应用程序。
故障排除
请参阅专用疑难解答文章。