コンテンツにスキップ

ローカルのGrafanaモニタリング

提供されているDocker Composeプロファイルを使用すると、GrafanaダッシュボードでローカルのTomoriBotインスタンスを監視できます。

お使いのマシンでTomoriBotとGrafanaを一緒に起動するには、以下のコマンドを実行します。

Terminal window
docker compose -f docker-compose.yaml -f docker/compose.monitor.yaml up -d

これにより、以下の処理が行われます。

  • PostgreSQLを使用してTomoriBotを起動(DBはポート15432)
  • 自動設定されたPostgreSQLデータソースを使用してポート3000でGrafanaを起動
  • TomoriBot Overview ダッシュボードをプロビジョニング
  • 同じDockerネットワーク上で両方のサービスを接続

http://localhost:3000 でGrafanaにアクセスします。

  • Username: admin
  • Password: .envGRAFANA_PASSWORD で設定(未設定の場合はデフォルトで admin

プロビジョニング済みダッシュボード

Section titled “プロビジョニング済みダッシュボード”

TomoriBot Overview は自動的に表示され、設定は不要です。パネルの内容は、プロセスメモリ、キャッシュのエントリ数、時間あたりのエラー数、モデル別のトークン消費、時間帯別のアクティビティ、よく使われるコマンド、ユーザーのロケール、表情クラウド、使用中のプリセットとモデルです。

すべてのパネルは、どの環境にも存在するテーブルのみを読み取ります。そのため、同じダッシュボードがセルフホスト環境でもクラウド環境でも動作します。

次のパネルは、データ元を有効にするまで空のままです。

パネル必要な設定
Process Memory、Cache Entriesmetric_samples の行。CACHE_METRICS_INTERVAL_MS ごとに書き込まれます。コレクタは RUN_ENV=production のときのみ動作するため、開発環境では何も表示されません。
Errors per Hour by TypeERROR_DB_LOGGING_ENABLED(既定で有効)。障害が疑われる場面でグラフが平坦な場合、エラーが止まったのではなく、リポジトリのサーキットブレーカーが開いている可能性もあります。
Host Memory and Swap Tiers、Host Pressure (PSI) and Swap-In RateLinuxホストが必要です。これらは /proc/meminfo/proc/pressure/*/proc/swaps/sys/block/zram0 を読み取るため、macOSとWindowsでは空のままです。zramの系列にはzramスワップデバイスも必要ですが、デバイスがないホストでもメモリとPSIは記録されます。

ダッシュボードはUI上で編集できます。これは障害対応時に重要です。ただし編集内容はコンテナ内にのみ保存され、次回の再起動時にディスクの内容で置き換えられます。変更を残すには、ダッシュボードのJSONをエクスポートして docker/grafana/dashboards/ にコミットしてください。

独自のダッシュボードを追加する場合も、同じディレクトリにJSONファイルを置きます。データソースは固定のuid tomoribot-postgres で参照してください。データソースにuidが指定されていない場合、Grafanaはランダムなuidを割り当てます。ランダムなuidを指すダッシュボードは、エラーにならず空のパネルとして表示されます。