pg_glimpse —— ターミナルでの PostgreSQL モニタリングダッシュボード
pg_glimpse —— ターミナルでの PostgreSQL モニタリングダッシュボード
データベースのパフォーマンス問題は、通常、業務のピーク時に表面化します。従来の監視ソリューションは、重すぎるか、Web インターフェースを確認するためにターミナルを離れる必要があります。pg_glimpse は、より軽量な選択肢を提供します:ターミナル上で実行される PostgreSQL のリアルタイム監視ダッシュボードです。
プロジェクト概要
| 属性 | 詳細 |
|---|---|
| GitHub | dlt/pg_glimpse |
| Stars | 83 |
| 言語 | Rust |
| ライセンス | MIT |
主な機能
pg_glimpse は Rust と Ratatui で構築され、データベース管理者に最も必要とされる監視機能を提供します:
リアルタイムクエリ監視
- 現在実行中のクエリを表示
- クエリの実行時間と状態を確認
- 長時間実行されているクエリを特定
ロック分析
- テーブルロックと行ロックを検出
- ブロックしているクエリとデッドロックを発見
- ロック待ちチェーンを追跡
レプリケーション状態
- マスター・スレーブ間のレプリケーション遅延を監視
- レプリケーションスロットの状態を確認
- WAL の送信・受信進捗を追跡
パフォーマンス指標
- 接続数の統計
- トランザクション処理量
- キャッシュヒット率
インストールと使用方法
# リポジトリをクローン
git clone https://github.com/dlt/pg_glimpse.git
cd pg_glimpse
# コンパイル(Rust ツールチェーンが必要)
cargo build --release
# 実行(環境変数でデータベースに接続)
DATABASE_URL="postgres://user:password@localhost/dbname" ./target/release/pg_glimpse
インターフェースレイアウト
┌─────────────────────────────────────────────────────────┐
│ pg_glimpse - PostgreSQL Dashboard [?] │
├─────────────────────────────────────────────────────────┤
│ [Queries] [Locks] [Replication] [Stats] │
├─────────────────────────────────────────────────────────┤
│ PID │ USER │ DB │ STATE │ TIME │ QUERY │
├──────┼───────┼───────┼─────────┼───────┼────────────────┤
│ 1234 │ app │ prod │ active │ 2.3s │ SELECT ... │
│ 1235 │ app │ prod │ idle │ 0.1s │ COMMIT │
│ 1236 │ admin │ stats │ active │ 15.2s │ ANALYZE ... │
└─────────────────────────────────────────────────────────┘
使用シナリオ
| シナリオ | 使い方 |
|---|---|
| 遅いクエリの調査 | Queries タブに切り替え、時間でソート |
| ロック競合の確認 | Locks タブでブロックの発生源を特定 |
| レプリケーション遅延の監視 | Replication パネルに切り替え |
| クイックヘルスチェック | Stats タブで主要指標を確認 |
類似ツールとの比較
| ツール | 特徴 | 適用シナリオ |
|---|---|---|
| pg_glimpse | 軽量、ターミナルネイティブ、リアルタイム | 開発デバッグ、迅速な診断 |
| pgAdmin | 機能が充実、グラフィカルインターフェース | 日常的な管理、複雑な操作 |
| pgbadger | レポート生成、履歴分析 | 事後分析、傾向レポート |
| pg_stat_statements | 組み込み統計、正確なデータ | 長期監視、最適化の根拠 |
技術的なハイライト
- 純粋な Rust 実装:Python 依存なし、単一バイナリ
- Ratatui フレームワーク:スムーズなターミナル UI 体験
- 低リソース消費:サーバー上での長期実行に適している
- 安全な接続:標準の PostgreSQL 接続文字列をサポート
対象ユーザー
- SSH セッションでデータベースの状態を迅速に確認する必要がある運用担当者
- 開発環境でクエリをリアルタイムに監視したい開発者
- ターミナルワークフローを好み、ブラウザを開きたくない DBA
まとめ
pg_glimpse は、PostgreSQL 監視ツールの空白を埋めます:psql + \watch より直感的で、完全な監視スタックより軽量です。ターミナルでデータベースの問題を頻繁に調査する必要がある開発者にとって、ツールボックスに追加する価値のある小さなツールです。
プロジェクトアドレス:https://github.com/dlt/pg_glimpse