En el mundo del desarrollo y la operación de software, existe una verdad incómoda: las herramientas de monitorización de infraestructura te dicen que el servidor está en llamas, pero rara vez quién encendió la cerilla. Equipos enteros confían en Zabbix, Nagios o Prometheus para conocer el estado de CPU, memoria o disco, pero cuando un cliente reporta que 'el sitio se volvió lento después del almuerzo', esas gráficas solo encogen los hombros. La respuesta a 'qué página, qué ruta de código, desde cuándo' vive una capa arriba: en el rendimiento de aplicaciones (APM). El mercado SaaS ofrece soluciones como Datadog APM o New Relic, pero con costos que para una empresa con decenas de sitios en servidores propios pueden superar los cinco dígitos anuales, además de un detalle sutil: los metadatos del tráfico de producción terminan en la nube de otro proveedor, algo que en entornos europeos o empresariales abre conversaciones de cumplimiento que nadie quiere tener.
En Intaro, donde el autor lidera el desarrollo backend como subdirector, han tenido esa capa de APM durante más de una década sin pagar un céntimo: Pinboard, un panel de control de código abierto para Pinba, nacido en su propio repositorio en 2013. Este ecosistema se sitúa junto a Zabbix, observando docenas de sitios productivos en vivo. Cuando algo se degrada, Zabbix señala dónde; Pinboard responde exactamente qué: la URL, el grupo de temporizadores y el momento exacto en que comenzó.
Pinba, el motor subyacente, agrega cada petición de todos los servidores PHP en tiempo real, consultable mediante SQL, pero solo retiene una ventana móvil de 15 minutos en RAM. Es brillante para el 'ahora', pero inútil para 'comparar con el martes pasado'. La idea central de Pinboard es elegantemente simple: cada 15 minutos, tomar una fotografía de los datos vivos y archivarla. Un comando de agregación programado lee las vistas en memoria de Pinba y escribe instantáneas con marca de tiempo en tablas InnoDB ordinarias (la familia ipm_*) que persisten todo el tiempo que se desee: un mes por defecto. Así se genera historial de tráfico, tiempo de respuesta, CPU y memoria por sitio, por servidor y por sitio en servidor; percentiles p90/p95/p99; las 10 páginas más lentas, las que más memoria consumen y las que más CPU exigen, con sus URLs exactas; y las páginas que devuelven errores HTTP, para que los picos de 5xx lleguen con nombre y apellido.
Lo más interesante desde el punto de vista técnico ocurre en el límite entre Pinboard y el motor. ¿Cómo pedirle a Pinba los percentiles por host virtual? No escribiendo una consulta, sino creando una tabla con ENGINE=PINBA y un comentario que define el informe. Por ejemplo: CREATE TABLE ipm_pinba_report_by_server_90_95_99 ( ... ) ENGINE=PINBA COMMENT='report2:::90,95,99';. El motor analiza ese comentario y desde ese momento mantiene la agregación incrementalmente en RAM a medida que llegan los paquetes UDP. Seleccionar de esa tabla es una búsqueda instantánea, no un cálculo pesado. Las migraciones de Pinboard crean un conjunto de estas tablas virtuales, y el agregador simplemente las cosecha cada 15 minutos. El trabajo pesado ocurre donde ya están los datos; el panel se mantiene como un lector ligero y económico.
La carga sobre los servidores de producción es mínima: un paquete UDP por petición. La extensión PHP no añade latencia medible, y los sitios ni siquiera notan si el panel existe. Esta arquitectura se ejecuta en sitios reales de clientes las 24 horas del día, todos los días.
Pinboard fue creado por Ilyas Salikhov en Intaro y open-source en abril de 2013. Obtuvo 475 estrellas en GitHub, 89 forks y parches de una docena de colaboradores. Pero también era claramente un artefacto de 2013: PHP 5.3, Silex, Twig 1, Swiftmailer. El desarrollo activo se desvaneció después de 2016; el último commit fue en 2018, el mismo año en que Silex fue oficialmente discontinuado. El proyecto no solo envejeció, se fosilizó: no se podía instalar con Composer en un servidor moderno sin rituales complejos. Y dado que Pinba también estaba atascado en MySQL 5.x, todo el ecosistema se deslizó lentamente hacia 'solo funciona en servidores que tememos tocar'. Sin embargo, dentro de la empresa seguía corriendo y siendo útil: un panel de diez años aún capturaba regresiones reales en sitios reales cada semana. Herramientas así merecen un rescate.
En 2026, el autor retomó Pinboard. No fue un puerto, sino una reescritura apoyada en los hombros del proyecto antiguo: el mismo modelo de datos probado y los mismos informes, pero todo lo demás nuevo. Backend con Symfony 8 y PHP 8.4/8.5, Doctrine DBAL 4, y PHPStan en nivel 10. Un código que se escribió por última vez en la era PHP 5 ahora pasa el análisis estático más estricto. El frontend se reconstruyó con Webpack Encore y pnpm, sustituyendo el jQuery de 2013. Las operaciones se simplificaron con un stack Docker Compose: nginx, PHP-FPM, un contenedor cron para la agregación y el motor Pinba (el fork para MySQL 8.4 LTS / MariaDB). Un solo docker compose up -d y el sistema arranca. Se añadió integración continua con tests y cobertura, escaneo de seguridad CodeQL, Dependabot y lanzamientos automatizados. Se eliminaron treinta dependencias con vulnerabilidades acumuladas. También se corrigieron problemas sutiles que arrastraba el código antiguo, como bloqueos de agregación tras caídas, un bug en la limpieza del historial de etiquetas y el filtrado de acceso por servidor por usuario.
El proyecto vive en github.com/intaro/pinboard, bajo licencia MIT, y la imagen Docker se descarga unas 700 veces al mes. Todo el stack, con un solo comando, sin facturas de licencia. Para equipos de desarrollo que buscan mantener el control de sus datos y evitar costos recurrentes, Pinboard es una alternativa real a las soluciones comerciales. Y aquí es donde entra Q2BSTUDIO: como empresa de desarrollo de software y tecnología, sabemos que cada proyecto tiene necesidades únicas de monitorización. Ya sea que estés construyendo aplicaciones a medida para tus clientes o gestionando infraestructura en la nube con cloud AWS/Azure, contar con herramientas como Pinboard te permite entender el rendimiento real de tu código sin depender de terceros. La integración de IA, ciberseguridad, BI con Power BI o agentes inteligentes requiere también visibilidad a nivel de aplicación. Pinboard, al ser autoalojado y gratuito, encaja perfectamente en entornos donde la privacidad y el control son críticos.
En resumen, Pinboard demuestra que a veces no se necesita reinventar la rueda, sino negarse a dejar morir lo que funciona. Trece años después de su primer commit, sigue haciendo lo que fue creado para hacer: decirle a los desarrolladores qué página encendió la cerilla. Y con el nuevo mantenimiento, está listo para otros trece años.



