
monitor v0.33.0
Valkey および Redis データベースのリアルタイム監視とスローログ分析、異常検知、ACL監査、Prometheusメトリクスエクスポートを提供します。
BetterDB Monitor
Valkey にふさわしいモニタリングレイヤー。
BetterDB は Valkey が捨ててしまうもの - スローログ、コマンドパターン、クライアントアクティビティ、異常シグナル - を永続化します。これにより、今何が起きているかだけでなく、午前3時に何が起きたのかをデバッグできます。Valkey 8.x 向けに構築され、COMMANDLOG、CLUSTER SLOT-STATS、スレッドごとの I/O メトリクスをネイティブにサポートしています。それ以外のすべてについては Redis 6+ と互換性があります。
Website | Docker Hub | npm | Documentation | Blog
BetterDB は BetterDB Inc. によって開発されています。同社は OCV Open Charter の下で運営される public benefit company です。

クイックスタート (Docker)```bash
docker run -d --name betterdb -p 3001:3001 betterdb/monitor:latest
ブラウザで `http://localhost:3001` にアクセスしてください。特定のインスタンスを監視するには:```bash
docker run -d \
--name betterdb \
-p 3001:3001 \
-e DB_HOST=your-valkey-host \
-e DB_PORT=6379 \
-e DB_PASSWORD=your-password \
betterdb/monitor:latest
ホストマシン上のデータベースに接続しますか? コンテナ内では
localhostはコンテナ自身を指し、ホストではありません。そのためデータベースの ホストとしてhost.docker.internalを使用してください。Docker Desktop (macOS/Windows) ではそのまま動作します。Linux ではdocker runコマンドに--add-host=host.docker.internal:host-gatewayを追加して、この名前が解決されるように してください。ダッシュボードのワンクリック「ローカルインスタンスに接続」ボタンは これを自動検出し、適切なホストを事前入力します。
2 つのイメージバリアントが公開されており、どちらもマルチアーキテクチャ(linux/amd64、linux/arm64)です:
| タグ | 内容 |
|---|---|
latest、X.Y.Z-no-ai | デフォルトイメージ - すべての監視機能を含み、実験的なローカル LLM AI Helper の依存関係は含まない |
X.Y.Z | 実験的な AI Helper を追加(独自の Ollama を持ち込み、デフォルトでは AI_ENABLED により無効化) |
永続ストレージ、カスタムポート、ライセンス、エアギャップ環境のセットアップについては Docker Production Deployment を参照してください。
クイックスタート (Kubernetes / Helm)```bash
helm repo add betterdb https://docs.betterdb.com/charts
helm repo update
helm install betterdb-monitor betterdb/betterdb-monitor
--namespace betterdb --create-namespace
--set db.host=my-valkey.default.svc.cluster.local
--set db.password=yourpassword
次に `kubectl port-forward -n betterdb svc/betterdb-monitor 3001:3001` を実行して `http://localhost:3001` を開くか、チャートの ingress を有効にします。PostgreSQL をバックエンドにした履歴、bring-your-own Secrets、エアギャップ環境でのライセンスについては、[Kubernetes ガイド](https://docs.betterdb.com/kubernetes) と [チャート README](https://github.com/betterdb-inc/monitor/blob/master/charts/betterdb-monitor/README.md) で説明されています。
## クイックスタート (CLI)
Docker なしで BetterDB Monitor を実行します:```bash
npx @betterdb/monitor
初回実行時には、対話形式のセットアップウィザードがデータベース接続、ストレージバックエンド(SQLite、PostgreSQL、またはインメモリ)、およびサーバー設定を順に案内します。設定は ~/.betterdb/config.json に保存されます。```bash
npm install -g @betterdb/monitor # global install
betterdb --setup # re-run setup wizard
betterdb --port 8080 # override server port
betterdb --db-host 1.2.3.4 # override database host
betterdb --help # all options
Node.js >= 20.0.0 と、監視対象の Valkey または Redis インスタンスが必要です。SQLite ストレージを使う場合は、さらに `npm install -g better-sqlite3` が必要です。
## 得られるもの
### すべてを見て、すべてを保持
- **履歴分析** - 任意の期間にわたってスローログ、コマンドパターン、クライアントアクティビティ、レイテンシをクエリできます。これまでログローテーション後に消えていたデータです。
- **COMMANDLOG サポート** - Valkey 8.1+ 専用。遅いリクエストだけでなく、大きなリクエストや大きな応答も対象です。
- **MONITOR キャプチャセッション** - オンデマンドで実際のトラフィックを記録: ライブテール、フィルタ、リプレイ、JSON/CSV へのエクスポート、接続履歴との照合。
- **ホットキー追跡** - アクセス頻度順のトップキーと、時間経過に伴う順位変動。Key Analytics (Pro、早期アクセスでは無料) はライブサンプリングによる型、TTL、サイズ分布を追加します。
- **クラスタ可視化** - トポロジグラフ、SLOT-STATS ヒートマップ、スロットごとの CPU とキー分布。
- **CPU & I/O スレッドメトリクス** - 他のどの Redis ツールも提供できないスレッド単位の可視性。
- **クライアント分析** - どのサービスが何の原因かを、クライアント名とパターンで正確に把握できます。
- **ACL 監査証跡** - 誰が何にアクセスしたかを追跡し、コンプライアンスとインシデント後のデバッグのために永続化します。
### 理解して行動する
- **異常検知** (Pro、早期アクセスでは無料) - 相関イベントと平易な言葉による診断を伴う自動ベースライン学習。20 以上の検出器、手動しきい値は不要です。
- **容量予測** - メモリ、ops/sec、CPU、フラグメンテーションの上限到達までの予測時間。
- **Webhook** - リトライと完全な配信ログを備えた HMAC 署名付きアラート配信。
- **ライブマイグレーション** - 3 フェーズの分析、実行、検証ワークフローで Redis と Valkey 間を移行できます。
### AI 時代のために構築
- **ベクトル検索の可観測性** - [valkey-search](https://github.com/valkey-io/valkey-search) と RediSearch の FT.SEARCH ops/sec とレイテンシ、およびインデックスごとのヘルス。[docs/vector-ai](https://github.com/betterdb-inc/monitor/blob/master/docs/vector-ai/README.md) を参照してください。
- **推論レイテンシ** - インデックスごとの p50/p95/p99、SLA 違反アラート付き (Pro、早期アクセスでは無料)。
- **セマンティックキャッシュインテリジェンス** (Pro、早期アクセスでは無料) - ヒット率の健全性、類似度しきい値の推奨、承認/却下の提案ワークフロー。エージェントメモリの可観測性も含まれます。
- **AI トレース** - AI アプリケーションからの OTLP スパンウォーターフォールを、各リクエストの背後にあるライブの Valkey 状態と相関付けます。[docs/opentelemetry.md](https://github.com/betterdb-inc/monitor/blob/master/docs/opentelemetry.md) を参照してください。
### あらゆるものに接続
- **MCP サーバー** - [`@betterdb/mcp`](https://github.com/betterdb-inc/monitor/blob/master/packages/mcp) 経由で Claude Code、Cursor、または任意の MCP クライアント向けの 60 のツール。
- **Prometheus エンドポイント** - 100 以上の `betterdb_*` メトリクス。[docs/prometheus-metrics.md](https://github.com/betterdb-inc/monitor/blob/master/docs/prometheus-metrics.md) を参照してください。
- **OpenTelemetry** - OTLP トレースを取り込み、メトリクスとイベントを任意の OTLP バックエンドにミラーリングします。[docs/opentelemetry.md](https://github.com/betterdb-inc/monitor/blob/master/docs/opentelemetry.md) を参照してください。
- **REST API** - UI のすべてが API 呼び出しであり、OpenAPI で文書化されています。
## 自分のデータに自分の方法でアクセス
| インターフェース | 詳細 |
|-----------|---------|
| Web UI | `http://localhost:3001` |
| MCP サーバー | `npx @betterdb/mcp` (stdio) - Settings → MCP Tokens でトークンを作成します (クラウドでは必須、セルフホストでは任意) |
| Prometheus | `http://localhost:3001/api/prometheus/metrics` |
| REST API (OpenAPI) | `http://localhost:3001/docs` |
| ヘルスチェック | `http://localhost:3001/api/health` |
> **注**: 本番ビルド (Docker、CLI) では API ルートは `/api` プレフィックスの下で提供されます。ローカル開発 (`pnpm dev`) ではプレフィックスはありません - 例: `http://localhost:3001/health`。
## サポートされるデータベース
| データベース | 最小バージョン | サポートされる機能 |
|----------|----------------|-------------------|
| **Valkey** | 8.0+ | COMMANDLOG (8.1+) と CLUSTER SLOT-STATS を含むすべての機能 |
| **Redis** | 6+ | Valkey 専用の COMMANDLOG と CLUSTER SLOT-STATS を除くすべての機能 |
バックエンドは、ワイヤ互換の `iovalkey` クライアント上の統合アダプタを使用し、`INFO` レスポンスから Valkey か Redis かを自動検出します (`DB_TYPE=auto`)。COMMANDLOG や SLOT-STATS などの機能はバージョンごとに検出され、機能が利用できない場合、UI は適切に縮退します。
マネージドサービスもサポートされています - AWS ElastiCache、MemoryDB、Redis Cloud、Upstash のガイドは [docs/providers](https://github.com/betterdb-inc/monitor/blob/master/docs/providers) にあり、[`@betterdb/agent`](https://github.com/betterdb-inc/monitor/blob/master/packages/agent) はアウトバウンド WebSocket 経由で VPC 専用インスタンスに到達します。
## Docker 本番デプロイ
Docker イメージには監視アプリケーション (バックエンド + フロントエンド) が含まれています。必要なもの:
1. 監視対象の Valkey/Redis インスタンス
2. データ永続化用の PostgreSQL インスタンス (またはメモリストレージを使用)