デプロイガイド 2026-04-13 10 分

2026年 OpenClaw Gateway Prometheus 指標と Grafana 看板:リモート物理 Mac 7×24 で /metrics 取得、アラート閾値と典型誤報の切り分け(コピペ scrape・パネル PromQL+FAQ)

プラットフォーム/SRE が リモート物理 Mac 上の OpenClaw Gateway を運用すると、SSH では健全に見えるのに Prometheus だけ up=0、あるいは Grafana で深夜の「毛並みチャート」がページを飛ばす、といった齟齬が起きがちです。本稿は スクレイプ位相とアラート寛容度の意思決定マトリクス7 ステップの再現 Runbook、コピペ可能な scrape/PromQL/アラート断片、および FAQ をまとめます。

2026年 リモート物理 Mac 上の OpenClaw Gateway と Prometheus/Grafana 可観測性

1. はじめに:メトリクス名のプレフィックス

本稿は、レンタル物理 Mac(例:ZoneMac ノード)で OpenClaw を動かすチーム向けです。HTTP レイテンシ、エラー率、プロセス健全性を、SSH 越しの curl だけでなく、クエリ可能で監査可能な時系列として残すことが目的です。

メトリクス名は OpenClaw のバージョンとランタイム(Node.js の prom-client、OpenTelemetry、ゲートウェイ内蔵統計など)で変わります。以下の PromQL は 典型的な HTTP サーバ指標http_request_duration_seconds_*http_requests_total など)を想定しています。実機で curl -s localhost:<port>/metrics | grep -E 'http_|process_' を実行し、クエリのラベル名を実測に合わせて置き換えてください。

インストールとプロセス基線の固定が先なら OpenClaw 全体インストールガイド:Mac/Windows/Linux(2026)、JSONL や定刻バックアップとセットで可観測性を敷くなら 2026年 OpenClaw Gateway の定時バックアップと可観測性:Cron、openclaw backup、JSONL ログをリモート物理 Mac 7×24 で再現する Runbook と併読すると、ログとメトリクスの相関が取りやすくなります。

2. つまずきポイント

  1. 制約:バインドアドレスと Prometheus の設置場所。 ゲートウェイが 127.0.0.1 のみなのに Prometheus がコンテナや別ホストにあると取得失敗(up=0)になり、Mac 上のローカル curl だけは成功し続けます。
  2. 隠れコスト:高基数ラベルと短い scrape_interval。 生パスや API キー断片をラベルに入れると TSDB の基数が爆発します。1 秒スクレイプを Wi‑Fi やトンネル越しにすると、ジッターが Grafana の「毛」チャートになります。
  3. 安定性と誤報:macOS 省電力とデプロイ窓。 ディスクスリープ、ディスプレイオフ、ホットリロードで p95 が一瞬だけ膨らんでも、for: 0s のアラートはオンデマンドを夜中に起こします。

3. スクレイプとアラートの意思決定マトリクス

本番投入前に、「どのネットワーク名前空間から誰がスクレイプするか」と「アラートが業務時間を尊重するか」を揃えてください。

観点 ローカル Prometheus/vmagent 集中型リモート Prometheus
ネットワーク経路 ゲートウェイと同一マシンまたはブリッジなら 127.0.0.1 が使いやすい LAN で待ち受けるか、リバプロ/Tailscale で読み取り専用公開が必要
運用負荷 ノードごとに設定。アップグレードでファイルが分散 ルールとダッシュボードは一箇所。到達性の安定が前提
向き先 単一テナント、強い分離、最初の可観測性ループ マルチリージョンプールと統一 SLO/アラートルーティング
アラートの型 向く場面 主なリスク
for: 2〜5m + rate 系 HTTP 5xx、タイムアウト、エラー率上昇 SLA が許すなら、検知が数分遅れる
for: 0 + up プローブ プロセス消失、ポート非応答 ローリング再起動中はノイズ(サイレンスまたは統合が必要)
時間帯サイレンス 既知のメンテ、バックアップ、GC スパイク 置き忘れると本番障害が隠れる

4. 7 ステップ Runbook(リモート物理 Mac)

  1. エンドポイントとバインドの確定。 ゲートウェイ設定でメトリクスを有効化し、metrics_path(多くは /metrics)と待ち受け IP を確認。リモートから取るなら 127.0.0.1 専用は避け、スクレイパと名前空間を揃える。
  2. ローカルスモーク。 curl -sS http://127.0.0.1:<port>/metrics | head -n 40 で HELP/TYPE と HTTP/process 系を確認。
  3. スクレイパの置き場所。 単一ノード PoC は同機 Prometheus。多数ノードは vmagent の remote-write か、ファイアウォール許可済みの集中 Prometheus。
  4. scrape 設定(下記)。 scrape_interval: 15s〜30s、妥当な scrape_timeout、安定した instance relabel。
  5. Grafana 接続。 データソース登録後、全体 RPS、p95、5xx 比率、up、スクレイプ所要をパネル化。
  6. アラートとルーティング。 エラー率と raw upfor を分ける。デプロイ中は Alertmanager サイレンスや CI フラグで抑制。
  7. macOS 7×24 設定の整合。 有線推奨、ディスクスリープ無効、NTP/タイムゾーン固定。スクレイプは成功しているのにアプリが 500 を返すときは、Prometheus ではなくアプリログを先に見る。

5. コピペ:scrape・PromQL・アラート

