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.

Journaux et sondes OpenClaw sur Mac cloud

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.

  1. Sonde vs UI : Runtime: running ne remplace pas RPC 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.
  2. 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_limit ou spawn_rejected. Filtrer d’abord par niveau et fenêtre temporelle, puis corréler par identifiant de requête.
  3. 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.

SignalPrioActionÀ éviter
RPC probe: failed après changement bind/authP0Geler le rollout ; diff gateway.mode, bind, tokenRéinstaller npm global tout de suite
Série 429 côté fournisseurP0Réduire la concurrence ; basculer le long contexte ; backoffRetries aveugles
Probe canal en échec, gateway runningP1channels status --probe ; scopes bot / URLJouer sur la température
Spawn accepté mais pas d’artefacts enfant (patterns connus)P1Notes de version ; cadence de redémarrage ; article spawnAccuser le « modèle paresseux »
Un seul heartbeat INFO manquantP2Vérifier NTP / dérive horaireRéé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

  1. Échelle de commandes (quotidien ou pré-release) : openclaw statusopenclaw gateway status (Runtime + RPC probe) → openclaw doctoropenclaw channels status --probe. Ne pas réordonner. En remote, vérifiez que gateway.remote.url correspond à la cible CLI et à l’environnement launchd/systemd.
  2. Suivi JSONL : openclaw logs --follow (ou tail RPC supporté) ; filtrer warn/error ou mots-clés 429, unauthorized, spawn. Pour les symptômes UX silencieux, checklist heartbeat / Cron.
  3. 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).
  4. 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.
  5. Mac cloud 24/7 : StandardOutPath/StandardErrorPath du 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 »).
  6. Docker optionnel : exécuter l’étape 1 de l’échelle sur hôte et conteneur ; config montée comme source de vérité.
openclaw logs --follow 2>/dev/null | jq -c 'select(.level=="warn" or .level=="error")'
Astuce : sans 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 :

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.