有没有办法告诉Application Insights只捕获与 SQL依赖关系相关的一部分数据?像10%这样的东西?如果没有,有没有办法一起禁用它?
答案 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)
根据我的评论,在尝试实现自定义遥测处理器时,此答案应该会有所帮助。