首页 > 解决方案 > Azure Function + Application Insights - 不跟踪 SQL 查询

问题描述

我们有一个 Http 触发的 Azure 函数 (.NET Core 3.1)。无论出于何种原因,我们无法让详细的 SQL 依赖跟踪正常工作,我们所看到的只是:tcp:ourdbserver.database.windows.net,1433 | TestDB.

它在本地调试和部署到 Azure 时都不起作用。我们已经安装了最新的 ApplicationInsights nuget 包(见下文):

在此处输入图像描述

在 StartUp 中,我们按照 Microsoft docs here的建议选择加入 SQL Text 集合:

在此处输入图像描述

任何人都可以阐明我们缺少什么吗?

更新:

这就是我们在host.json

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      }
    }
  }
}

以下是在本地调试时输出到调试控制台的内容:

ApplicationInsightsLoggerOptions
{
  "SamplingSettings": {
    "EvaluationInterval": "00:00:15",
    "InitialSamplingPercentage": 100.0,
    "MaxSamplingPercentage": 100.0,
    "MaxTelemetryItemsPerSecond": 20.0,
    "MinSamplingPercentage": 0.1,
    "MovingAverageRatio": 0.25,
    "SamplingPercentageDecreaseTimeout": "00:02:00",
    "SamplingPercentageIncreaseTimeout": "00:15:00"
  },
  "SamplingExcludedTypes": null,
  "SamplingIncludedTypes": null,
  "SnapshotConfiguration": null,
  "EnablePerformanceCountersCollection": true,
  "HttpAutoCollectionOptions": {
    "EnableHttpTriggerExtendedInfoCollection": true,
    "EnableW3CDistributedTracing": true,
    "EnableResponseHeaderInjection": true
  },
  "LiveMetricsInitializationDelay": "00:00:15",
  "EnableLiveMetrics": true,
  "EnableDependencyTracking": true
}

标签: azure-functionsazure-application-insightssqldependency

解决方案


如下更新 host.json 中的日志记录部分以允许Information级别日志(注意我在上面发布的现有配置中添加了 logLevel)。默认情况下,如果您未指定,则为警告。正如此处的注释中所述,依赖项使用信息级别记录。另请注意,根据文档,excludedTypes(不是 samplingExcludedTypes)应该在 samplingSettings 内。

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
        "samplingSettings": {
            "isEnabled": true,
            "excludedTypes": "Dependency;Request"
        }
    },
    "logLevel": {"default": "Information"}
  }
}

推荐阅读