我们如何在 azure application insights 中显示数据库查询

How can we display database query in azure application insights

我们的应用程序正在使用 azure application insights。我读到的是,使用应用程序洞察端到端跟踪,我们甚至可以获得在数据库中执行的查询以及该查询花费了多少时间。

但如屏幕截图所示,azure app insights 显示对数据库进行了 3 次调用,但不是在这些调用中针对数据库执行的实际查询。

我需要知道的是我需要做什么才能获得针对数据库执行的查询?

是的,应用程序见解可以跟踪 sql 查询。但请注意,最新版本的 application insights nuget 包有一些变化,这使得它不会自动跟踪 sql 查询。

您可以通过下面的解决方法来完成。

假设您正在使用 .net core 网络项目。然后你需要将 Microsoft.ApplicationInsights.AspNetCore 降级到版本 2.12.0.

这是我对该软件包的 2.12.0 版的测试结果:

此外,您还可以使用其他解决方法,有关详细信息,请参阅 here

这是 SDK 2.14 的重大更改之一。

您只需要简单地用下面的行修改 ConfigureServices() 即可 ASP.NET Core:

services.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>((module, o) => { module.EnableSqlCommandTextInstrumentation = true; });

并为 ASP.NET 修改 ApplicationInsights.config 文件:

<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">, 
<EnableSqlCommandTextInstrumentation>true</EnableSqlCommandTextInstrumentation>
</Add>