禁用依赖性日志记录以获取Azure应用服务(Web应用)上的应用程序见解

时间:2019-04-29 18:57:15

标签: azure azure-web-sites azure-application-insights appinsights

我的应用程序根据ib依赖关系写了很多日志,这使它变得非常昂贵(甚至比我的服务器场+数据库还要昂贵),而且我们已经有几个月没有使用它了。 如何禁用依赖项,但保留其余部分(请求,异常,自定义事件等)?

在文档中,添加应用程序见解与添加斜率没有分开。 https://docs.microsoft.com/en-us/azure/azure-monitor/app/asp-net-dependencies

同时

  

在应用洞察资源中>用法和估计成本

唯一可用的选项是

  • 每日上限

-数据采样

但是自定义事件(和请求)对业务具有重大价值,我不希望由于上限或被采样而不会将其记录下来。 enter image description here

2 个答案:

答案 0 :(得分:3)

如果不需要,只需从ApplicationInsights.config文件中删除 DependencyTrackingTelemetryModule

查找该条目:

<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">
    .....
</Add>

并删除它或将其注释掉:

<!--<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">
    .....
</Add>-->

另一种方法是仅针对依赖项将采样设置为100%。有关更多信息,请参见documentation。但是我认为最好不要加载或运行不需要的东西。

答案 1 :(得分:2)

我认为您可以通过创建遥测处理器并在Process方法内禁用遥测数据来实现。

示例:

public void Process(ITelemetry item)
{
    var request = item as DependencyTelemetry;

    // Don't process dependency telemetry
    if (request != null)
    {
        return;
    }

    this.Next.Process(item);
}

另请参阅:Filtering and preprocessing telemetry in the Application Insights SDK