2026 OpenClaw Observability in der Praxis:
Token-Panel, Modell-Auth-Karte und fehlgeschlagene E2E-Smoke-Summary am Remote-Mac-Gateway verketten
Zielgruppe: Teams, die OpenClaw auf einem gemieteten Remote Mac mit Playwright-Frontend-Smoke betreiben und dabei erleben, dass Token-Zähler steigen, die Modell-Auth-Karte aber hängen bleibt. Dieses Web-plus-OpenClaw-Tutorial liefert reproduzierbare Shell-Schritte, eine generische Webhook-Summary ohne Anbieter-Konsole sowie Felder, die Auth, Gateway-Last und UI-Flakes trennen. Slug: 2026-openclaw-token-auth-e2e-summary-remote-mac.html. Vertiefung: /v1/models-Abgleich, Deploy-Hook-Smoke, Trace- und HAR-Summaries.
Traces helfen bei DOM-Regressionen, verschleiern aber Gateway-Backpressure und abgelaufene Bearer-Scopes. Phasenweise OpenClaw-Felder zeigen, ob Tokens für Healthchecks laufen oder Auth-Retries festfahren.
Typische Schmerzpunkte. Grüne Shards bei auth_state=degraded. Prompt-Tokens steigen, bevor Browser starten. Zeitversatz lässt JWT-Ablauf und Issuer-Angaben auseinanderlaufen.
Entscheidungsmatrix (Beobachtbarkeit).
| Quelle | Ideal für | Blindstelle |
|---|---|---|
| Anbieter-Usage-Konsole | Monatliche Abrechnungsstreitigkeiten. | Verzögerte Aggregation, kein OPENCLAW_RUN_ID. |
| Gateway-NDJSON plus generischer Webhook | Deploy-Triage mit idempotentem Digest. | Hostname-Redaktion Pflicht. |
| Nur Playwright report.json | Flaky Selektoren und Trace-Links. | Kein Modell-Richtliniensignal. |
Reproduzierbare Verdrahtung in fünf Schritten.
OPENCLAW_RUN_ID,GIT_SHA,BASE_URLund den erwarteten Modell-Alias exportieren, den das Smoke-Profil voraussetzt.- Pro Phase eine NDJSON-Zeile nach
.openclaw/reports/gateway.ndjsonanhängen mitphase,duration_ms,prompt_tokens,completion_tokens,auth_stateundhttp_statusaus demselben Prozess, der das Gateway aufruft. npx playwright testmit--reporter=jsonausführen undreport.jsonneben die NDJSON-Datei legen.- Ein kleines jq- oder Node-Skript ausführen, das beide Artefakte zu
smoke_summary/v1verschmilzt und stdout ohne Geheimnisse hält. - Die zusammengeführte JSON-Struktur per POST an den Team-Webhook senden mit
Idempotency-Key: ${GIT_SHA}:${OPENCLAW_RUN_ID}:smoke_summary, damit doppelte Hooks zusammenfallen.
Generisches Summary-Template (Versioniert). Schema festlegen, damit Chat-Parser stabil bleiben — kein Login in eine proprietäre Konsole nötig.
{
"schema": "smoke_summary/v1",
"openclaw_run_id": "run_…",
"git_sha": "abc123…",
"base_url": "https://staging.example",
"gateway": {
"auth_state": "ok|degraded|blocked",
"prompt_tokens": 0,
"completion_tokens": 0,
"last_http_status": 200,
"last_latency_ms": 0
},
"playwright": {
"status": "passed|failed|timedOut",
"failed_spec": "tests/smoke/checkout.spec.ts",
"shard": "webkit",
"exit_code": 1
},
"failed_phase": "gateway_preflight|playwright_smoke|summary_post"
}
Die beobachtbaren Gateway-Felder helfen der Frontend-Smoke-Triage, weil sie Preflight von Browserassertionen trennen: steigen prompt_tokens bei flachen completion_tokens, liegt oft ein Auth- oder Routing-Problem vor dem ersten sichtbaren UI-Schritt.
Jede Gateway-Zeile mit derselben OPENCLAW_RUN_ID wie Playwright verknüpfen — ein grep über NDJSON und Reports genügt.
Vier Kilobyte stderr in Chat kappen; Artefakt-Links statt Rohschlüssel liefern.
Webhook-Text nur aus Feldern speisen, die Ingress und Runner ohne Dashboard exportieren.
01 Gateway-Checkliste
Vor dem Playwright-Verdacht auf dem Remote Mac ausführen; ergänzt die Modell-Smoke-Checkliste, fokussiert aber auf Log-Felder statt auf Klicks.
- Zeitversatz: Systemzeit synchronisieren und Offset-Millisekunden neben
auth_stateprotokollieren. - Token-Scope:
OPENCLAW_GATEWAY_TOKENan die kleinste Runbook-Rolle koppeln. - Sticky Sessions:
upstream_pododer zurückgespiegeltesx-request-idloggen, wenn Worker ausfanben. - Aliase:
/v1/modelsper demselben Ingress curlen wie der Smoke-Runner; Abweichungen zur Repo-Konfig dokumentieren. - Degraded-Semantik: festhalten, ob
auth_state=degradednur-Lese-Probes noch erlaubt.
| Kennzahl | Schwellenidee | Interpretation |
|---|---|---|
last_latency_ms |
Zwei Sigma über sieben Tage Median | Upstream-Engpass vor Selector-Tuning prüfen. |
prompt_tokens pro Minute |
Doppeltes Profil-Median | Retry-Sturm oder eingeschaltete Embeddings vermuten. |
auth_state Wechsel |
Mehr als drei Flips pro Run ohne Rotation | Secrets-Drift oder Load-Balancer-Mischbetrieb. |
02 Anknüpfung an Playwright-Report-Felder
Stabile Schlüssel aus report.json in die Summary übernehmen; Normalisierung analog Build-Metriken-PR-Summaries wiederverwenden.
| Playwright-Quelle | Summary-Feld | Nutzen für Gateway-Triage |
|---|---|---|
stats.expected vs. stats.unexpected |
playwright.assertion_delta |
UI-Flakes von Infra trennen, wenn Tokens weiterlaufen. |
suites[].specs[].tests[].results[].workerIndex |
playwright.worker_index |
Shards mit Gateway-Spitzen korrelieren. |
errors[].message |
playwright.first_error |
Chat-lesbare Zeile plus Trace-Link. |
Bei timedOut zusätzlich testTimeout und gateway.last_latency_ms ausliefern. Niedrige Latenz bei blockierter Auth bedeutet: Credentials erneuern, bevor DOM-Archäologie startet.
03 Schwellenwert-Alarme
Alarme auslösen, wenn Signale widersprechen; einzelne Kennzahlen ohne Kontext ermüden Staging-Teams.
- Token-Steigung: Fünf-Minuten-Wachstum von
prompt_tokensüber dem doppelten Median des Profils, währendplaywright.statuspassed meldet. - Auth-Churn: Mehr als drei
auth_state-Wechsel proOPENCLAW_RUN_IDohne geplantes Secret-Rotation-Fenster. - Wandzeit: Playwright-Dauer mehr als fünfzig Prozent über Baseline bei flacher Gateway-Latenz.
Baselines und Runbook-Notizen in Web-Ops-Monitoring-Troubleshooting pflegen; ergänzend Pre-Deploy-Web-Smoke und E2E-Regression-Log-Triage für Fehlerklassen.
04 FAQ
Warum steigen Tokenzähler, während Playwright weiter fehlschlägt?
Healthchecks und Einbettungen bewegen Tokens vor dem Checkout-Fluss. NDJSON-Phasen mit Playwright-Projektnamen joinen, nicht nur Gesamtsummen interpretieren.
Können wir jede Cloud-Konsole vermeiden?
Ja, sobald Ingress, Gateway und Runner identische Felder nach stdout und Webhook spiegeln. Konsole-only URLs weglassen.
Welcher Idempotency-Key ist für Summaries robust?
${GIT_SHA}:${OPENCLAW_RUN_ID}:${PROFILE} nutzen: Redeploys deduplizieren, zweites Profil am selben Commit bleibt möglich.
Web- und OpenClaw-Smoke lesbar halten — ohne Anbieter-Dashboard
Startseite, Preise und Hilfe sind öffentlich zugänglich. Weitere OpenClaw- und Web-Artikel: Pre-Deploy-Web-Smoke, E2E-Triage, Technik-Blog-Index — alles ohne Zwang zur Konsole.