将 Dapper 的 SQL 命令文本跟踪到 Application Insights

问题描述 投票:0回答:1

我的应用程序使用 Dapper 进行数据库工作(使用 SQL Server)。它们是在 Docker 容器中运行的 ASP.NET Core Web 应用程序(自托管)。

当这些服务针对 Application Insights 进行检测时,会自动捕获数据库依赖项(我无需执行任何操作),但 Command 属性始终捕获为“服务器名称 | 数据库名称”,而不是实际的 SQL 。我应该怎么做才能启用详细跟踪,包括实际的命令文本?可以只为 SqlConnection 或 Dapper 启用此功能吗?还是我需要一些外部组件?我不断看到提到状态监视器,但我对如何将其应用到我的上下文中感到有点困惑。

.net azure azure-application-insights dapper
1个回答
0
投票

碰巧我自己偶然发现了答案,发布在这里以防其他人也想知道。

Dapper 当然与此无关,它是被检测的 SqlClient。要将 SQL 文本添加到跟踪中,以下配置调整就足够了(至少在我的情况下就足够了):

services
  // - configure all services, including App.Insights telemetry, and then:
  .ConfigureTelemetryModule<DependencyTrackingTelemetryModule>((module, o) =>
  {
      module.EnableSqlCommandTextInstrumentation = true;
  });

这里字面上是这么说的: https://learn.microsoft.com/en-us/azure/azure-monitor/app/asp-net-dependency#advanced-sql-tracking-to-get-full-sql-query

© www.soinside.com 2019 - 2024. All rights reserved.