Qué mira exactamente, y con qué costo
59 comprobaciones corriendo contra bases reales, cada una con su umbral a la vista.
33 de Oracle, 25 de PostgreSQL y 1 que vigila al propio PulseDB en los dos motores. La tabla de abajo sale del mismo catálogo que se despliega: si una comprobación cambia de umbral, cambia acá.
Ocho categorías, no una lista plana
Cada comprobación pertenece a una de ocho categorías fijas en el esquema, y hoy las 8 tienen comprobaciones en producción.
Rendimiento
Carga, esperas, bloqueos y sesiones.
Disponibilidad
Instancia, servicios, jobs y errores del log.
Capacidad
Espacio, crecimiento y cuándo se agota.
Seguridad
Cuentas, privilegios y actividad sospechosa de usuarios.
Automonitoreo
PulseDB vigilando su repositorio y su propio consumo.
Respaldo
Respaldos RMAN, archivado y modo de la base.
Configuración
Redo y checkpoints fuera de su ritmo.
Replicación
WAL retenido por slots de replicación.
Todas, con su umbral exacto
No es una lista de nombres. Es la tabla con la que trabajamos: el código de cada comprobación, qué mira, con qué umbral evalúa (advertencia / crítico), cada cuánto corre y qué tan cara es para su base. «Derivado» quiere decir que se calcula sobre lo que PulseDB ya guardó, sin volver a consultar su base.
| Código | Categoría | Qué mira | Umbral | Intervalo | Costo |
|---|---|---|---|---|---|
| AUTO-SK-002 | Automonitoreo | Costo de PulseDB en la base (Oracle) | ≥ 36 s/h | 1 h | Medio |
| ORA-SK-001 | Capacidad | Espacio por tablespace y proyección de agotamiento | ≥ 85 / ≥ 93 % | 15 min | Barato |
| ORA-SK-002 | Capacidad | Proyección de agotamiento de tablespace | proyección hacia 85 / 93 % | 1 h | Barato |
| ORA-SK-004 | Capacidad | Uso de la Fast Recovery Area | ≥ 85 / ≥ 95 % | 5 min | Barato |
| ORA-SK-006 | Capacidad | Errores de UNDO (ORA-01555 / ORA-30036) | ≥ 1 / ≥ 10 errores | 10 min | Barato |
| ORA-SK-008 | Capacidad | Secuencias próximas a MAXVALUE | ≥ 80 / ≥ 95 % | 12 h | Medio |
| ORA-SK-010 | Rendimiento | CPU del host sostenida | ≥ 85 / ≥ 95 % | 1 min | Derivado |
| ORA-SK-011 | Rendimiento | Espera sostenida en clases de contención | ≥ 0,5 / ≥ 1 sesiones | 1 min | Derivado |
| ORA-SK-012 | Rendimiento | Sesiones bloqueadas y cadenas de bloqueo | ≥ 3 / ≥ 10 sesiones | 1 min | Barato |
| ORA-SK-013 | Rendimiento | Sesión de usuario activa de larga duración | ≥ 60 / ≥ 240 min | 5 min | Barato |
| ORA-SK-017 | Rendimiento | Latencia de lectura por datafile | ≥ 20 / ≥ 50 ms | 10 min | Barato |
| ORA-SK-018 | Configuración | Frecuencia de cambio de redo log | ≥ 6 / ≥ 12 cambios | 15 min | Barato |
| ORA-SK-030 | Disponibilidad | Estado de la instancia | base no abierta | 1 min | Barato |
| ORA-SK-031 | Respaldo | Archivado detenido: destinos en ERROR | ≥ 1 destinos | 5 min | Barato |
| ORA-SK-032 | Respaldo | Horas sin respaldo RMAN correcto | ≥ 26 / ≥ 72 h | 30 min | Barato |
| ORA-SK-034 | Disponibilidad | Errores ORA- en el alert log | ≥ 1 / ≥ 2 | 15 min | Medio |
| ORA-SK-035 | Disponibilidad | Objetos inválidos | ≥ 1 / ≥ 20 objetos | 1 h | Caro |
| ORA-SK-036 | Disponibilidad | Jobs del scheduler fallidos | ≥ 1 / ≥ 5 jobs | 15 min | Medio |
| ORA-SK-037 | Disponibilidad | Corrupción de bloques detectada | ≥ 1 bloques | 30 min | Barato |
| ORA-SK-038 | Disponibilidad | Uso de límites de procesos, sesiones y transacciones | ≥ 80 / ≥ 90 % | 5 min | Barato |
| ORA-SK-039 | Respaldo | Base en modo NOARCHIVELOG | ≥ 1 | 1 h | Barato |
| ORA-SK-041 | Seguridad | Cuentas abiertas con contraseña por defecto | ≥ 1 cuentas | 24 h | Medio |
| ORA-SK-042 | Seguridad | Rol DBA otorgado a cuentas no administradas por Oracle | ≥ 1 cuentas | 24 h | Medio |
| ORA-SK-043 | Seguridad | Cuentas con contraseña próxima a expirar | ≥ 1 / ≥ 5 cuentas | 12 h | Medio |
| ORA-SK-046 | Seguridad | Intentos de login fallidos por usuario | ≥ 10 / ≥ 50 intentos | 15 min | Medio |
| ORA-SK-047 | Seguridad | Actividad sospechosa de usuario | ≥ 1 usuario con indicadores | 5 min | Medio |
| ORA-SK-050 | Rendimiento | Carga de la instancia (serie histórica para el panel de Rendimiento) | solo serie, para la línea base | 1 min | Barato |
| ORA-SK-051 | Rendimiento | Eventos de espera (serie histórica para el panel de Rendimiento) | solo serie, para la línea base | 1 min | Barato |
| ORA-SK-052 | Disponibilidad | Alertas reales de Oracle | ≥ 1 | 15 min | Barato |
| ORA-SK-053 | Rendimiento | Perfil de carga ampliado (serie para línea base) | solo serie, para la línea base | 1 min | Barato |
| ORA-SK-054 | Rendimiento | Carga de espera por clase (serie para línea base) | solo serie, para la línea base | 1 min | Barato |
| ORA-SK-090 | Rendimiento | Comportamiento anómalo respecto de la línea base | desvío de la línea base, z robusto ≥ 3,5 | 5 min | Derivado |
| ORA-SK-091 | Capacidad | Consumo proyectado a 24 horas | proyección: cruza el umbral crítico en 24 h | 1 h | Derivado |
| AUTO-SK-003 | Automonitoreo | Costo de PulseDB en la base (PostgreSQL) | ≥ 36 s/h | 1 h | Barato |
| PG-SK-001 | Capacidad | Tamaño de base de datos | ≥ 8.192 / ≥ 16.384 MB | 15 min | Barato |
| PG-SK-002 | Capacidad | Proyección de crecimiento del tamaño de base de datos | proyección hacia 8.192 / 16.384 MB | 1 h | Barato |
| PG-SK-003 | Rendimiento | Tuplas muertas por tabla (retraso de autovacuum) | ≥ 20 / ≥ 50 % | 6 h | Medio |
| PG-SK-004 | Disponibilidad | Riesgo de transaction ID wraparound | ≥ 150.000.000 / ≥ 200.000.000 transacciones | 1 h | Medio |
| PG-SK-005 | Disponibilidad | Proyección de riesgo de transaction ID wraparound | proyección hacia 150.000.000 / 200.000.000 transacciones | 1 h | Barato |
| PG-SK-007 | Replicación | WAL retenido por slots de replicación inactivos | ≥ 1.024 / ≥ 5.120 MB | 5 min | Barato |
| PG-SK-008 | Rendimiento | Archivos temporales generados por intervalo | ≥ 1.024 / ≥ 5.120 MB | 5 min | Barato |
| PG-SK-010 | Disponibilidad | Riesgo de MultiXact wraparound | ≥ 400.000.000 / ≥ 1.200.000.000 | 1 h | Medio |
| PG-SK-022 | Rendimiento | Conexiones idle in transaction | ≥ 5 / ≥ 15 sesiones | 1 min | Barato |
| PG-SK-023 | Rendimiento | Sesiones bloqueadas y cadenas de espera | ≥ 3 / ≥ 10 sesiones | 1 min | Barato |
| PG-SK-024 | Rendimiento | Consulta activa de larga duración | ≥ 15 / ≥ 60 min | 5 min | Barato |
| PG-SK-025 | Configuración | Checkpoints forzados por volumen de WAL | ≥ 2 / ≥ 6 checkpoints | 15 min | Barato |
| PG-SK-029 | Rendimiento | Deadlocks por intervalo | ≥ 1 / ≥ 5 deadlocks | 5 min | Barato |
| PG-SK-030 | Disponibilidad | Saturación de conexiones | ≥ 80 / ≥ 90 % | 1 min | Barato |
| PG-SK-031 | Disponibilidad | Transacciones preparadas huérfanas | ≥ 1 transacciones | 15 min | Medio |
| PG-SK-040 | Disponibilidad | Disponibilidad y tiempo de actividad | < 300 / < 60 s | 1 min | Barato |
| PG-SK-044 | Disponibilidad | Errores graves en el log del servidor | ≥ 1 / ≥ 2 | 2 min | Medio |
| PG-SK-050 | Rendimiento | Carga de la instancia (serie histórica para el panel de Rendimiento, PostgreSQL) | solo serie, para la línea base | 1 min | Barato |
| PG-SK-051 | Rendimiento | Eventos de espera (serie histórica para el panel de Rendimiento, PostgreSQL) | solo serie, para la línea base | 1 min | Barato |
| PG-SK-060 | Seguridad | Roles con SUPERUSER además del administrador | ≥ 1 / ≥ 3 roles | 24 h | Barato |
| PG-SK-061 | Seguridad | Contraseñas de roles próximas a vencer | ≤ 14 / ≤ 3 días | 12 h | Barato |
| PG-SK-065 | Seguridad | Actividad sospechosa de usuario | ≥ 1 usuario con indicadores | 5 min | Medio |
| PG-SK-090 | Rendimiento | Comportamiento anómalo respecto de la línea base | desvío de la línea base, z robusto ≥ 3,5 | 5 min | Derivado |
| PG-SK-091 | Capacidad | Consumo proyectado a 24 horas | proyección: cruza el umbral crítico en 24 h | 1 h | Derivado |
| AUTO-SK-001 | Automonitoreo | Filas en particiones DEFAULT del repositorio | ≥ 1 / ≥ 100 | 1 h | Barato |
Además del umbral clásico, 5 comprobaciones proyectan la tendencia (cuándo se va a cruzar un umbral, no solo si ya se cruzó), 2 detectan cuando una serie se aparta de su propia línea base y 2 buscan actividad sospechosa de usuarios. Las 6 marcadas «solo serie» no avisan por sí solas: recolectan la carga y las esperas que alimentan esa línea base.
Costo medido, no estimado
Cada ejecución guarda su propia duración en pulsedb.ejecuciones_agente. Estos son los números de la semana al 26 de septiembre de 2026, contra las dos bases del piloto: Oracle 19c y PostgreSQL 16.
65.324 ejecuciones en 7 días
Unas 9.300 por día entre las dos bases, cada una con su resultado guardado.
23 ms de mediana
El 95 % de las ejecuciones termina en menos de 181 ms. La lectura más cara, el alert log de Oracle, se hace cada 15 minutos.
36 s de DB time por hora
Es el tope por base: el 1 % de una CPU. PulseDB mide su propio consumo con dos comprobaciones de automonitoreo y le avisa si lo supera.
~17 s/h en Oracle, 0,34 s/h en PostgreSQL
Medido en el piloto el 24 de septiembre sobre la actividad de sus propios usuarios de monitoreo, no calculado.
Lo que la tabla no dice
Límites, dichos de frente
- No dice que corran igual en cualquier base. Las verificamos contra Oracle 19c y PostgreSQL 16 autogestionado. Para Aurora PostgreSQL el conector está escrito, pero todavía no lo probamos contra un clúster real.
- No proyecta el primer día. La proyección de las próximas 24 horas necesita siete días de historia, y la línea base aprende de lo que ve: una base recién incorporada empieza por los umbrales.
- Una advertencia no siempre abre un ticket en el acto. Si una métrica de nivel queda en advertencia, el ticket se abre recién después de cuatro horas seguidas y con tendencia a empeorar. Un crítico, sí, en el acto.