HeapDeck: Postgres® Monitor per iPhone

Vedi cosa va a fuoco nel tuo Postgres.Spegnilo.

Ti arriva un alert su Postgres e il portatile è rimasto a casa? HeapDeck ti mostra chi sta bloccando, quanto manca al wraparound e quale replica sta restando indietro, poi ti permette di agire dall’iPhone. Tampona l’emorragia adesso; la correzione di fondo la fai quando torni alla scrivania.

Free · Pro 29,99 USD una tantum · PostgreSQL 13–18 · iOS 17+ · iPhone

Schermata Salute di HeapDeck per un server di produzione in stato Critico: prima le sessioni bloccate, poi le connessioni, la query più lunga, il wraparound e la replica

Vedi chi sta bloccando tutti in Postgres. Annulla la radice sapendo cosa sblocca.

La schermata Lock costruisce l’albero dei blocchi da pg_blocking_pids() e mette in cima la radice del blocco: il suo pid, user@app, da quanto tiene il lock e cosa sta eseguendo. Sotto, ogni sessione ferma in coda.

  • Annulla la radice (sblocca N) dice quante sessioni sono ferme dietro di essa ed elenca i loro pid prima che tu confermi. PRO
  • HeapDeck rilegge la catena prima di inviare qualsiasi cosa. Se è cambiata mentre decidevi, vedi i nuovi numeri e confermi di nuovo.
  • Annulla ferma la query in esecuzione. Termina chiude forzatamente la sessione e fa il rollback della sua transazione, dopo che hai digitato il suo pid. PRO
  • Ogni sessione in attesa mostra cosa sta aspettando, ad esempio RowExclusiveLock on public.orders. Una radice ferma in idle in transaction viene evidenziata, e un deadlock viene segnalato come tale.
Schermata Lock: la radice del blocco è inattiva in una transazione da 06:48 e blocca quattro sessioni; sotto, il pulsante Annulla la radice (sblocca 4)

Tieni d’occhio il wraparound in % prima che Postgres smetta di accettare scritture.

La schermata Vacuum e bloat mostra quanto il server è vicino al wraparound degli ID di transazione, come frazione di 2³¹, con le tabelle più vecchie per età di relfrozenxid. Al limite, PostgreSQL rifiuta le scritture con database is not accepting commands to avoid wraparound data loss.

  • Dal 75% la schermata lo dice chiaramente ed elenca i motivi tipici per cui autovacuum non tiene il passo: una transazione aperta da tempo, uno slot di replica inattivo, un worker bloccato.
  • Righe morte per tabella, con la loro quota e la data dell’ultimo vacuum della tabella.
  • Indici inutilizzati con lo spazio che occupano. HeapDeck copia per te DROP INDEX CONCURRENTLY e non lo esegue mai da solo.
  • Esegui VACUUM (ANALYZE) o ANALYZE su una tabella dall’elenco. VACUUM FULL ti chiede prima di digitare il nome della tabella. PRO
Schermata Vacuum e bloat: wraparound degli ID di transazione all’86%, un avviso che il database smetterà di accettare scritture al 100%, e tre cause probabili

Il tuo Postgres attraverso il tuo bastion, con i permessi che il tuo ruolo ha già.

HeapDeck si connette dal tuo iPhone al tuo server, direttamente o tramite il tuo bastion SSH. Non c’è nessun server HeapDeck in mezzo e nessun account. L’assistente AI, se lo configuri, parla solo con il provider che hai scelto, con la tua chiave.

  • Tunnel SSH con password o chiave Ed25519. La chiave dell’host del bastion viene fissata alla prima connessione.
  • TLS con sslmode=require di default. L’impronta SHA-256 del certificato viene fissata e, se il certificato cambia, la connessione si ferma finché non decidi.
  • Password, chiavi e impronte restano nel Keychain di questo iPhone, mai sincronizzate. L’app si apre con Face ID.
  • Niente superuser? HeapDeck mostra il GRANT pg_monitor esatto che gli serve, invece di una schermata vuota.
Foglio “Verifica questo server” alla prima connessione: l’impronta SHA-256 del certificato del server, da confrontare con i tuoi registri prima di fidarti

Le schermate che apri durante un incidente su Postgres

