HeapDeck: Postgres® Monitor pour iPhone

Voyez ce qui brûle dans votre Postgres.Éteignez-le.

Une alerte Postgres, et votre ordinateur portable est resté à la maison ? HeapDeck montre qui bloque, quelle marge il vous reste avant le wraparound et quel réplica prend du retard, puis vous laisse agir depuis votre iPhone. Stoppez l’hémorragie tout de suite ; la correction de fond attendra votre retour au bureau.

Bientôt sur l’App Store Me prévenir par e-mail à la sortie

Free · Pro 29,99 $US en achat unique · PostgreSQL 13–18 · iOS 17+ · iPhone

Écran Santé de HeapDeck pour un serveur de production en état Critique : d’abord les sessions bloquées, puis les connexions, la requête la plus longue, le wraparound et la réplication

Voyez qui bloque tout le monde dans Postgres. Annulez la racine en sachant ce qu’elle débloque.

L’écran Verrous construit l’arbre de blocage à partir de pg_blocking_pids() et place la racine du blocage en haut : son pid, user@app, depuis combien de temps elle tient le verrou et ce qu’elle exécute. En dessous, chaque session coincée dans la file d’attente.

  • Annuler la racine (débloque N) indique combien de sessions sont coincées derrière elle et liste leurs pid avant que vous confirmiez. PRO
  • HeapDeck relit la chaîne avant d’envoyer quoi que ce soit. Si elle a changé pendant que vous décidiez, vous voyez les nouveaux chiffres et confirmez à nouveau.
  • Annuler arrête la requête en cours. Terminer tue la session et effectue le rollback de sa transaction, une fois son pid saisi. PRO
  • Chaque session en attente indique ce qu’elle attend, par exemple RowExclusiveLock on public.orders. Une racine restée idle in transaction est signalée, et un deadlock est identifié comme tel.
Écran Verrous : la racine du blocage est inactive dans une transaction depuis 06:48 et bloque quatre sessions ; en dessous, le bouton Annuler la racine (débloque 4)

Suivez votre wraparound en % avant que Postgres cesse d’accepter les écritures.

L’écran Vacuum et gonflement montre à quel point le serveur approche du wraparound des ID de transaction, en proportion de 2³¹, avec les tables les plus anciennes selon l’âge de relfrozenxid. À la limite, PostgreSQL refuse les écritures avec database is not accepting commands to avoid wraparound data loss.

  • Dès 75 %, l’écran le dit clairement et liste les raisons habituelles pour lesquelles autovacuum ne suit pas : une transaction ouverte depuis longtemps, un slot de réplication inactif, un worker coincé.
  • Les lignes mortes par table, avec leur proportion et la date du dernier vacuum de la table.
  • Les index inutilisés, avec l’espace qu’ils occupent. HeapDeck copie DROP INDEX CONCURRENTLY pour vous et ne l’exécute jamais lui-même.
  • Lancez VACUUM (ANALYZE) ou ANALYZE sur une table depuis la liste. VACUUM FULL vous demande d’abord de saisir le nom de la table. PRO
Écran Vacuum et gonflement : wraparound des ID de transaction à 86 %, un avertissement indiquant que la base cessera d’accepter les écritures à 100 %, et trois causes probables

Votre Postgres via votre bastion, avec les droits que votre rôle a déjà.

HeapDeck se connecte de votre iPhone à votre serveur, directement ou via votre bastion SSH. Il n’y a ni serveur HeapDeck entre les deux, ni compte. L’assistant IA, si vous le configurez, ne parle qu’au fournisseur que vous avez choisi, avec votre propre clé.

  • Tunnel SSH avec mot de passe ou clé Ed25519. La clé d’hôte du bastion est épinglée à la première connexion.
  • TLS avec sslmode=require par défaut. L’empreinte SHA-256 du certificat est épinglée, et si le certificat change, la connexion s’arrête jusqu’à votre décision.
  • Mots de passe, clés et empreintes restent dans le Keychain de cet iPhone, jamais synchronisés. L’app s’ouvre avec Face ID.
  • Pas de superuser ? HeapDeck affiche le GRANT pg_monitor exact dont il a besoin, au lieu d’un écran vide.
Feuille « Vérifiez ce serveur » à la première connexion : l’empreinte SHA-256 du certificat du serveur, à comparer avec vos enregistrements avant de lui faire confiance

Les écrans que vous ouvrez pendant un incident Postgres

