Sdílet prostřednictvím


Použití otevřených telemetrických dat a trasování aktivit

Data API Builder (DAB) podporuje OpenTelemetry pro distribuované trasování a metriky, které umožňují monitorovat a diagnostikovat chování vaší aplikace napříč rozhraními REST, GraphQL, databázovými operacemi a interním middlewarem.

Trasování tvůrce datových rozhraní API

Jazyk DAB vytvoří "aktivity" OpenTelemetry pro:

  • Příchozí požadavky HTTP (koncové body REST)
  • GraphQL operations
  • Database queries (per entity)
  • Interní kroky middlewaru (např. zpracování požadavků, sledování chyb)

Každá aktivita zahrnuje podrobné značky (metadata), například:

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

Chyby a výjimky jsou také sledovány s podrobnými informacemi.

Metriky tvůrce rozhraní Data API

DAB generuje metriky OpenTelemetry, například:

  • 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.

Metriky používají rozhraní .NET Meter API a sadu OpenTelemetry SDK.

Configuration

Do konfiguračního open-telemetry souboru přidejte oddílruntime.telemetry.

{
    "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

Export a vizualizace

Telemetrie se exportuje prostřednictvím sady .NET OpenTelemetry SDK do nakonfigurovaného back-endu, jako je Azure Monitor nebo Jaeger. Ujistěte se, že je back-end spuštěný a dostupný v zadaném stavu endpoint.

Implementation Notes

  • Trasování a metriky pokrývají všechny operace REST, GraphQL a DB.
  • Middleware a obslužné rutiny chyb také generují telemetrii
  • Kontext se šíří prostřednictvím požadavků.