pg_glimpse —— 终端里的 PostgreSQL 监控仪表板

数据库性能问题往往在业务高峰时才暴露,而传统的监控方案要么太重,要么需要离开终端去查看 Web 界面。pg_glimpse 提供了一个更轻量的选择:一个运行在终端里的 PostgreSQL 实时监控仪表板。

项目概览

属性详情
GitHubdlt/pg_glimpse
Stars83
语言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