2026 OpenClaw, observabilité appliquée :
panneau tokens, état d’auth modèle et résumé E2E sur passerelle Mac distant
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.
- Exporter
OPENCLAW_RUN_ID,GIT_SHA,BASE_URLet l’alias attendu par le profil de fumée. - Appendre une ligne NDJSON par phase dans
.openclaw/reports/gateway.ndjsonavecphase,duration_ms,prompt_tokens,completion_tokens,auth_stateethttp_statusissus du même processus qui appelle la passerelle. - Lancer
npx playwright testavec--reporter=jsonpuis copierreport.jsonà côté du NDJSON. - Fusionner les artefacts vers
smoke_summary/v1via Node oujqsans secrets sur stdout. - Poster le JSON fusionné vers votre webhook d’équipe avec
Idempotency-Key: ${GIT_SHA}:${OPENCLAW_RUN_ID}:smoke_summarypour 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_TOKENsur le rôle runbook le moins privilégié possible. - Sessions collantes. Logguez
upstream_podoux-request-idsi workers multiples. - Alias de modèle. Interrogez
/v1/modelsvia 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=degradedautorise encore des sondes lecture seule.
Chaque ligne passerelle doit porter OPENCLAW_RUN_ID pour permettre un seul grep croisé entre NDJSON et rapports.
prompt_tokens haut et completion_tokens plat : prévols ou relances avant assertions.
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_tokenscinq minutes au-delà du double de la médiane du profil avecplaywright.status=passed. - Churn d’auth. Plus de trois bascules de
auth_stateparOPENCLAW_RUN_IDsans 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.
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.