3
votes

For ASP.NET Core (and likely other platforms), Application Insights by default tracks all queries to Azure SQL Database (and likely other platforms) as dependency operations. For each query, it records the query string, something like this:

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

However, it doesn't record the value of @id. How do I make it record the values of the query parameters?

2

2 Answers

4
votes

This is tracked as a feature request on GitHub: https://github.com/Microsoft/ApplicationInsights-dotnet-server/issues/193

We already implemented this type of extensibility for http calls where you now have access to the original http request object to extract additional details.

With the current version of SDK the best option is to set those parameters somewhere on current thread and access from telemetry initializer or track this operation manually by wrapping all SQL calls.

Hope this helps

0
votes

You should be able to use custom dependency tracking feature and create telemetry for SQL database dependency with the right information from code. - https://docs.microsoft.com/en-us/azure/application-insights/app-insights-asp-net-dependencies#custom-dependency-tracking