Dieci riquadri di salute in primo piano e una schermata nativa dietro ognuno, così non digiti mai psql sulla tastiera del telefono. La console SQL c’è quando ti serve, e controlla ogni istruzione prima di eseguirla.

  • Salute

    Un verdetto e dieci riquadri: sessioni rispetto a max_connections, sessioni bloccate, query più lunga, TPS, hit della cache, autovacuum, wraparound, replica, dimensione del database e query lente. Si aggiorna ogni 10 secondi finché è aperta.

  • Attività

    Ogni sessione di pg_stat_activity, prima quelle in attesa. Filtra le sessioni attive, idle in transaction, più lunghe di 10 s o in attesa. Scorri una riga per annullare o terminare la sessione.

  • Replica e slot

    Ritardo di riproduzione per ogni replica, scomposto per fase WAL. Ogni slot con il WAL che trattiene, e un avviso quando uno slot inattivo sta riempiendo il disco.

  • Query lente

    Le 300 istruzioni più pesanti da pg_stat_statements, ordinate per tempo totale, media, chiamate o righe, e le sessioni che ne stanno eseguendo una in questo momento (PostgreSQL 14+).

  • Dati e console SQL

    Sfoglia le tabelle, filtra sul server, segui le chiavi esterne, esporta una pagina in CSV o JSON. La console classifica ogni istruzione mentre scrivi; in Free, le letture girano dentro BEGIN READ ONLY.

  • Assistente AI PRO

    Spiega un incidente o una catena di lock e prepara la correzione, con la tua chiave API o il tuo Ollama. Riceve uno snapshot filtrato e non esegue mai nulla da solo.

HeapDeck 1.0 con dati di esempio, in modalità scura e chiara come iOS.

Il monitoraggio di Postgres è gratis. Pro è un acquisto unico.

Provalo prima sulla tua produzione: nessuna schermata di monitoraggio è a pagamento, con qualsiasi numero di server. Pro sblocca le azioni una volta per tutte, per 29,99 USD. Niente abbonamento, niente account.

Free

per sempre

Puntalo sulla produzione e vedi tutto.

  • Ogni schermata di monitoraggio: Salute, Attività, Lock, Vacuum e bloat, Replica, Archiviazione, Query lente
  • Connessioni illimitate con TLS, tunnel SSH, impronte fissate e Face ID
  • Browser dei dati con filtri lato server, chiavi esterne, esportazione CSV e JSON
  • Console SQL per le letture, dentro una transazione in sola lettura
  • Il classificatore SQL e le sue spiegazioni

Pro

29,99 USD

acquisto una tantum

Per il momento in cui devi agire.

  • Annullare e terminare sessioni, annullare la radice di una catena di lock
  • VACUUM, ANALYZE ed eliminazione di uno slot di replica
  • Scritture e DDL nella console, dietro conferme
  • Inserire, modificare ed eliminare righe nelle tabelle con chiave primaria
  • L’assistente AI con la tua chiave o il tuo modello

In Free le azioni Pro restano visibili, segnate PRO, così vedi cosa farebbero. L’assistente funziona gratis sull’incidente demo integrato. Fuori dagli Stati Uniti, App Store mostra il prezzo nella tua valuta.

Free · Pro 29,99 USD una tantum · PostgreSQL 13–18 · iOS 17+ · iPhone

Domande su HeapDeck e Postgres

Funziona con Amazon RDS, Cloud SQL, Azure o Supabase?

HeapDeck funziona con qualsiasi PostgreSQL 13–18 raggiungibile dal tuo iPhone, self-hosted o gestito, primario o replica. Dove il tuo ruolo non è superuser, le schermate mostrano cosa è nascosto e il GRANT pg_monitor che lo risolve.

I provider gestiti firmano i certificati con radici che iOS non include. Con loro usa sslmode=require: la connessione è cifrata e HeapDeck fissa l’impronta del certificato alla prima connessione.

Può raggiungere un database dietro un bastion?

Sì. Attiva il tunnel SSH nella connessione e inserisci host e utente del bastion, più una password o una chiave. La chiave deve essere una chiave Ed25519 non cifrata in formato OpenSSH; la chiave dell’host del bastion può essere Ed25519 o ECDSA e viene fissata alla prima connessione.

La versione 1.0 non supporta chiavi RSA, chiavi protette da passphrase, codici monouso né catene di jump host.

Le mie credenziali o i miei dati lasciano l’iPhone?

