OpenClaw · Web · Observabilité · Passerelle · 2026

2026 OpenClaw, observabilité appliquée :
panneau tokens, état d’auth modèle et résumé E2E sur passerelle Mac distant

21 avril 2026 Automatisation Web / garde-fous release 11 min de lecture

Public : OpenClaw sur Mac distant avec fumée Playwright quand les tokens bougent mais l’auth modèle semble figée. Étapes shell, webhook générique, champs qui séparent passerelle, Bearer et UI. Slug : 2026-openclaw-token-auth-e2e-summary-remote-mac.html. Suite : /v1/models, hook Vercel, traces HAR.

Les traces DOM masquent souvent la pression passerelle et les Bearer révoqués. Le NDJSON par phase montre si les tokens bougent pour des sondes ou si l’auth se répète avant la première assertion, ce qui rend la fumée front « lisible » même sans tableau éditeur.

Signaux. UI verte mais auth_state=degraded. prompt_tokens monte avant le contexte. Décalage d’horloge fausse l’expiration JWT.

Matrice de décision rapide.

Source d’évidence Idéal pour Angle mort
Console d’usage fournisseur Litiges de facturation mensuelle. Délai, pas de OPENCLAW_RUN_ID.
NDJSON passerelle + webhook récap Tri par déploiement idempotent. Exige masquage des hôtes.
Seul report.json Playwright Sélecteurs instables et liens de trace. Pas de politique modèle ni quota passerelle.

Câblage reproductible en cinq temps.

  1. Exporter OPENCLAW_RUN_ID, GIT_SHA, BASE_URL et l’alias attendu par le profil de fumée.
  2. Appendre une ligne NDJSON par phase dans .openclaw/reports/gateway.ndjson avec phase, duration_ms, prompt_tokens, completion_tokens, auth_state et http_status issus du même processus qui appelle la passerelle.
  3. Lancer npx playwright test avec --reporter=json puis copier report.json à côté du NDJSON.
  4. Fusionner les artefacts vers smoke_summary/v1 via Node ou jq sans secrets sur stdout.
  5. Poster le JSON fusionné vers votre webhook d’équipe avec Idempotency-Key: ${GIT_SHA}:${OPENCLAW_RUN_ID}:smoke_summary pour effondrer les hooks dupliqués.

Gabarit générique. Versionnez le schéma pour stabiliser les parseurs de chat.

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

01 Passerelle : points de contrôle

Sur le Mac loué avant de blâmer Playwright. Prolonge la checklist /v1/models avec des champs, pas des clics.

  • Dérive d’horloge. Synchronisez le temps et journalisez l’écart en millisecondes à côté de auth_state.
  • Portée du jeton. Alignez OPENCLAW_GATEWAY_TOKEN sur le rôle runbook le moins privilégié possible.
  • Sessions collantes. Logguez upstream_pod ou x-request-id si workers multiples.
  • Alias de modèle. Interrogez /v1/models via le même ingress que la fumée puis différenciez les alias par rapport au dépôt.
  • Sémantique dégradée. Documentez si auth_state=degraded autorise encore des sondes lecture seule.
Fait vérifiable

Chaque ligne passerelle doit porter OPENCLAW_RUN_ID pour permettre un seul grep croisé entre NDJSON et rapports.

Fait vérifiable

prompt_tokens haut et completion_tokens plat : prévols ou relances avant assertions.

Fait vérifiable

Tronquez stderr à quatre kilo-octets dans le chat ; joignez des artefacts chiffrés plutôt que des jetons bruts.

02 Relier les champs du rapport Playwright

Clés stables depuis report.json vers le webhook. Réutilisez la normalisation des résumés métriques build.

Source Playwright Champ résumé suggéré Utilité pour le tri passerelle
stats.expected versus stats.unexpected playwright.assertion_delta Sépare UI flake et infra si tokens montent encore.
suites[].specs[].tests[].results[].workerIndex playwright.worker_index Relie workers et pics latence passerelle.
errors[].message playwright.first_error Ligne lisible plus lien trace sans parser tout le JSON.

Si timedOut, joignez testTimeout et gateway.last_latency_ms. Latence basse et auth_state=blocked : renouvelez les jetons avant le DOM.

03 Seuils d’alerte

Alertez quand plusieurs signaux divergent ; un seul compteur fatigue staging.

  • Pente tokens. prompt_tokens cinq minutes au-delà du double de la médiane du profil avec playwright.status=passed.
  • Churn d’auth. Plus de trois bascules de auth_state par OPENCLAW_RUN_ID sans fenêtre de rotation planifiée.
  • Horloge murale. Durée Playwright supérieure de moitié à la baseline alors que la latence passerelle reste stable.

Baselines dans la note Web ops monitoring pour comparer les Mac loués.

04 FAQ

Les champs observables remplacent-ils la lecture manuelle des traces ?

Non : ils orientent le tri ; les traces suivent après failed_phase.

Comment partager le contexte sans compte éditeur ?

JSON smoke_summary/v1, hachages d’artefacts, liens MacWww ; pas d’URL nécessitant session fournisseur.

Que faire si le webhook récap échoue après Playwright vert ?

Voir failed_phase=summary_post, TLS sortant, relance avec la même clé d’idempotence.

OpenClaw · Fumée Web · sans login

Poursuivre sans console : tutoriels OpenClaw et pages d’aide

Accueil, tarifs, aide sans login. Puis fumée pré-déploiement, triage E2E, smoke Web sur Mac, index blog.

Observabilité Auth modèle Playwright
Louer un Mac — QA OpenClaw