OpenTelemetria és tevékenységkövetések használata

A Data API Builder (DAB) támogatja az OpenTelemetryt az elosztott nyomkövetéshez és metrikákhoz, lehetővé téve a viselkedés monitorozását és diagnosztizálását a REST, a GraphQL, az adatbázis-műveletek és a belső köztes szoftverek között.

Az OpenTelemetry-folyamatot bemutató diagram.

Előfeltételek

  • Meglévő DAB-konfigurációs fájl.
  • OpenTelemetry-gyűjtő vagy háttérrendszer futtatása (például Azure Monitor vagy Jaeger).
  • Adat API-építő CLI. A parancssori felület telepítése

Eszköz futtatása

A dab add-telemetry használatával adhatja hozzá az OpenTelemetry beállításokat a konfigurációhoz.

  1. Győződjön meg arról, hogy rendelkezik konfigurációs fájllal. Ha létre kell hoznia egyet, futtassa a következőt:

    dab init \
        --database-type mssql \
        --connection-string "<sql-connection-string>"
    
  2. Adja hozzá az OpenTelemetry-beállításokat a konfigurációs fájlhoz.

    dab add-telemetry \
        -c dab-config.json \
        --otel-enabled true \
        --otel-endpoint "http://localhost:4317" \
        --otel-protocol "grpc" \
        --otel-service-name "dab"
    
  3. Indítsa el a DAB-t.

    dab start
    

Tesztelés a telemetriai háttérrendszerben

  1. Nyissa meg az OpenTelemetry-háttérrendszert vagy a gyűjtő felhasználói felületét.

  2. Győződjön meg arról, hogy a nyomkövetések és a metrikák érkeznek REST-, GraphQL- vagy adatbázis-hívásokhoz.

Megjegyzés:

A .NET Aspire irányítópult ideális része a fejlesztői ciklusnak. Beépített nézeteket tartalmaz az OpenTelemetry-nyomkövetésekhez és -metrikákhoz.

Data API Builder-nyomkövetések

A DAB az OpenTelemetria "tevékenységeit" hozza létre a következőhöz:

  • Bejövő HTTP-kérések (REST-végpontok)
  • GraphQL-műveletek
  • Adatbázis-lekérdezések (entitásonként)
  • Belső köztes szoftver lépései (például kéréskezelés, hibakövetés)
  • MCP-eszközök végrehajtása (minden adatmanipulációs nyelv (DML) eszközhívás és egyéni eszközhívás)

Megjegyzés:

Az ebben a szakaszban ismertetett Data API builder funkció a 2.0-s és újabb verziókban érhető el. További információ: A 2.0-s verzió újdonságai.

Minden tevékenység részletes címkéket (metaadatokat) tartalmaz, például:

  • http.method, http.url, http.querystringstatus.code
  • action.type (CRUD, GraphQL művelet)
  • user.role, user-agent
  • data-source.type, data-source.name
  • api.type (REST vagy GraphQL)

A hibák és kivételek részletes információval is nyomon követhetők.

Data API Builder-metrikák

A DAB OpenTelemetry-metrikákat bocsát ki, például:

  • Összes kérelem: Számláló, HTTP-metódus, állapot, végpont és API-típus szerint címkézve.
  • Hibák: Számláló, hibatípus, HTTP-metódus, állapot, végpont és API-típus szerint címkézve.
  • Kérelem időtartama: Hisztogram (ezredmásodpercben), HTTP-metódus, állapot, végpont és API-típus szerint címkézve.
  • Aktív kérések: Egyidejű kérések fel/le számlálója.

A metrikák a .NET Meter API-t és az OpenTelemetry SDK-t használják.

Configuration

Adjon hozzá egy szakasztopen-telemetry a runtime.telemetry alá a konfigurációs fájlban.

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

Command-line

OpenTelemetry konfigurálása a dab add-telemetry használatával.

  • --otel-enabled
  • --otel-endpoint
  • --otel-protocol
  • --otel-service-name
  • --otel-headers

Example

dab add-telemetry \
    -c dab-config.json \
    --otel-enabled true \
    --otel-endpoint "http://localhost:4317" \
    --otel-protocol "grpc" \
    --otel-service-name "dab"

Eredményként kapott konfiguráció

Megjegyzés:

Az OpenTelemetry beállításai nem érhetők el a következőn dab configure: .

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

Exportálás és vizualizáció

A telemetriát a .NET OpenTelemetry SDK-val exportálja a konfigurált háttérrendszerbe, például az Azure Monitorba vagy a Jaegerbe. Győződjön meg arról, hogy a háttérrendszer fut és elérhető a megadott endpointhelyen. A vizualizációhoz bármilyen OpenTelemetry-kompatibilis háttérrendszer használható.

Az OpenTelemetria SDK szabályozza az exportálás időzítését. Nyomkövetési adatokat exportál, amikor a tevékenységek befejeződnek. Metrikákat exportál az SDK által konfigurált rendszeres időközönként. Ha nem állít be időközt, az SDK az alapértelmezett értéket használja.

Megjegyzés:

A rövid élettartamú konténerek, amelyek gyorsan leállnak, kiléphetnek az export befejezése előtt. Engedélyezze a kecses leállítási időszakot, és kerülje az agresszív leállítást, hogy a függőben lévő telemetriai adatok kiüríthetők legyenek.

Végrehajtási megjegyzések

  • A nyomkövetések és a metrikák az összes REST-, GraphQL-, MCP- és adatbázis-műveletet lefedik
  • A köztes szoftver és a hibakezelők telemetriát is bocsátanak ki
  • A környezet propagálása kérésekkel történik