Dix tuiles de santé en premier, et un écran natif derrière chacune, pour ne jamais avoir à taper psql sur un clavier de téléphone. La console SQL est là quand il le faut, et elle vérifie chaque requête avant son exécution.

  • Santé

    Un verdict et dix tuiles : sessions face à max_connections, sessions bloquées, requête la plus longue, TPS, succès du cache, autovacuum, wraparound, réplication, taille de la base et requêtes lentes. S’actualise toutes les 10 secondes tant que l’écran est ouvert.

  • Activité

    Toutes les sessions de pg_stat_activity, celles en attente d’abord. Filtrez les sessions actives, idle in transaction, de plus de 10 s ou en attente. Balayez une ligne pour annuler ou terminer la session.

  • Réplication et slots

    Retard de rejeu par réplica, détaillé par phase WAL. Chaque slot avec le WAL qu’il retient, et un avertissement quand un slot inactif remplit votre disque.

  • Requêtes lentes

    Les 300 requêtes les plus lourdes de pg_stat_statements, triées par temps total, moyenne, appels ou lignes, et les sessions qui en exécutent une en ce moment (PostgreSQL 14+).

  • Données et console SQL

    Parcourez les tables, filtrez côté serveur, suivez les clés étrangères, exportez une page en CSV ou JSON. La console classe chaque requête au fil de la saisie ; avec Free, les lectures s’exécutent dans BEGIN READ ONLY.

  • Assistant IA PRO

    Explique un incident ou une chaîne de verrous et rédige le correctif, avec votre propre clé API ou votre propre Ollama. Il reçoit un instantané expurgé et n’exécute jamais rien de lui-même.

HeapDeck 1.0 avec des données d’exemple, en sombre et en clair, comme iOS.

La surveillance de Postgres est gratuite. Pro est un achat unique.

Essayez-le d’abord sur votre propre production : aucun écran de surveillance n’est payant, quel que soit le nombre de serveurs. Pro débloque les actions une fois pour toutes, pour 29,99 $US. Sans abonnement, sans compte.

Free

pour toujours

Pointez-le sur la production et voyez tout.

  • Tous les écrans de surveillance : Santé, Activité, Verrous, Vacuum et gonflement, Réplication, Stockage, Requêtes lentes
  • Connexions illimitées avec TLS, tunnel SSH, empreintes épinglées et Face ID
  • Navigateur de données avec filtres côté serveur, clés étrangères, export CSV et JSON
  • Console SQL pour les lectures, dans une transaction en lecture seule
  • Le classificateur SQL et ses explications

Pro

29,99 $US

achat unique

Pour le moment où il faut agir.

  • Annuler et terminer des sessions, annuler la racine d’une chaîne de verrous
  • VACUUM, ANALYZE et suppression d’un slot de réplication
  • Écritures et DDL dans la console, derrière des confirmations
  • Insérer, modifier et supprimer des lignes dans les tables avec clé primaire
  • L’assistant IA avec votre propre clé ou votre propre modèle

Dans Free, les actions Pro restent visibles, marquées PRO, pour que vous voyiez ce qu’elles feraient. L’assistant fonctionne gratuitement sur l’incident de démo intégré. Hors des États-Unis, l’App Store affiche le prix dans votre devise.

Bientôt sur l’App Store Me prévenir par e-mail à la sortie

Free · Pro 29,99 $US en achat unique · PostgreSQL 13–18 · iOS 17+ · iPhone

Questions sur HeapDeck et Postgres

HeapDeck fonctionne-t-il avec Amazon RDS, Cloud SQL, Azure ou Supabase ?

HeapDeck fonctionne avec tout PostgreSQL 13–18 que votre iPhone peut joindre, auto-hébergé ou géré, primaire ou réplica. Si votre rôle n’est pas superuser, les écrans indiquent ce qui est masqué et le GRANT pg_monitor qui y remédie.

Les fournisseurs gérés signent leurs certificats avec des racines qu’iOS n’intègre pas. Pour eux, utilisez sslmode=require : la connexion est chiffrée et HeapDeck épingle l’empreinte du certificat à la première connexion.

Peut-il joindre une base derrière un bastion ?

Oui. Activez le tunnel SSH dans la connexion et saisissez l’hôte du bastion, l’utilisateur et un mot de passe ou une clé. La clé doit être une clé Ed25519 non chiffrée au format OpenSSH ; la clé d’hôte du bastion peut être Ed25519 ou ECDSA et elle est épinglée à la première connexion.

La version 1.0 ne prend pas en charge les clés RSA, les clés protégées par une phrase de passe, les codes à usage unique ni les chaînes de serveurs de rebond.

Mes identifiants ou mes données quittent-ils mon iPhone ?

