user@devops:~$ cat README.md
PSI Monitor
# Descripción
PSI Monitor es una herramienta CLI en C++23 que lee las metricas de Pressure Stall Information del kernel Linux (/proc/pressure/cpu, /proc/pressure/memory y /proc/pressure/io) — el indicador de contencion de recursos que mide el porcentaje de tiempo que las tareas estuvieron bloqueadas esperando por CPU, memoria o I/O. Presenta tabla con metricas 'some' (algunas tareas bloqueadas) y 'full' (todas bloqueadas) en ventanas avg10, avg60 y avg300, mas el tiempo de stall acumulado (total) formateado de forma legible (16.3B / 876.7M us). Clasifica la presion con umbrales de color (verde < 10%, amarillo 10-50%, rojo >= 50%) y avisos HIGH PRESSURE. Incluye contexto del sistema: load average con procesos running/total y ultimo PID, uptime con idle acumulado por nucleo y conteo de CPUs. Modo watch (--watch N) con refresco periodico y salida limpia con Ctrl+C, salida JSON valida para scripting (--json), sin colores para pipes (--no-color) y self-test con 13 casos (--selftest) que verifica el parser contra lineas PSI reales. Parsing estricto: valores malformados rechazan la linea. Cero dependencias: compilacion directa con g++ -std=c++23, solo biblioteca estandar.
# Características principales
$ Metricas PSI del kernel Linux: /proc/pressure/{cpu,memory,io} con 'some' y 'full'
$ Ventanas temporales avg10/avg60/avg300 (% de stall) y total acumulado formateado (16.3B us)
$ Umbrales de color: verde < 10%, amarillo 10-50%, rojo >= 50% con aviso de presion
$ Contexto del sistema: load average, procesos running/total, ultimo PID, uptime e idle
$ Modo watch con refresco periodico (--watch N) y salida limpia con Ctrl+C
$ Salida JSON valida para scripting (--json)
$ Self-test con 13 casos incluyendo lectura real de /proc/pressure (--selftest)
$ Cero dependencias: compilacion directa con g++ sin CMake (C++23, GCC 14)
# Galería
# Tecnologías utilizadas