不从 Function App 向 Application Insights 发送数据

Not sending data to Application Insights from Function App

我有 Function App 和 Application Insight 服务。我注意到我的应用程序发送的数据量很大并且会产生很大的成本。我可以 disable/completely 在不删除 APPINSIGHTS_INSTRUMENTATIONKEYAPPLICATIONINSIGHTS_CONNECTION_STRING 的情况下停止向 AI 发送数据吗?但我当然想让这两项服务都保持活力。

host.json 应该以某种方式配置吗?

这是我为优化 Application Insights 日志生成的成本所做的解决方法:

  • 为了尽量减少日志数量,您可以在 host.json 中使用更高的日志记录级别,如下面的屏幕截图所示:

可以看到这里的日志最小化功能信息日志没有产生,输出日志显示在浏览器中,只有手动日志显示在logs/terminal。

以及其他减少日志和优化 Azure Functions AI 成本的方法:

- 禁用不需要的模块: 编辑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

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