Condividi tramite


Usare le tracce di telemetria e attività aperte

Data API Builder (DAB) supporta OpenTelemetry per la traccia distribuita e le metriche, consentendo di monitorare e diagnosticare il comportamento dell'applicazione in REST, GraphQL, operazioni di database e middleware interno.

Tracce del generatore di API dati

DAB crea "attività" di OpenTelemetry per:

  • Richieste HTTP in ingresso (endpoint REST)
  • GraphQL operations
  • Database queries (per entity)
  • Passaggi del middleware interno (ad esempio, gestione delle richieste, rilevamento degli errori)

Ogni attività include tag dettagliati (metadati), ad esempio:

  • http.method, http.url, http.querystringstatus.code
  • action.type (CRUD, operazione GraphQL)
  • user.role, user-agent
  • data-source.type, data-source.name
  • api.type (REST o GraphQL)

Anche gli errori e le eccezioni vengono tracciati con informazioni dettagliate.

Metriche del generatore di API dati

DAB genera metriche OpenTelemetry, ad esempio:

  • Total Requests: Counter, labeled by HTTP method, status, endpoint, and API type.
  • Errors: Counter, labeled by error type, HTTP method, status, endpoint, and API type.
  • Request Duration: Histogram (in milliseconds), labeled as above.
  • Active Requests: Up/down counter for concurrent requests.

Le metriche usano l'API .NET Meter e OpenTelemetry SDK.

Configuration

Aggiungere una open-telemetry sezione in runtime.telemetry nel file di configurazione.

{
    "runtime": {
        "telemetry": {
            "open-telemetry": {
                "enabled": true,
                "endpoint": "http://otel-collector:4317",
                "service-name": "dab",
                "exporter-protocol": "grpc"
            }
        }
    }
}

CLI Options

Configure OpenTelemetry via CLI flags:

  • dab configure --otel-enabled true
  • dab configure --otel-endpoint "http://otel-collector:4317"
  • dab configure --otel-protocol "grpc"
  • dab configure --otel-service-name "dab"
  • dab configure --otel-headers

Esportare e visualizzare

I dati di telemetria vengono esportati tramite .NET OpenTelemetry SDK nel back-end configurato, ad esempio Monitoraggio di Azure o Jaeger. Verificare che il back-end sia in esecuzione e raggiungibile nell'oggetto specificato endpoint.

Implementation Notes

  • Le tracce e le metriche coprono tutte le operazioni REST, GraphQL e DB
  • I gestori di middleware e di errore generano anche dati di telemetria
  • Il contesto viene propagato tramite richieste