Free
永久免费
连上生产环境,所有情况一目了然。
- 全部监控页面:健康、活动、锁、Vacuum 与膨胀、复制、存储、慢查询
- 不限数量的连接,支持 TLS、SSH 隧道、指纹固定和 Face ID
- 数据浏览器:服务端筛选、外键跳转、CSV 与 JSON 导出
- 用于读取的 SQL 控制台,在只读事务中运行
- SQL 分类器及其说明
适用于 iPhone 的 HeapDeck: Postgres® Monitor
收到 Postgres 告警,笔记本却在家里?HeapDeck 显示谁在阻塞、离 wraparound 还有多远、哪个备库在落后,并可直接在 iPhone 上处理。先止血,回到电脑前再彻底修复。
“锁”页面根据 pg_blocking_pids() 构建阻塞树,并把根阻塞者放在最上方:它的 pid、user@app、持有锁多久、正在运行什么。下方是排队等待的每一个会话。
RowExclusiveLock on public.orders。处于 idle in transaction 的根会话会被标出,出现死锁时也会直接标明。
“Vacuum 与膨胀”页面以占 2³¹ 的比例显示服务器离事务 ID wraparound 还有多近,并列出按 relfrozenxid 年龄排序的最老的表。到达极限时,PostgreSQL 会拒绝写入,并报错 database is not accepting commands to avoid wraparound data loss。
DROP INDEX CONCURRENTLY 复制到剪贴板,但从不自行执行。 VACUUM (ANALYZE) 或 ANALYZE。VACUUM FULL 需要先输入表名。 PRO
HeapDeck 从 iPhone 直接连接服务器,或经由 SSH 堡垒机连接。中间没有 HeapDeck 服务器,也无需账号。如果配置了 AI 助手,它只与所选的服务商通信,使用的是自己的密钥。
sslmode=require。证书的 SHA-256 指纹会被固定;证书一旦变化,连接会暂停,直到做出决定。 GRANT pg_monitor。
最前面是 10 张健康指标卡片,每张卡片背后都有一个原生页面,无需在手机键盘上敲 psql。需要时还有 SQL 控制台,每条语句运行前都会先经过检查。
一个总体判断加 10 张卡片:会话数对比 max_connections、被阻塞的会话、最长的查询、TPS、缓存命中、autovacuum、wraparound、复制、数据库大小和慢查询。页面打开时每 10 秒刷新一次。
列出 pg_stat_activity 中的每个会话,等待中的排在最前。可按活跃、idle in transaction、超过 10 秒或等待中筛选。在某一行上轻扫,即可取消或终止。
每个备库的回放延迟,按 WAL 阶段细分。列出每个复制槽保留的 WAL;不活跃的复制槽正在占满磁盘时会发出警告。
pg_stat_statements 中开销最大的 300 条语句,可按总耗时、平均耗时、调用次数或行数排序,还能看到此刻正在运行某条语句的会话(PostgreSQL 14+)。
浏览表、在服务端筛选、沿外键跳转、把一页数据导出为 CSV 或 JSON。控制台在输入时就对每条语句进行分类;在 Free 版中,读取在 BEGIN READ ONLY 中运行。
解释故障或阻塞链,并起草修复方案,使用自己的 API 密钥或自己的 Ollama。它拿到的是脱敏后的快照,从不自行执行任何操作。
HeapDeck 1.0,使用示例数据;与 iOS 一样提供深色和浅色外观。
pg_stat_statements 的慢查询
pg_monitor?页面会说明哪些内容被隐藏、如何解决
先在自己的生产环境上试用:所有监控页面都无需付费,服务器数量不限。Pro 只需支付一次 US$29.99,即可解锁全部操作。无需订阅,也无需账号。
永久免费
连上生产环境,所有情况一目了然。
US$29.99
一次性购买
留给需要出手的那一刻。
VACUUM、ANALYZE 以及删除复制槽 在 Free 版中,Pro 操作依然可见,并标有 PRO,可以先了解它们会做什么。在内置的演示故障上,助手可以免费使用。在美国以外的地区,App Store 会以当地货币显示价格。
只要 iPhone 能访问到,HeapDeck 就能连接任何 PostgreSQL 13–18,无论自建还是托管、主库还是备库。如果角色不是 superuser,页面会显示哪些内容被隐藏,以及能解决问题的 GRANT pg_monitor。
托管服务商用来签发证书的根证书并未内置在 iOS 中。对于这类服务,请使用 sslmode=require:连接会加密,HeapDeck 会在首次连接时固定证书指纹。
可以。在连接设置中打开 SSH 隧道,填写堡垒机的主机、用户名,以及密码或密钥。密钥必须是 OpenSSH 格式、未加密的 Ed25519 密钥;堡垒机自身的主机密钥可以是 Ed25519 或 ECDSA,会在首次连接时固定。
1.0 版不支持 RSA 密钥、带口令保护的密钥、一次性验证码或多级跳板机。
HeapDeck 直接连接服务器,或经由 SSH 堡垒机连接。没有 HeapDeck 服务器,也没有账号。密码、SSH 密钥和已固定的指纹留在本设备的 iOS Keychain 中,不通过 iCloud 同步。
可能离开手机的内容有两类,都由自己控制:发给所配置 AI 服务商的提问(Pro),以及崩溃报告和使用统计——可在首次启动时或在“设置”中关闭。两者都不包含 SQL、表名、主机名、值或凭据。详情见隐私政策。
不需要。拥有 pg_monitor 的角色就能使用全部监控页面:GRANT pg_monitor TO your_role;。没有它,HeapDeck 也能工作,并会标出服务器对该角色隐藏了哪些内容。取消其他角色的会话需要 PostgreSQL 的常规权限,例如 pg_signal_backend。
取消(pg_cancel_backend)会停止会话正在运行的查询,会话及其事务保持打开。终止(pg_terminate_backend)会结束整个会话,并回滚其事务。
处于 idle in transaction 的会话没有正在运行的查询,所以取消对它不起作用:要释放它持有的锁,得用终止。终止阻塞链的根会话,或终止“生产”连接上的会话之前,HeapDeck 会要求输入 pid。
Free 版完全不写入:控制台的读取在 BEGIN READ ONLY … ROLLBACK 中运行。在 Pro 版中,每次写入都要依次通过四道检查:Pro、连接的“只读”开关、SQL 分类器,以及手动确认。
VACUUM FULL、删除复制槽和终止阻塞链的根会话之前,需要先输入表名、复制槽名称或 pid。标记为“生产”的连接会显示 PROD 徽标,确认也更严格。
当然还可以。HeapDeck 为故障中的每个问题都准备了专门的页面,不必在手机键盘上敲查询:谁在阻塞、有多少会话在等、根会话在运行什么、离 wraparound 还有多远、哪个复制槽占着 WAL。执行操作前,它会重新读取阻塞链,并请求确认。
所询问页面的脱敏快照。其中从不包含主机、端口、密码和密钥,值会变成 $1 这样的占位符。使用云端模型时,数据库名、表名和列名默认隐藏,回答返回后再在手机上还原。
请求从 iPhone 发往所选的服务商,使用自己的密钥(Anthropic、OpenAI、OpenRouter、Z.ai),或发往自己的 Ollama 或兼容 OpenAI 的服务器。“模型看到的内容”会在发送前显示确切的文本。助手属于 Pro 功能,从不自行运行 SQL。
不需要。监控免费,Pro 只需一次性购买 US$29.99,与 Apple ID 绑定。没有账号,也没有试用期倒计时。
不会。HeapDeck 只在打开时工作,不做后台监控。现有的告警系统照常保留:HeapDeck 是收到告警后打开的那个页面。
HeapDeck 专为竖屏 iPhone 设计。在 iPad 上,它以 iPhone 兼容模式运行。
深夜把人叫醒的那些问题,每个一页:手动检查用的 SQL,以及 HeapDeck 中的显示。指南为英文。