HeapDeck si connette al tuo server direttamente o tramite il tuo bastion SSH. Non c’è nessun server HeapDeck e nessun account. Password, chiavi SSH e impronte fissate restano nell’iOS Keychain di questo dispositivo, senza sincronizzazione iCloud.

Due cose possono lasciare il telefono, entrambe sotto il tuo controllo: una domanda al provider AI che hai configurato (Pro), e i report di crash e le statistiche di utilizzo, che puoi disattivare al primo avvio o in Impostazioni. Nessuna delle due contiene SQL, nomi di tabelle, nomi host, valori o credenziali. I dettagli sono nell’informativa sulla privacy.

Serve un superuser?

No. Un ruolo con pg_monitor copre le schermate di monitoraggio: GRANT pg_monitor TO your_role;. Anche senza, HeapDeck funziona e indica cosa il server nasconde al tuo ruolo. Per annullare le sessioni di altri ruoli servono i soliti permessi di PostgreSQL, come pg_signal_backend.

Annullare o terminare: quale scegliere?

Annulla (pg_cancel_backend) ferma la query che una sessione sta eseguendo; la sessione e la sua transazione restano aperte. Termina (pg_terminate_backend) chiude forzatamente l’intera sessione e fa il rollback della sua transazione.

Una sessione idle in transaction non ha query in esecuzione, quindi Annulla non ha effetto: è Termina a rilasciare i suoi lock. HeapDeck ti chiede di digitare il pid prima di terminare la radice di una catena di lock o una sessione su una connessione Produzione.

HeapDeck può rompere il mio database?

Free non scrive affatto: le letture della console girano dentro BEGIN READ ONLY … ROLLBACK. Con Pro, ogni scrittura deve superare quattro controlli, in ordine: Pro, l’interruttore Sola lettura della connessione, il classificatore SQL e la tua conferma.

Prima di lanciare VACUUM FULL, eliminare uno slot o terminare la radice di una catena di lock, HeapDeck ti chiede di digitare il nome della tabella, il nome dello slot o il pid. Una connessione segnata come Produzione riceve il badge PROD e conferme più severe.

Perché non collegarsi semplicemente in SSH e lanciare psql?

Puoi ancora farlo. HeapDeck dà a ogni domanda da incidente la sua schermata, così non digiti query sulla tastiera del telefono: chi blocca e quanti aspettano, cosa sta eseguendo la radice, quanto manca al wraparound, quale slot trattiene WAL. Rilegge la catena di lock prima di agire e ti chiede di confermare.

Cosa vede l’assistente AI?

Uno snapshot filtrato della schermata su cui hai fatto la domanda. Host, porta, password e chiavi non ci sono mai, e i valori diventano segnaposto come $1. Per i modelli cloud, i nomi di database, tabelle e colonne sono nascosti di default e rimessi al loro posto sul tuo telefono quando arriva la risposta.

Le richieste vanno dal tuo iPhone al provider che hai scelto, con la tua chiave (Anthropic, OpenAI, OpenRouter, Z.ai), oppure al tuo Ollama o al tuo server compatibile con OpenAI. “Cosa vede il modello” mostra il testo esatto prima dell’invio. L’assistente fa parte di Pro e non esegue mai SQL da solo.

C’è un abbonamento?

No. Il monitoraggio è gratis e Pro è un unico acquisto da 29,99 USD legato al tuo Apple ID. Niente account e nessuna prova a tempo.

Mi avvisa quando qualcosa si rompe?

No. HeapDeck funziona mentre è aperto e non fa monitoraggio in background. Tieni il tuo sistema di alert dov’è: HeapDeck è la schermata che apri dopo l’alert.

Funziona su iPad?

HeapDeck è pensato per iPhone, in verticale. Su iPad gira in modalità compatibilità iPhone.

Guide per gli incidenti su Postgres

I problemi che ti svegliano di notte, una pagina per ciascuno: l’SQL per verificare a mano e cosa mostra HeapDeck. Le guide sono in inglese.

Tienilo sul telefono prima del prossimo incidente su Postgres.

Aggiungi un server, fissa il suo certificato e tutte le schermate di monitoraggio sono tue, gratis. Pro c’è per la notte in cui devi agire.

Free · Pro 29,99 USD una tantum · PostgreSQL 13–18 · iOS 17+ · iPhone