HeapDeck: Postgres® Monitor para iPhone

Mira qué arde en tu Postgres.Apágalo.

¿Te salta una alerta de Postgres y tienes el portátil en casa? HeapDeck te muestra quién bloquea, cuánto te falta para el wraparound y qué réplica se está quedando atrás, y te deja actuar desde el iPhone. Corta la hemorragia ahora y deja el arreglo de fondo para cuando vuelvas a tu mesa.

Próximamente en el App Store Avísame por correo cuando salga

Free · Pro 29,99 US$ pago único · PostgreSQL 13–18 · iOS 17+ · iPhone

Pantalla Salud de HeapDeck con un servidor de producción en estado Crítico: primero las sesiones bloqueadas, luego las conexiones, la consulta más larga, el wraparound y la replicación

Mira quién bloquea a todos en Postgres. Cancela la raíz con vista previa.

La pantalla Bloqueos construye el árbol de bloqueos a partir de pg_blocking_pids() y pone arriba la raíz del bloqueo: su pid, user@app, cuánto tiempo lleva reteniendo el bloqueo y qué está ejecutando. Debajo, todas las sesiones atascadas en la cola.

  • Cancelar la raíz (desbloquea N) te dice cuántas sesiones están atascadas detrás de ella y muestra sus pids antes de que confirmes. PRO
  • HeapDeck vuelve a leer la cadena antes de enviar nada. Si cambió mientras decidías, ves las cifras nuevas y confirmas de nuevo.
  • Cancelar detiene la consulta en ejecución. Terminar mata la sesión y revierte su transacción, después de que escribas su pid. PRO
  • Cada sesión en espera muestra qué está esperando, como RowExclusiveLock on public.orders. Una raíz que está idle in transaction aparece marcada, y un deadlock se señala como tal.
Pantalla Bloqueos: la raíz del bloqueo lleva 06:48 inactiva dentro de una transacción y bloquea cuatro sesiones; debajo, el botón Cancelar la raíz (desbloquea 4)

Conoce tu % de wraparound antes de que Postgres deje de aceptar escrituras.

La pantalla Vacuum y hinchazón muestra lo cerca que está el servidor del wraparound de ID de transacciones, como porcentaje de 2³¹, con las tablas más antiguas por edad de relfrozenxid. Al llegar al límite, PostgreSQL rechaza las escrituras con database is not accepting commands to avoid wraparound data loss.

  • A partir del 75 %, la pantalla lo dice sin rodeos y enumera las razones habituales por las que autovacuum no da abasto: una transacción abierta desde hace mucho, un slot de replicación inactivo, un worker atascado.
  • Filas muertas por tabla, con su porcentaje y la fecha del último vacuum de cada tabla.
  • Índices sin usar con el espacio que ocupan. HeapDeck te copia DROP INDEX CONCURRENTLY y nunca lo ejecuta por su cuenta.
  • Lanza VACUUM (ANALYZE) o ANALYZE sobre una tabla de la lista. VACUUM FULL te pide antes escribir el nombre de la tabla. PRO
Pantalla Vacuum y hinchazón: wraparound de ID de transacciones al 86 %, un aviso de que la base de datos deja de aceptar escrituras al 100 % y tres causas probables

Llega a tu Postgres a través de tu bastión, con los permisos que ya tiene tu rol.

HeapDeck se conecta desde tu iPhone a tu servidor, directamente o a través de tu bastión SSH. No hay ningún servidor de HeapDeck de por medio ni cuenta que crear. El asistente de IA, si lo configuras, solo habla con el proveedor que elegiste, con tu propia clave.

  • Túnel SSH con contraseña o con clave Ed25519. La clave del host del bastión se fija en la primera conexión.
  • TLS con sslmode=require por defecto. La huella digital SHA-256 del certificado queda fijada, y si el certificado cambia, la conexión se detiene hasta que decidas.
  • Las contraseñas, las claves y las huellas digitales se quedan en el Keychain de este iPhone y nunca se sincronizan. Face ID abre la app.
  • ¿Tu rol no es superusuario? HeapDeck te muestra el GRANT pg_monitor exacto que necesita en lugar de una pantalla vacía.
Hoja “Verifica este servidor” en la primera conexión: la huella digital SHA-256 del certificado del servidor, para compararla con tus registros antes de confiar en él

Las pantallas que abres durante un incidente de Postgres

