Azure / Azure/data-api-builder
[Bug]: Critical! No database query trace spans
- Lenguaje dominante
- C#
- Estrellas
- 1.5k
- Forks
- 370
- Merge medio
- 3 d 22 h
- PR fusionados (30 d)
- 9
Descripción
SQL queries are logged at debug level (visible in OTEL logs and file telemetry) but are never emitted as trace spans. There is no way to see database latency in a trace waterfall or correlate slow queries back to the HTTP request that triggered them.
## Expected
Each SQL query should produce a child span under the parent HTTP request span, following the [OTEL database semantic conventions](https://opentelemetry.io/docs/specs/semconv/database/):
```
[Server] GET /api/Todo ── 220ms
└─ [Client] SELECT ... FROM dbo.Todo ── 18ms
db.system = mssql
db.name = TodoDb
db.statement = SELECT TOP 101 [dbo_Todo].[id] ...
```
This is standard for .NET apps using `AddSqlClientInstrumentation()`.
## Actual
SQL queries only appear in debug-level OTEL logs, not as trace spans:
```
InstrumentationScope Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor
LogRecord #1
Body: Str( Executing query: SELECT TOP 101 [dbo_Todo].[id] AS [id], ...)
```
Zero `db.system: mssql` spans exist. The `TracerProvider` does not register `AddSqlClientInstrumentation()`.
Guía de contribución
Línea de trabajo
Comienza siguiendo la configuración de TracerProvider y la ruta de consulta de Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor; el issue identifica el registro faltante de AddSqlClientInstrumentation(). Compara la telemetría emitida con las convenciones semánticas de bases de datos de OTEL y verifica que la ejecución de SQL produzca un span hijo bajo el span HTTP, con los atributos mssql, el nombre de la base de datos y el statement.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- csharp, sql
- Área
- backend-api-design, databases, observability
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 63/100