HeapDeck se connecte à votre serveur directement ou via votre bastion SSH. Il n’y a ni serveur HeapDeck ni compte. Les mots de passe, les clés SSH et les empreintes épinglées restent dans l’iOS Keychain de cet appareil, sans synchronisation iCloud.

Deux choses peuvent quitter le téléphone, toutes deux sous votre contrôle : une question au fournisseur d’IA que vous avez configuré (Pro), et les rapports de plantage et les statistiques d’utilisation, que vous pouvez désactiver au premier lancement ou dans Réglages. Ni l’une ni l’autre ne contient de SQL, de noms de tables, de noms d’hôtes, de valeurs ni d’identifiants. Les détails sont dans la politique de confidentialité.

Faut-il être superuser ?

Non. Un rôle avec pg_monitor couvre les écrans de surveillance : GRANT pg_monitor TO your_role;. Sans lui, HeapDeck fonctionne quand même et signale ce que le serveur cache à votre rôle. Annuler les sessions d’autres rôles demande les droits PostgreSQL habituels, comme pg_signal_backend.

Annuler ou terminer : lequel choisir ?

Annuler (pg_cancel_backend) arrête la requête qu’une session exécute ; la session et sa transaction restent ouvertes. Terminer (pg_terminate_backend) tue toute la session et effectue le rollback de sa transaction.

Une session idle in transaction n’exécute aucune requête, donc Annuler n’a aucun effet sur elle : c’est Terminer qui libère ses verrous. HeapDeck vous demande de saisir le pid avant de terminer la racine d’une chaîne de verrous ou une session sur une connexion Production.

HeapDeck peut-il casser ma base de données ?

Free n’écrit rien du tout : les lectures de la console s’exécutent dans BEGIN READ ONLY … ROLLBACK. Avec Pro, chaque écriture passe quatre contrôles, dans l’ordre : Pro, l’option Lecture seule de la connexion, le classificateur SQL et votre confirmation.

Avant de lancer VACUUM FULL, de supprimer un slot ou de terminer la racine d’une chaîne de verrous, HeapDeck vous demande de saisir le nom de la table, le nom du slot ou le pid. Une connexion marquée Production reçoit un badge PROD et des confirmations plus strictes.

Pourquoi ne pas simplement se connecter en SSH et lancer psql ?

Vous le pouvez toujours. HeapDeck donne à chaque question d’incident son propre écran, pour que vous n’ayez pas à taper de requêtes sur un clavier de téléphone : qui bloque et combien attendent, ce qu’exécute la racine, à quel point le wraparound est proche, quel slot retient du WAL. Il relit la chaîne de verrous avant d’agir et vous demande de confirmer.

Que voit l’assistant IA ?

Un instantané expurgé de l’écran sur lequel porte votre question. L’hôte, le port, les mots de passe et les clés n’y figurent jamais, et les valeurs deviennent des espaces réservés comme $1. Pour les modèles cloud, les noms de bases, de tables et de colonnes sont masqués par défaut et rétablis sur votre téléphone à l’arrivée de la réponse.

Les demandes partent de votre iPhone vers le fournisseur que vous avez choisi, avec votre propre clé (Anthropic, OpenAI, OpenRouter, Z.ai), ou vers votre propre Ollama ou serveur compatible OpenAI. « Ce que voit le modèle » montre le texte exact avant que vous l’envoyiez. L’assistant fait partie de Pro et n’exécute jamais de SQL de lui-même.

Y a-t-il un abonnement ?

Non. La surveillance est gratuite, et Pro est un achat unique de 29,99 $US, lié à votre Apple ID. Il n’y a pas de compte, ni d’essai limité dans le temps.

M’alertera-t-il en cas de panne ?

Non. HeapDeck fonctionne tant qu’il est ouvert et ne surveille rien en arrière-plan. Gardez votre système d’alerte tel quel : HeapDeck est l’écran que vous ouvrez après l’alerte.

Fonctionne-t-il sur iPad ?

HeapDeck est conçu pour l’iPhone, en portrait. Sur iPad, il tourne en mode de compatibilité iPhone.

Guides pour les incidents Postgres

Les problèmes qui vous réveillent la nuit, une page pour chacun : le SQL pour vérifier à la main et ce que montre HeapDeck. Les guides sont en anglais.

Sur le blog

Tous les articles

Installez-le sur votre téléphone avant le prochain incident Postgres.

Ajoutez un serveur, épinglez son certificat, et tous les écrans de surveillance sont à vous, gratuitement. Pro est là pour la nuit où il faudra agir.

Bientôt sur l’App Store Me prévenir par e-mail à la sortie

Free · Pro 29,99 $US en achat unique · PostgreSQL 13–18 · iOS 17+ · iPhone