Diez indicadores de salud nada más abrir y una pantalla nativa detrás de cada uno, para que nunca tengas que escribir psql en el teclado del teléfono. La consola SQL está ahí cuando la necesitas y revisa cada sentencia antes de ejecutarla.

  • Salud

    Un veredicto y diez indicadores: sesiones frente a max_connections, sesiones bloqueadas, la consulta más larga, TPS, aciertos de caché, autovacuum, wraparound, replicación, tamaño de la base de datos y consultas lentas. Se actualiza cada 10 segundos mientras está abierta.

  • Actividad

    Todas las sesiones de pg_stat_activity, primero las que esperan. Filtra por activas, idle in transaction, más de 10 s o en espera. Desliza una fila para cancelarla o terminarla.

  • Replicación y slots

    Retraso de reproducción por réplica, desglosado por fase de WAL. Cada slot con el WAL que retiene, y un aviso cuando un slot inactivo te está llenando el disco.

  • Consultas lentas

    Las 300 sentencias más pesadas de pg_stat_statements, ordenadas por tiempo total, media, llamadas o filas, y las sesiones que están ejecutando una ahora mismo (PostgreSQL 14+).

  • Datos y consola SQL

    Explora tablas, filtra en el servidor, sigue claves foráneas, exporta una página como CSV o JSON. La consola clasifica cada sentencia mientras escribes; en Free, las lecturas se ejecutan dentro de BEGIN READ ONLY.

  • Asistente de IA PRO

    Explica un incidente o una cadena de bloqueos y prepara un borrador de la solución, con tu propia clave de API o tu propio Ollama. Recibe una instantánea enmascarada y nunca ejecuta nada por su cuenta.

HeapDeck 1.0 con datos de ejemplo, en modo oscuro y claro, como iOS.

Monitorizar Postgres es gratis. Pro es una sola compra.

Pruébalo primero en tu propia producción: ninguna pantalla de monitorización tiene muro de pago, en tantos servidores como quieras. Pro desbloquea las acciones con un único pago de 29,99 US$. Sin suscripción, sin cuenta.

Free

para siempre

Conéctalo a producción y míralo todo.

  • Todas las pantallas de monitorización: Salud, Actividad, Bloqueos, Vacuum y hinchazón, Replicación, Almacenamiento, Consultas lentas
  • Conexiones ilimitadas con TLS, túnel SSH, huellas digitales fijadas y Face ID
  • Explorador de datos con filtros en el servidor, claves foráneas y exportación a CSV y JSON
  • Consola SQL para lecturas, dentro de una transacción de solo lectura
  • El clasificador de SQL y sus explicaciones

Pro

29,99 US$

compra única

Para cuando tengas que actuar.

  • Cancelar y terminar sesiones, cancelar la raíz de una cadena de bloqueos
  • VACUUM, ANALYZE y eliminar un slot de replicación
  • Escrituras y DDL en la consola, con confirmación previa
  • Insertar, editar y eliminar filas en tablas con clave primaria
  • El asistente de IA con tu propia clave o tu propio modelo

En Free, las acciones de Pro siguen visibles, marcadas con PRO, para que veas qué harían. El asistente funciona gratis con el incidente de demostración integrado. Fuera de EE. UU., el App Store muestra el precio en tu moneda.

Próximamente en el App Store Avísame por correo cuando salga

Free · Pro 29,99 US$ pago único · PostgreSQL 13–18 · iOS 17+ · iPhone

Preguntas sobre HeapDeck y Postgres

¿Funciona con Amazon RDS, Cloud SQL, Azure o Supabase?

HeapDeck funciona con cualquier PostgreSQL 13–18 al que llegue tu iPhone, autoalojado o gestionado, primario o réplica. Si tu rol no es superusuario, las pantallas muestran qué queda oculto y el GRANT pg_monitor que lo soluciona.

Los proveedores gestionados firman los certificados con raíces que iOS no incluye. Con ellos, usa sslmode=require: la conexión va cifrada y HeapDeck fija la huella digital del certificado en la primera conexión.

¿Puede llegar a una base de datos detrás de un bastión?

Sí. Activa el túnel SSH en la conexión e introduce el host del bastión, el usuario y una contraseña o una clave. La clave debe ser Ed25519, sin cifrar y en formato OpenSSH; la clave del host del propio bastión puede ser Ed25519 o ECDSA y se fija en la primera conexión.

La versión 1.0 no admite claves RSA, claves protegidas con frase de contraseña, códigos de un solo uso ni cadenas de jump hosts.

¿Mis credenciales o mis datos salen de mi iPhone?

