You need to enable JavaScript to run this app. AppInsight成功依赖项过滤规则部署失效及成本优化咨询
优惠活动
大模型
产品
解决方案
定价
更多

AppInsight成功依赖项过滤规则部署失效及成本优化咨询

问题1:Call status与dependency.Success的对应关系

你在Azure门户中看到的Call status: true完全对应DependencyTelemetry对象的Success属性,二者是直接映射的关系,不存在字段不匹配的问题。

问题2:本地生效线上不生效的常见原因

你的自定义处理器本地生效、线上失效最可能的两个原因:

  • 配置节点拼写错误:你提到的配置节点名TelemetruyProcessors拼写有误,正确名称应为TelemetryProcessors,拼写错误会导致配置无法被读取加载。
  • 框架兼容性问题:如果你使用的是ASP.NET Core/.NET Core+版本的应用,Application Insights默认不会读取ApplicationInsights.config文件的配置,这类框架需要通过代码注入的方式注册自定义处理器。

过滤成功依赖项的最佳方案

推荐按优先级选择以下方案:

  1. 修正自定义处理器的注册逻辑

    • 如果你使用的是ASP.NET (.NET Framework)应用,先修正配置节点拼写,修正后重启应用即可生效。
    • 如果你使用的是.NET Core/.NET 5+应用,移除config中的配置,在服务注册代码中添加如下逻辑:
    // Program.cs 或者 Startup.cs 的 ConfigureServices 方法中
    services.AddApplicationInsightsTelemetryProcessor<TelemetryFilter>();
    
  2. 优化过滤逻辑避免丢失排查所需数据
    不建议直接过滤所有成功依赖项,可添加阈值判断保留慢调用、异常相关的必要数据,参考优化后的代码:

public class TelemetryFilter : ITelemetryProcessor
{
    private ITelemetryProcessor Next { get; set; }
    public TelemetryFilter(ITelemetryProcessor next)
    {
        Next = next;
    }
    public void Process(ITelemetry item)
    {
        var dependency = item as DependencyTelemetry;
        // 仅过滤成功且耗时低于1s的普通依赖项,慢调用、失败调用全部保留
        if (dependency != null && dependency.Success == true && dependency.Duration.TotalMilliseconds < 1000) 
        {
            return;
        }
        Next.Process(item);
    }
}
  1. 轻量化替代方案
    如果不需要100%精准过滤所有成功依赖,也可以直接在Azure门户的Application Insights配置页开启引入采样,无需修改代码即可按比例过滤冗余数据,成本控制效果也比较好。

内容的提问来源于stack exchange,提问作者Alexander Zhidkov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 15:54:01