我的应用程序使用 Dapper 进行数据库工作(使用 SQL Server)。它们是在 Docker 容器中运行的 ASP.NET Core Web 应用程序(自托管)。
当这些服务针对 Application Insights 进行检测时,会自动捕获数据库依赖项(我无需执行任何操作),但 Command 属性始终捕获为“服务器名称 | 数据库名称”,而不是实际的 SQL 。我应该怎么做才能启用详细跟踪,包括实际的命令文本?可以只为 SqlConnection 或 Dapper 启用此功能吗?还是我需要一些外部组件?我不断看到提到状态监视器,但我对如何将其应用到我的上下文中感到有点困惑。
碰巧我自己偶然发现了答案,发布在这里以防其他人也想知道。
Dapper 当然与此无关,它是被检测的 SqlClient。要将 SQL 文本添加到跟踪中,以下配置调整就足够了(至少在我的情况下就足够了):
services
// - configure all services, including App.Insights telemetry, and then:
.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>((module, o) =>
{
module.EnableSqlCommandTextInstrumentation = true;
});