Search code examples
sqlazure-application-insightstelemetry

Include SQL query parameter values in Application Insights telemetry


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?


Solution

  • 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