5.1 Prometheus scrape_configs 断片

targets とポートを環境に合わせ替えてください。リバプロ背後では /metrics をキャッシュさせず通過させます。

scrape_configs:
  - job_name: openclaw-gateway
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: /metrics
    static_configs:
      - targets:
          - '127.0.0.1:18789'
        labels:
          env: prod
          role: gateway
    # relabel_configs:
    #   - source_labels: [__address__]
    #     target_label: instance

5.2 Grafana パネル用クエリ(実機のメトリクス名に合わせて置換)

  • RPS: sum(rate(http_requests_total{job="openclaw-gateway"}[5m]))
  • p95 レイテンシ(ヒストグラム): histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job="openclaw-gateway"}[5m])) by (le))
  • 5xx 比率(例): sum(rate(http_requests_total{job="openclaw-gateway",status=~"5.."}[5m])) / sum(rate(http_requests_total{job="openclaw-gateway"}[5m]))
  • スクレイプ健全性: up{job="openclaw-gateway"}scrape_duration_seconds{job="openclaw-gateway"}

5.3 アラートルール(Prometheus rule_files

groups:
  - name: openclaw_gateway
    rules:
      - alert: GatewayScrapeDown
        expr: up{job="openclaw-gateway"} == 0
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "OpenClaw メトリクスエンドポイントに到達できない"
      - alert: GatewayHigh5xxRatio
        expr: sum(rate(http_requests_total{job="openclaw-gateway",status=~"5.."}[5m])) / sum(rate(http_requests_total{job="openclaw-gateway"}[5m])) > 0.05
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "5xx 比率 > 5%(ラベルスキーマに合わせて調整)"

status の代わりに codeoutcome を使うスキーマならセレクタを書き換え、Grafana Explore で空ベクトルにならないことを確認してからアラートに昇格させてください。

6. 典型誤報の切り分け

症状 まず疑うもの 緩和
断続的な up=0 トンネル再接続、Wi‑Fi 省電力、ループバック専用バインド 有線化、バインド修正、トンネル依存ジョブは for を延長
夜間の p95 スパイク ディスクスリープ、Time Machine、Spotlight ディスクスリープ無効、バックアップ移動、アラート式を「連続 2 ウィンドウ」にする
デプロイ中の 5xx アラート ローリング再起動、readiness 未達 CI 連動サイレンス、readiness とメトリクス用ジョブの分離
TSDB メモリ増大 パスやユーザー ID をラベル化 アプリ側で基数削減、metric_relabel_configs でドロップ

7. 引用しやすい閾値

  • scrape_interval: 本番は 15s を既定(ゲートウェイ尾部より短くしすぎない)。大陸間リンクは 30s から。
  • scrape_timeout: scrape_interval の約 2/3 以下。トンネル経路は 10s から試す。
  • アラート for: 可用性系は 2m、比率系は 5m を起点に、SLO バーンレートへ合わせて締める。

8. FAQ

Q: /metrics の前に Basic 認証を置くべきですか?

A: 信頼できない経路やマルチテナント網を跨ぐなら有効です。可能なら プライベート網+mTLS または SSH トンネル を優先し、エッジでの認証複雑化は最小限にしてください。

Q: macOS のタイムゾーンは PromQL に影響しますか?

A: Prometheus は UTC で保持します。表示は Grafana のタイムゾーン設定に従います。ローカル時刻のログと突き合わせるときは、どちらか一方に統一しないと「アラートがログより先」の錯覚が起きます。

Q: ホストメトリクス用に node_exporter を足してよいですか?

A: はい。job_name: node を別ジョブにし、ゲートウェイ 5xx とディスク逼迫・CPU 飽和を突き合わせられます。

9. まとめとノード選定

OpenClaw Gateway の HTTP/プロセス指標が Prometheus と Grafana に載ると、24/7 物理ノード上の障害は「SSH で当てずっぽう」から、up・エラー率・p95 が同時に動いたかの確認へ移れます。繰り返し出るのは バインドとスクレイパ経路の一致アラートへの formacOS 省電力とデプロイ窓を SLO ノイズから切り離すこと です。

ゲートウェイと可観測性スタックの組み合わせは macOS と相性がよく、launchd・ログ・Unix ツールが一つの枠組みに収まります。Apple Silicon はアイドル電力が非常に低く、常時オンのゲートウェイ向きです。同価格帯の小型 x86 箱と比べても 消費電力と安定性 で有利になりやすく、Gatekeeper・SIP・FileVault による資格情報とトンネル端の保護は、リモートゲートウェイ運用の関心事と一致します。

本稿の scrape 設定とダッシュボードを、静音で効率的な 24/7 向けハード 上ですぐ回したいなら、Mac mini M4 は 2026 年時点でもコストパフォーマンスの良い入口です。ZoneMac のリモート物理 Mac でノードを確保し、ゲートウェイ指標を本番ベースラインに一度で載せられます。今が手に取りやすいタイミングです。

リモート Mac ノード

OpenClaw と Prometheus を実機 Mac で端到端に載せる?

ZoneMac は 7×24 ゲートウェイと可観測性ロールアウト向けのマルチリージョン物理 Mac を提供しています。本稿と同じ受け入れ基準でオンデマンド容量を確保できます。

従量課金 物理分離 監査可能
macOSクラウドレンタル 期間限定特別価格
今すぐ購入