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 中的顯示。指南為英文。