Azure App Insights应用地图缺失入向调用箭头及调用方节点问题排查
故障原因与排查方案
可能的原因
- API Management链路追踪配置缺失:请求先经过APIM组件时,若APIM未正确配置W3C trace上下文透传,未将
traceparent、Request-Id等链路标识头传递到后端服务,会导致当前服务收到的请求没有上游链路关联标识,App Map无法识别入向请求的来源。 - 上游调用方的依赖追踪配置错误:已接入App Insights的上游调用系统,若未正确配置HTTP客户端的依赖自动采集规则,或是自定义发送请求时未携带链路上下文头,会导致上游的向外依赖 telemetry 和当前服务的入向请求 telemetry 无法关联,自然不会在应用地图中展示上游节点和入向箭头。
- 当前服务的Telemetry类型配置错误:检查当前服务的App Insights SDK自定义配置,若自定义的
TelemetryInitializer或TelemetryProcessor错误地将入向RequestTelemetry标记为了DependencyTelemetry,会导致App Insights把所有收到的请求识别为服务主动发起的向外调用,仅展示出向箭头。 - 跨App Insights资源关联未开启:若上游调用方、APIM、当前服务分别接入了不同的App Insights实例,默认情况下应用地图仅会展示同一实例内的链路节点,需要开启跨资源查询配置才能展示跨实例的完整链路。
- 采样规则导致链路断裂:如果配置了固定采样率或者自适应采样规则,刚好上游服务的telemetry被采样丢弃,而当前服务的telemetry被保留,也会出现链路不完整、无入向箭头的问题。
快速排查步骤
- 抓包确认当前服务收到的请求头中是否存在
traceparent等标准链路标识头 - 导出当前服务的入向请求telemetry,根据
operation_Id检索是否有对应的上游依赖记录 - 核查所有关联组件的App Insights采样规则、自定义Telemetry处理逻辑是否存在异常配置
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

