Azure 日志分析工作区 - 日志管理生成的数据比预期的多得多

Azure Log analytics workspace - log management generate much more data than expected

我有一个应用程序服务,在我的开发环境中,我看到它每月生成大约 1GB 的日志,在生产应用程序服务中连接到日志分析工作区,并且在使用中它说日志管理几乎是每月 80GB。在 monitoring->insights 中,我看到 79GB 中只有一个 table。开发环境上的相关 table 略小于 1GB 我是天蓝色的新手,我如何检查为什么相同的代码在日志分析工作区中生成的日志比没有它多 80 倍?两个环境对应用服务的请求总和几乎相同。

要在您的应用服务 (Azure Functions .Net Core Stack) 上启用 App Insights 后优化您的日志,我还采取了一些步骤和解决方法来尽量减少不必要的日志作为优化成本:

  • host.json中使用更高级别的日志记录来最小化日志。只有 logs/terminal 中显示的手动日志记录和功能信息日志中不会产生浏览器中显示功能结果的地方。

-禁用不需要的模块:编辑ApplicationInsights.config以关闭不需要的收集模块。

- 动态禁用遥测: 要在代码中的任何位置有条件地动态禁用遥测,请使用 TelemetryConfiguration 实例在其上设置 DisableTelemetry 标志。

此代码示例可防止将遥测数据发送到 Application Insights,但不能防止自动收集模块收集遥测数据,同时为了删除自动收集模块,请参阅此 Microsoft Documentation

- 自定义日志收集:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    },
    "ApplicationInsights": {
      "LogLevel": {
        "Default": "Information"
      }
    }
  }
}


以上配置允许 Application Insights 捕获所有 Information 日志和严重的 warning 日志。要更改此行为,请显式覆盖提供程序 ApplicationInsights 的日志记录配置,如下所示:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

还有一些技术可以管理用于遥测数据优化的数据量,例如:

  • 抽样:
  • 每日上限:
  • Pre-aggregate 指标

此外,请访问我的实际解决方法(, )以减少不必要的日志并优化成本。

参考文献:

  1. Resolve if logs shows twice in Application Insights
  2. Optimizing logging costs of Azure Functions
  3. Configuring or removing the necessary Telemetry Initializers