从 AppInsight 中过滤掉成功的依赖项
Filter out successful dependencies from AppInsight
我创建了以下 TelemetryFilter:
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;
if (dependency != null && dependency.Success == true) return;
Next.Process(item);
}
}
并在 ApplicationInsights.config 中将 TelemetryFilter 添加到 TelemetruyProcessors。当我 运行 我的机器上的应用程序但当它部署到测试和生产环境时,它可以工作,Azure AppInsights 正在收集依赖项。当我在 Azure 门户中看到它们时,它们具有 属性 Call status: true
。 Call status
是指 dependency.Success
吗?过滤掉所有成功调用以减少我们的 AppInsights 数据进入并降低我们的 Azure 账单的最佳方法是什么?
过滤掉所有成功的依赖:
您可以在代码中初始化过滤器。在合适的初始化class,
AppStart in Global.asax.cs
,将您的处理器插入链中:
var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
builder.Use((next) => new SuccessfulDependencyFilter(next));
// If you have more processors:
builder.Use((next) => new AnotherProcessor(next));
builder.Build();
参考for filtering sampling
&for request filtering
降低 Application Insights 成本
您需要使用 Application Insights 检查优化 Telemetry here
检查 以了解更多降低应用洞察成本的方法
我发现 ApplicationInsights.config
文件未设置为通过构建过程复制到输出文件夹中。这就是它不起作用的原因。
我创建了以下 TelemetryFilter:
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;
if (dependency != null && dependency.Success == true) return;
Next.Process(item);
}
}
并在 ApplicationInsights.config 中将 TelemetryFilter 添加到 TelemetruyProcessors。当我 运行 我的机器上的应用程序但当它部署到测试和生产环境时,它可以工作,Azure AppInsights 正在收集依赖项。当我在 Azure 门户中看到它们时,它们具有 属性 Call status: true
。 Call status
是指 dependency.Success
吗?过滤掉所有成功调用以减少我们的 AppInsights 数据进入并降低我们的 Azure 账单的最佳方法是什么?
过滤掉所有成功的依赖:
您可以在代码中初始化过滤器。在合适的初始化class,
AppStart in Global.asax.cs
,将您的处理器插入链中:
var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
builder.Use((next) => new SuccessfulDependencyFilter(next));
// If you have more processors:
builder.Use((next) => new AnotherProcessor(next));
builder.Build();
参考for filtering sampling &for request filtering
降低 Application Insights 成本
您需要使用 Application Insights 检查优化 Telemetry here
检查
我发现 ApplicationInsights.config
文件未设置为通过构建过程复制到输出文件夹中。这就是它不起作用的原因。