Skip to content

Diagnose API

ENTWURF — Nur für interne Entwicklerteams

Diese API-Referenz ist für interne Entwicklerteams bestimmt.

Übersicht

Was es ist: Die Diagnose-API bietet Profiling- und Laufzeitstatistik-Endpunkte für Leistungsanalyse und Fehlerbehebung. Der primäre Endpunkt erzeugt Go-pprof-Profile von laufenden Grid-Modulen.

Quelle: src/grid/client/rest.go

Authentifizierung

Alle Endpunkte erfordern JWT-Cookie- oder API-Token-Authentifizierung.

Endpunkte

MethodePfadBeschreibungAuthentifizierung erforderlich
POST/internal/v1/pprofEinen Profiling-Snapshot für ein Grid-Modul erzeugenJWT + API-Token

POST /internal/v1/pprof

Ein Go-pprof-Profil von einem laufenden Grid-Modul erzeugen. Die Antwort ist eine gzip-komprimierte binäre Profildatei, die mit Standard-Go-Profiling-Tools analysiert werden kann.

Anfrage:

http
POST /internal/v1/pprof
Content-Type: application/json
Authorization: Bearer <token>
json
{
  "client": "node-uuid",
  "module": "grid.client",
  "profile": "cpu"
}

Anfragefelder:

FeldTypErforderlichBeschreibung
clientstringJaGrid-Client-Knoten-ID für das Profiling
modulestringNeinModulname (Standard: grid.client)
profilestringJaZu erfassender Profiltyp

Verfügbare Profiltypen:

ProfilBeschreibung
cpuCPU-Nutzungsprofil (30-Sekunden-Stichprobe)
allocsSpeicherallokationsprofil
heapHeap-Speicherprofil
goroutineGoroutine-Stack-Traces
blockBlockierungsprofil
mutexMutex-Konfliktprofil
threadcreateThread-Erstellungsprofil

Antwort (200): Binäre gzip-komprimierte pprof-Daten.

Antwortheader:

HeaderWert
Content-Dispositionattachment; filename=hydden-{profile}-{timestamp}.out
Content-Typeapplication/octet-stream

Verwendung mit Go-Tools:

bash
# Profil herunterladen
curl -X POST "https://portal/internal/v1/pprof" \
  -H "Authorization: Bearer <token>" \
  -d '{"client":"node-uuid","profile":"cpu"}' \
  -o cpu.out

# Mit pprof analysieren
go tool pprof cpu.out

Grid-Laufzeitstatistiken (nur gRPC)

Das Grid-Modul stellt auch Laufzeitstatistiken über gRPC bereit (keine REST-Oberfläche). Diese sind in src/grid/api/grid_api.proto definiert:

Verfügbar über gRPC:

NachrichtFelderBeschreibung
StatsnID, disk, version, error, runtime, component, uptimeKnoten-Laufzeitstatistiken
DiskStatstotal, freeFestplattennutzungsstatistiken
Runtimeversion, maxProcs, arch, oS, envGo-Laufzeitinformationen

Diese Statistiken werden intern von der Grid-Cluster-Verwaltungsschicht verwendet und sind nicht über REST verfügbar.


Fehlerantworten

StatusBeschreibung
400Ungültiger Anfragekörper oder unbekannter Profiltyp
403Authentifizierung fehlgeschlagen oder unzureichende Berechtigungen
404Zielknoten nicht gefunden oder offline
500Profiling fehlgeschlagen (Zielmodul nicht erreichbar)

Verwandte Themen

Hydden Documentation and Training Hub