documentación
Qué mide sixty, y cómo se instala
Un agente dentro de tu aplicación mide qué hace cada operación — filas devueltas, consultas emitidas, tiempo empleado, bytes enviados, errores lanzados — y envía resúmenes. El colector compara cada versión con la anterior y te dice qué despliegue cambió qué.
Dos consecuencias que conviene conocer antes que nada. No hay umbrales que configurar, porque la comparación es contra tu propia versión anterior y no contra un número que alguien adivinó. Y no se puede comparar nada hasta que haya reportado una segunda versión, así que el primer despliegue tras la instalación está en silencio por diseño.
Elige tu lenguaje
Todos los agentes de servidor miden las mismas señales base y escriben el mismo formato. Lo que cambia es lo que permite cada entorno de ejecución: solo Python puede separar el cálculo de la espera, solo Node instrumenta tus funciones sin que se lo pidan, solo PHP tiene que funcionar sin un hilo en segundo plano, y los planes de consulta necesitan Postgres.
Node
El único agente que instrumenta tus propias funciones sin que se lo pidas: una transformación de compilación abre un span por cada función asíncrona exportada, así que una consulta tiene a quién acreditarse.
npm install @sixty-sh/nodePython
El único agente capaz de distinguir computar de esperar. Todos los demás informan de que tu código se volvió más lento y ahí se quedan — este dice cuál de las dos cosas pasó, y necesitan arreglos opuestos.
pip install sixty-shGo
La instalación es explícita — un middleware, un envoltorio del driver y dos líneas al principio de las funciones que merecen medirse — porque Go no tiene paso de compilación al que engancharse ni forma de alcanzar el contexto de quien llama sin que se lo den.
go get github.com/sixty-sh/sixty-goRuby & Rails
La única instalación sin paso dos. El railtie añade el middleware, se suscribe a sql.active_record y envuelve las acciones de los controladores al arrancar — no hay ningún inicializador que escribir.
gem 'sixty'PHP
El único agente que tiene que funcionar sin un hilo en segundo plano. Un worker de PHP no puede ejecutar un temporizador y todo lo que aprendió muere con la petición, así que las ventanas se agrupan en memoria compartida y se fusionan — sin pérdidas, o los percentiles serían ficción.
composer require sixty-sh/sixtyPor delante del servidor
Un span de servidor termina cuando se escribe la respuesta, que es bastante antes de que haya nada en pantalla. Estos miden la mitad que ocurre después — y, en un móvil o en una aplicación solo con Supabase, la mitad que no tiene ningún span de servidor.
Browser
Lo que el servidor no puede ver: cuánto tardó de verdad la página para una persona real, qué clics no hicieron nada, y qué componente se volvió a renderizar cuatrocientas veces.
npm install @sixty-sh/browserReact Native
Una aplicación no tiene un span del lado servidor con el que compararse, así que una llamada rechazada o una respuesta vacía solo son visibles desde el dispositivo. Este es el agente que las hace visibles.
npm install @sixty-sh/react-nativeSupabase
El único agente que sabe qué *es* el endpoint en vez de cuánto costó — así que puede distinguir una consulta lenta de una política que rechazó una.
npm install @sixty-sh/supabaseLo demás
- OpenTelemetry — envía trazas y métricas OTLP desde tu collector actual, manteniendo Grafana, Prometheus, Elastic, Vercel, AWS u otro backend.
- Qué registra cada agente — una tabla, 8 agentes, todas las señales. La página que hay que leer si estás eligiendo entre dos de ellos o te preguntas por qué nunca aparece un hallazgo.
- Todas las señales — qué significa cada tipo de hallazgo, en qué unidad, y qué clase de cambio de código lo provoca.
- Cómo funciona — el anclaje a despliegues, los sketches de cuantiles, cómo se atribuye una consulta a la función que la emitió, y qué le cuesta el agente a la aplicación.
- Servidor MCP — cómo tu editor lee los hallazgos, reclama uno, lo arregla y deja constancia de lo que hizo.
- GitHub — enlaza un repositorio y un hallazgo nombra el pull request de ese despliegue que tocó el archivo donde vive. Solo lectura, y no se guarda el contenido de ningún archivo.
Dos reglas que cumple cada agente
No puede romper tu aplicación. Cada camino de medición está envuelto para que un fallo dentro del agente no pueda salir como un error de aplicación. Cuando el colector no es alcanzable, el agente sigue midiendo en un búfer acotado y descarta la ventana más antigua en vez de crecer; nada se bloquea, nada reintenta para siempre, y la aplicación no se entera.
Nunca llega a saber quiénes son tus usuarios. Sin identificador de usuario, sin identificador de sesión, sin cookies, sin dirección IP, y sin ningún valor de ninguna consulta — las sentencias se normalizan a su forma antes de que nada salga del proceso. Los visitantes únicos se cuentan a partir de un código que rota a diario, que deriva tu propio servidor y que no podemos revertir, y que se suma a un recuento y se descarta en vez de guardarse. Eso es una propiedad del código y no un ajuste, lo que significa que también es una pregunta que este producto no puede responderle a nadie, nosotros incluidos.