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

wi3ka0sx  于 2021-08-01  发布在  Java
关注(0)|答案(2)|浏览(501)

我们的应用程序正在使用azure application insights。我读到的是,使用applicationinsights端到端跟踪,我们甚至可以得到在数据库中执行的查询以及该查询所用的时间。
但如屏幕截图所示,azure app insights向我显示,有3个对数据库的调用,但不是在这些调用中对数据库执行的实际查询。
我需要知道的是,为了得到针对数据库执行的查询,我需要做什么?

1tu0hz3e

1tu0hz3e1#

是的,application insights可以跟踪sql查询。但请注意,application insights nuget包的最新版本中有一些更改,这使得它不会自动跟踪sql查询。
您可以通过下面的解决方法来完成。
假设你用的是 .net core web项目。然后你需要降低 Microsoft.ApplicationInsights.AspNetCore 到版本 2.12.0 .
以下是我对该软件包2.12.0版的测试结果:

此外,您还可以使用其他解决方法,请参阅此处了解更多详细信息。

s2j5cfk0

s2j5cfk02#

作为sdk2.14的一部分,这是一个突破性的变化。
对于asp.net core,只需使用以下行修改configureservices():

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>

相关问题