修改Application Insights密钥后概览页监控指标不显示如何排查
问题现象
- 现有Web App、Web API两个项目,首次通过Visual Studio右键项目选择
configure application insight选项的官方流程集成Application Insights时,所有功能运行正常 - 手动修改Application Insights密钥切换监控实例后,
Live Metrics功能可正常使用,但Overview页面的失败请求、服务器响应时间、服务器请求数、可用性相关监控图表无数据更新
故障原因
出现该问题的核心原因是手动替换密钥时,没有同步完成全量配置匹配,具体触发场景分为三类:
- 配置不完整:Application Insights 2.18及以上版本SDK优先读取
Connection String配置建立遥测上报通道,仅替换Instrumentation Key(即提到的应用密钥)时,SDK仍会读取旧实例的连接字符串,将标准性能、请求类遥测发往旧实例或无效端点。Live Metrics走独立的实时流通道,仅校验密钥合法性即可连通,因此不受连接字符串配置错误影响。 - 遥测采集模块失效:右键自动集成时,Visual Studio会自动在配置文件中注册请求追踪、异常采集、性能采集等核心遥测模块。手动修改配置过程中如果误改了配置文件结构、或发布时旧配置覆盖新配置,会导致核心采集模块未被SDK加载,自然无法生成概览页需要的指标数据。
- 访问规则拦截:如果切换后的新Application Insights实例配置了专用网络访问、IP白名单或遥测筛选规则,标准指标遥测上报请求会被拦截丢弃,但
Live Metrics的控制流走独立鉴权通道,不会被常规访问规则拦截,因此表现为实时流正常、概览页无数据。
修复方案
按以下步骤逐一排查修复即可:
- 全量替换连接配置
不要单独修改Instrumentation Key字段,直接前往Azure门户对应Application Insights实例的概览页,复制完整的连接字符串,替换项目中所有位置的旧配置:- .NET Framework项目:更新
ApplicationInsights.config中<InstrumentationKey>和<ConnectionString>两个节点的内容 - .NET Core/.NET 5+项目:更新
appsettings.json中ApplicationInsights:ConnectionString字段的值,可移除单独配置的InstrumentationKey字段避免优先级冲突 - 同步检查环境变量、IIS配置、代码硬编码位置是否残留旧的密钥或连接字符串,避免SDK读取到多份不一致的配置
- .NET Framework项目:更新
- 校验核心遥测模块注册状态
- .NET Framework项目:检查
ApplicationInsights.config的<TelemetryModules>节点,确认以下模块配置存在且未被注释:<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web"/> <Add Type="Microsoft.ApplicationInsights.Web.ExceptionTrackingTelemetryModule, Microsoft.AI.Web"/> <Add Type="Microsoft.ApplicationInsights.Web.PerformanceCollectorModule, Microsoft.AI.Web"/> - .NET Core/.NET 5+项目:检查启动配置代码,确认已添加
builder.Services.AddApplicationInsightsTelemetry()服务注册,且后续代码中没有配置遥测筛选规则过滤Request、PerformanceCounter类别的遥测数据
- .NET Framework项目:检查
- 排查上报通道拦截问题
开启Application Insights SDK自诊断日志,查看是否存在遥测上报的401、403、404错误:如果是端点错误则修正连接字符串,如果是权限拦截则给新实例开放对应应用部署环境的网络访问权限,关闭不必要的遥测筛选规则 - 等待指标入库
配置修改完成后重启应用,发送10次以上测试请求,等待3-5分钟后再刷新概览页。Application Insights标准业务指标存在2-5分钟的入库延迟,和秒级生效的Live Metrics延迟特性不同,无需在配置修改后立刻刷新页面排查。
注意:如果切换前后的Application Insights实例属于不同的Azure环境(比如从公有云切到Azure中国区/政府云),必须替换完整连接字符串,仅改密钥会因为端点域名不匹配导致所有标准遥测上报失败。
内容的提问来源于stack exchange,提问作者Psychonaut007
相关产品推荐
相关产品推荐

