Azure / Azure/data-api-builder
[Bug]: Critical! No database query trace spans
- Langage dominant
- C#
- Étoiles
- 1.5k
- Forks
- 370
- Merge moyen
- 3 j 22 h
- PR mergées (30 j)
- 9
Description
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()`.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par suivre la configuration de TracerProvider et le chemin de requête de Azure.DataApiBuilder.Core.Resolvers.IQueryExecutor ; l’issue identifie l’enregistrement manquant de AddSqlClientInstrumentation(). Comparez la télémétrie émise aux conventions sémantiques OTEL pour les bases de données et vérifiez que l’exécution SQL produit un span enfant sous le span HTTP, avec les attributs mssql, le nom de la base de données et la requête.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp, sql
- Domaine
- backend-api-design, databases, observability
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 63/100