2026 OpenClaw observabilité production : échelle JSONL, sondes gateway et contrôles token quotidiens (Mac cloud 24/7)
Après premier déploiement et port 18789, la prod reste souvent floue pour les équipes qui font tourner OpenClaw en continu sur Mac cloud ou serveur. Cet article répond à trois questions : une UI verte n’équivaut pas à une sonde RPC saine, l’absence de lignes ERROR ne prouve pas la livraison dans le canal, les tokens et les spawn peuvent se dégrader silencieusement jusqu’à ce que la facturation ou les tickets réagissent. Vous y trouverez l’échelle de commandes alignée sur le troubleshooting officiel, un ordre de lecture JSONL pratique pour les builds 2026, un parcours d’acceptation 15 minutes après upgrade (auth, bind, remote/local) et des seuils quotidiens « exécutables par un humain » sans Prometheus. En parallèle, lisez échecs silencieux et heartbeat ainsi que sessions_spawn pour ne pas confondre observabilité et triage ponctuel.
Sommaire
1. Trois douleurs : pourquoi « pas d’erreurs » ne suffit pas
OpenClaw enchaîne la config CLI, le processus gateway, WebSocket/RPC, les plugins de canaux, les fournisseurs de modèles et les sessions enfants comme sessions_spawn. Beaucoup d’installations Mac cloud ou Linux VPS s’arrêtent à « processus up + dashboard chargé » et n’obtiennent pas de preuve de santé par couches. Mauvais triage typique : problème canal attribué au modèle, dérive d’URL en gateway.mode=remote prise pour « OpenClaw cassé », permissions Docker à moitié correctes vues comme flakiness aléatoire. Après upgrade (migration OPENCLAW_*), une zone grise « ça a l’air bon, c’est à moitié configuré » est quasi systématique.
- Sonde vs UI :
Runtime: runningne remplace pasRPC probe: ok. En remote, la CLI peut viser la mauvaise amont pendant qu’un service local tourne à vide—souvent des timeouts plutôt que des ERROR criants. - Discipline JSONL : les logs structurés gagnent avec un ordre de lecture fixe ; sinon on noie les heartbeats INFO et on rate une ligne
rate_limitouspawn_rejected. Filtrer d’abord par niveau et fenêtre temporelle, puis corréler par identifiant de requête. - Coût et silence des spawn : tokens et sous-agents montent pendant que l’UX semble juste « un peu lente »—ce n’est pas le même axe que les droits sandbox du guide sessions_spawn ; il faut des baselines et des seuils simples.
Sous Docker, exécutez openclaw doctor dans le conteneur et sur l’hôte ; un écart suggère une config en deux têtes—voir guide Docker / doctor.
2. Triage des signaux : bruit vs priorité absolue
Imprimez ce tableau à côté de la feuille d’astreinte. P0 fige le déploiement, P1 sépare canal/spawn, P2 regarde l’horloge et l’environnement.
| Signal | Prio | Action | À éviter |
|---|---|---|---|
RPC probe: failed après changement bind/auth | P0 | Geler le rollout ; diff gateway.mode, bind, token | Réinstaller npm global tout de suite |
Série 429 côté fournisseur | P0 | Réduire la concurrence ; basculer le long contexte ; backoff | Retries aveugles |
| Probe canal en échec, gateway running | P1 | channels status --probe ; scopes bot / URL | Jouer sur la température |
| Spawn accepté mais pas d’artefacts enfant (patterns connus) | P1 | Notes de version ; cadence de redémarrage ; article spawn | Accuser le « modèle paresseux » |
| Un seul heartbeat INFO manquant | P2 | Vérifier NTP / dérive horaire | Réécriture complète de nuit |
Croisez les horodatages de rotation de token avec les échecs de probe grâce au durcissement des tokens gateway.
3. Cinq étapes et plus : échelle, upgrade, contrôles quotidiens
- Échelle de commandes (quotidien ou pré-release) :
openclaw status→openclaw gateway status(Runtime + RPC probe) →openclaw doctor→openclaw channels status --probe. Ne pas réordonner. En remote, vérifiez quegateway.remote.urlcorrespond à la cible CLI et à l’environnement launchd/systemd. - Suivi JSONL :
openclaw logs --follow(ou tail RPC supporté) ; filtrerwarn/errorou mots-clés429,unauthorized,spawn. Pour les symptômes UX silencieux, checklist heartbeat / Cron. - 15 minutes post-upgrade : version conforme aux notes ; redémarrage service selon doc ; doctor propre ; message sonde sur un canal ; spawn/cron minimal avec une ligne de log ; diff de config surtout auth/bind/SecretRef. Échec sur une étape → rollback d’abord (vue d’ensemble upgrade).
- Seuils token : deux règles humaines, par ex. tokens journaliers +80 % vs médiane 7 jours, ou taux d’échec spawn >5 % sur une heure—à sortir en stand-up sans stack métrique complète.
- Mac cloud 24/7 :
StandardOutPath/StandardErrorPathdu plist alignés sur les répertoires de logs du gateway ; même famille que la dérive d’env launchd (« SSH OK, reboot KO »). - Docker optionnel : exécuter l’étape 1 de l’échelle sur hôte et conteneur ; config montée comme source de vérité.
jq, standardisez grep -E 'warn|error|429|unauthorized|spawn' dans le runbook pour des passations stables.4. Notes techniques auditables
Documentez les éléments suivants pour l’EEAT et les post-mortems :
- Définition RPC probe selon la doc éditeur, en un paragraphe.
- Schéma JSONL versionné à chaque upgrade avec les release notes.
- Politique de backoff 429 avec plafond de retries traçable (erreurs courantes).
- Spawn : plafond de parallélisme et fenêtre de taux d’échec (ex. heure glissante).
- Rotation token gateway vs tableau moindre privilège.
- NTP : borne de dérive horaire acceptable pour les fenêtres d’auth WebSocket.
5. Du simple stdout à une base d’agents sur Mac cloud
Faire tourner OpenClaw sur des postes Linux ou Windows ad hoc avec collecte de logs improvisée fonctionne un temps, puis apparaissent la dérive d’environnement, des chemins de logs peu fiables sous lancement non supervisé et des upgrades multi-instance plus difficiles à rejouer. Un beau tableau de bord sans échelle ni contrat de champs JSONL laisse les incidents non reproductibles.
Héberger le gateway de production sur une Mac cloud élastique avec SSH et launchd de premier ordre permet de coder échelle, champs JSONL et destinations de logs plist dans un seul runbook, puis de le raccorder au déploiement M4 en 5 minutes. Pour des agents 24/7 auditables et récupérables, louer des nœuds Mac VPSMAC M4 réduit en pratique les états inconnus par rapport au mélange de stations temporaires : l’observabilité, c’est moins d’inconnus, pas plus d’écrans.
6. FAQ
Pas de jq / JSONL pour commencer ?
Oui. Fixez d’abord les mots-clés grep et l’échelle en quatre étapes ; structurez ensuite.
Remote vs local ?
En remote, URL CLI, token et environnement du service doivent correspondre ; séparez accessibilité, auth et mauvaise instance.
Lien avec l’article sessions_spawn ?
Là-bas le sandbox ; ici santé quotidienne, upgrades et seuils de coût—gardez les deux ouverts en incident.