在 Application Insights 遥测中包含 SQL 个查询参数值

Include SQL query parameter values in Application Insights telemetry

对于 ASP.NET Core(可能还有其他平台),Application Insights 默认情况下会跟踪对 Azure SQL 数据库(可能还有其他平台)的所有查询作为依赖操作。对于每个查询,它记录查询字符串,像这样:

SELECT [b].[Foo] FROM [Bar] AS [b] WHERE [b].[Id] = @id

但是,它没有记录@id的值。如何让它记录查询参数的值?

您应该能够使用自定义依赖项跟踪功能并使用代码中的正确信息为 SQL 数据库依赖项创建遥测。 - https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net-dependencies#custom-dependency-tracking

这被跟踪为 GitHub 上的功能请求:https://github.com/Microsoft/ApplicationInsights-dotnet-server/issues/193

我们已经为 http 调用实现了这种类型的可扩展性,您现在可以访问原始 http 请求对象以提取更多详细信息。

对于当前版本的 SDK,最好的选择是在当前线程的某处设置这些参数并从遥测初始化程序访问,或者通过包装所有 SQL 调用手动跟踪此操作。

希望对您有所帮助