HeapDeck se conecta a tu servidor directamente o a través de tu bastión SSH. No hay servidor de HeapDeck ni cuenta. Las contraseñas, las claves SSH y las huellas digitales fijadas se quedan en el iOS Keychain de este dispositivo, sin sincronización con iCloud.

Dos cosas pueden salir del teléfono, y las dos dependen de ti: una pregunta al proveedor de IA que configures (Pro), y los informes de fallos y los recuentos de uso, que puedes desactivar en el primer arranque o en Ajustes. Ninguna de las dos contiene SQL, nombres de tablas, nombres de host, valores ni credenciales. Los detalles están en la política de privacidad.

¿Hace falta ser superusuario?

No. Un rol con pg_monitor cubre las pantallas de monitorización: GRANT pg_monitor TO your_role;. Sin él, HeapDeck sigue funcionando y señala lo que el servidor le oculta a tu rol. Para cancelar sesiones de otros roles hacen falta los permisos habituales de PostgreSQL, como pg_signal_backend.

Cancelar o terminar: ¿cuál de los dos?

Cancelar (pg_cancel_backend) detiene la consulta que está ejecutando una sesión; la sesión y su transacción siguen abiertas. Terminar (pg_terminate_backend) mata la sesión entera y revierte su transacción.

Una sesión idle in transaction no tiene ninguna consulta en ejecución, así que cancelar no le hace nada: lo que libera sus bloqueos es terminarla. HeapDeck te pide escribir el pid antes de terminar la raíz de una cadena de bloqueos o una sesión en una conexión de Producción.

¿Puede HeapDeck romper mi base de datos?

Free no escribe nada: las lecturas de la consola se ejecutan dentro de BEGIN READ ONLY … ROLLBACK. En Pro, cada escritura pasa por cuatro controles, en este orden: Pro, el interruptor Solo lectura de la conexión, el clasificador de SQL y tu confirmación.

VACUUM FULL, eliminar un slot y terminar la raíz de un bloqueo te piden escribir antes el nombre de la tabla, el nombre del slot o el pid. Una conexión marcada como Producción lleva la insignia PROD y confirmaciones más estrictas.

¿Por qué no entrar por SSH y usar psql sin más?

Puedes seguir haciéndolo. HeapDeck da a cada pregunta de un incidente su propia pantalla, para que no escribas consultas en el teclado del teléfono: quién bloquea y cuántas sesiones esperan, qué ejecuta la raíz, cuánto falta para el wraparound, qué slot retiene WAL. Vuelve a leer la cadena de bloqueos antes de actuar y te pide que confirmes.

¿Qué ve el asistente de IA?

Una instantánea enmascarada de la pantalla sobre la que preguntaste. El host, el puerto, las contraseñas y las claves nunca van en ella, y los valores se convierten en marcadores como $1. Con modelos en la nube, los nombres de bases de datos, tablas y columnas se ocultan por defecto y se restauran en tu teléfono cuando llega la respuesta.

Las solicitudes van de tu iPhone al proveedor que elegiste, con tu propia clave (Anthropic, OpenAI, OpenRouter, Z.ai), o a tu propio Ollama o servidor compatible con OpenAI. “Lo que ve el modelo” muestra el texto exacto antes de que lo envíes. El asistente forma parte de Pro y nunca ejecuta SQL por su cuenta.

¿Hay suscripción?

No. Monitorizar es gratis, y Pro es una sola compra de 29,99 US$ vinculada a tu Apple ID. No hay cuenta ni periodo de prueba que caduque.

¿Me avisará cuando algo se rompa?

No. HeapDeck funciona mientras está abierto y no monitoriza nada en segundo plano. Deja tus alertas donde están: HeapDeck es la pantalla que abres cuando salta la alerta.

¿Funciona en iPad?

HeapDeck está hecho para iPhone, en vertical. En iPad funciona en modo de compatibilidad con iPhone.

Guías para incidentes de Postgres

Los problemas que te despiertan de noche, una página para cada uno: el SQL para comprobarlo a mano y lo que muestra HeapDeck. Las guías están en inglés.

Tenlo en el teléfono antes del próximo incidente de Postgres.

Añade un servidor, fija su certificado y todas las pantallas de monitorización son tuyas gratis. Pro está ahí para la noche en que tengas que actuar.

Próximamente en el App Store Avísame por correo cuando salga

Free · Pro 29,99 US$ pago único · PostgreSQL 13–18 · iOS 17+ · iPhone