Azure Application Insights未显示SpringBoot应用指标求助
排查Spring Boot应用Azure Application Insights指标未显示问题
已完成的配置操作
- 添加Maven依赖:
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-core</artifactId> <version>3.5.3</version> </dependency> <dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-runtime-attach</artifactId> <version>3.5.3</version> </dependency>
- 应用启动时调用
ApplicationInsights.attach(); - 配置
applicationinsights.json文件:
{ "connectionString": "<actual-connection-string>", "role": { "name": "SampleApp-1", "instance": "SampleApp-1-Instance01" }, "sampling": { "percentage": 100 }, "jmxMetrics": [], "customDimensions": {}, "instrumentation": { "logging": { "level": "INFO" }, "micrometer": { "enabled": true } }, "proxy": {}, "preview" : { "profiler" : { "enabled" : true } }, "selfDiagnostics": { "destination": "file+console", "level": "DEBUG", "file": { "path": "applicationinsights.log", "maxSizeMb": 5, "maxHistory": 1 } } }
问题现象
- Live metrics和Application Map仪表盘中无应用数据
- Spring Boot Actuator配置的指标未被采集显示
- 服务日志显示Telemetry已尝试发送到 ingestion service(关键日志片段如下):
2024-06-25 15:20:46.361+01:00 DEBUG c.a.m.o.e.i.p.TelemetryItemExporter - sending telemetry to ingestion service: {"ver":1,"name":"Metric","time":"2024-06-25T14:20:42.871Z","iKey":"1873fa04-f24d-4b11-805e-127b57d426bf","tags":{"ai.internal.sdkVersion":"ra_java:3.5.3","ai.cloud.roleInstance":"SampleApp-1-Instance01","ai.cloud.role":"SampleApp-1"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\\Process(??APP_WIN32_PROC??)\\% Processor Time","value":0.15297564344634373}]}}} {"ver":1,"name":"Metric","time":"2024-06-25T14:20:42.871Z","iKey":"1873fa04-f24d-4b11-805e-127b57d426bf","tags":{"ai.internal.sdkVersion":"ra_java:3.5.3","ai.cloud.roleInstance":"SampleApp-1-Instance01","ai.cloud.role":"SampleApp-1"},"data":{"baseType":"MetricData","baseData":{"ver":2,"metrics":[{"name":"\\Process(??APP_WIN32_PROC??)\\% Processor Time Normalized","value":0.15297564344634373}]}}}
排查步骤
1. 验证Connection String有效性
- 确认
applicationinsights.json中的connectionString与Azure Portal中Application Insights实例的连接字符串完全一致,无多余空格或特殊字符。 - 可在Azure Portal的"API Access"页面重新生成连接字符串替换现有配置。
2. 检查网络连通性
- 应用服务器需能访问Azure Application Insights的 ingestion 端点(如
https://dc.applicationinsights.azure.com/),排查防火墙或代理是否拦截出站请求。 - 可在服务器执行以下命令测试连通性:
curl -v https://dc.applicationinsights.azure.com/v2/track
3. 确认Runtime Attach方式的兼容性
- Runtime Attach方式(
applicationinsights-runtime-attach依赖)要求JDK版本在1.8-17之间,且Spring Boot版本与SDK兼容,检查你的环境是否符合要求。 - 建议替换为Spring Boot专属的自动配置依赖,简化集成:
<dependency> <groupId>com.microsoft.azure</groupId> <artifactId>applicationinsights-spring-boot-starter</artifactId> <version>3.5.3</version> </dependency>
替换后移除ApplicationInsights.attach();代码,Spring Boot会自动完成初始化。
4. 完善Actuator指标采集配置
- 确保已添加Spring Boot Actuator依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
- 在
application.properties中开启Actuator端点:
management.endpoints.web.exposure.include=* management.endpoint.metrics.enabled=true
- 确认
applicationinsights.json中instrumentation.micrometer.enabled已设为true,确保Micrometer桥接生效。
5. 排查Telemetry发送失败原因
- 将
applicationinsights.json中selfDiagnostics.level改为TRACE,查看是否有HTTP错误(如401、403、500)或权限相关日志。 - 确认Application Insights实例的连接字符串对应的密钥具备发送Telemetry的权限(默认权限足够,若配置了RBAC需额外验证)。
6. 检查Azure Portal数据筛选条件
- 在Live metrics和Metrics页面,确认筛选的Cloud Role Name为
SampleApp-1,时间范围覆盖应用运行时段,避免因筛选规则导致数据不显示。 - Metrics数据存在几分钟延迟,等待一段时间后再刷新页面查看。
内容的提问来源于stack exchange,提问作者Karan Khanna
相关产品推荐
相关产品推荐

