有没有办法告诉应用程序见解只捕获与SQL依赖关系相关的数据的百分比?比如,10%?如果没有,有没有办法一起禁用它?
根据我在下面的评论,这个答案应该在尝试实现自定义遥测处理器时有所帮助。
应用见解:禁用 SQL 依赖项遥测
你可以用不同的方式"节流"(或采样,正如Microsoft所说的那样)。一种方法是使用内置配置选项限制所有内容,但如果只想限制特定的依赖项,则需要实现自己的 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);
}