MS Application Insights - 如何限制Sql依赖项

时间:2017-01-23 11:40:30

标签: c# .net azure azure-application-insights

有没有办法告诉Application Insights只捕获与 SQL依赖关系相关的一部分数据?像10%这样的东西?如果没有,有没有办法一起禁用它?

2 个答案:

答案 0 :(得分:1)

您可以通过不同方式“限制”(或采样,如微软所称)。一种方法是使用内置配置选项限制所有内容,但如果您只想限制特定的依赖项,则需要实现自己的ITelemetryChannel。 有关如何完成此操作的指南,请访问:http://apmtips.com/blog/2015/05/06/diy-data-sampling/

然后,在Send(ITelemetry项)方法中,您可以检查传入项是否是依赖项并且与SQL相关,它将如下所示:

if (item is DependencyTelemetry)
{  
    var dependency = item as DependencyTelemetry;  
    if (dependency.DependencyTypeName == "SQL")  
    {  
        //implement throttling from the guide  
    }  
}  

如链接所示,您需要创建ServerTelemetryChannel的实例并在其上调用Send()方法 - 您需要对要实际发送到应用程序洞察的任何遥测项目执行此操作。
这意味着您还可以使用此实现来完全过滤掉任何SQL依赖关系遥测,如下所示:

public void Send(ITelemetry item)
{
    if (item is DependencyTelemetry)
    {
        var dependency = item as DependencyTelemetry;  
        if (dependency.DependencyTypeName == "SQL")  
        {  
            return;
        }  
    }        
    this.channel.Send(item);
}

答案 1 :(得分:1)

根据我的评论,在尝试实现自定义遥测处理器时,此答案应该会有所帮助。

App Insights: Disable SQL Dependency telemetry