Sobre el proyecto
Hummingbird es un servidor de almacenamiento de analítica y seguimiento de sitios auto-alojado escrito para Node.js. Sirve un píxel de seguimiento de 1x1 a los visitantes; la solicitud GET del navegador transporta los datos de seguimiento generados por un pequeño fragmento de JavaScript.
Requisitos e instalación
Requiere node.js v0.8.0 o superior. Los pasos de configuración del README consisten en clonar el repositorio, ejecutar npm install para obtener las dependencias y, opcionalmente, descargar la base de datos GeoIP GeoLiteCity.dat de MaxMind en el directorio raíz si se desea la función de mapa. El servidor se inicia con `node server.js`.
Panel de control y despliegue
Un panel de control se ejecuta en el puerto 8080 por defecto y puede desactivarse para uso en producción en config/config.js. El panel es HTML simple servido desde public/, por lo que cualquier servidor web puede alojarlo. El README advierte que el panel debe asegurarse si no debe ser visible públicamente, normalmente colocándolo detrás de nginx o apache con autenticación básica. La función 'listen' del panel acepta un segundo argumento para la interfaz a vincular — por ejemplo "127.0.0.1" solo para localhost, o "0.0.0.0" para todas las interfaces — y el píxel de seguimiento debe ejecutarse en un puerto separado para que permanezca accesible desde el exterior.
Configuración del seguimiento
client/hummingbird.js contiene un pequeño script que activa un evento de Hummingbird. Puede pegarse en el cuerpo de la página o cargarse y referenciarse con una etiqueta de script. Llamar a HummingbirdTracker.track() sin argumentos envía parámetros estándar como la URL de la página; se pueden adjuntar datos arbitrarios, por ejemplo HummingbirdTracker.track({logged_in: true}), y esos datos pueden usarse dentro de las métricas de Hummingbird para filtrar eventos en el backend.
Arquitectura
Hummingbird está organizado en dos partes: un servidor de seguimiento Node.js que registra la actividad del usuario a través del píxel de seguimiento, y un conjunto de widgets de JavaScript que muestran esa actividad. El servidor transmite toda la actividad a los clientes a través de WebSockets cuando es posible, recurriendo a sockets de Flash o long polling. El objeto Hummingbird.WebSocket recibe eventos de WebSocket del servidor como objetos JSON, y los widgets individuales se suscriben a una métrica y registran funciones manejadoras que se llaman cada vez que esa métrica está presente.
Métricas y widgets personalizados
Las métricas residen en lib/metrics y se cargan automáticamente. Cada métrica contiene una función manejadora invocada cada vez que ocurre un nuevo evento de usuario, y almacena datos en una propiedad de objeto `data` que se emite a los clientes en intervalos especificados por la métrica. total_views.js se ofrece como un ejemplo básico, y cart_adds.js como un ejemplo de filtrado por parámetros de consulta. Los widgets estándar (Counter, Logger, Graph) demuestran cómo conectarse a los datos del servidor; un ejemplo de widget mínimo es public/js/widgets/logger.js. Un widget es un objeto cuyo prototipo extiende Hummingbird.Base e implementa onMessage.
El README también incluye un consejo: para ejecutar la interfaz de usuario localmente mientras se transmiten datos desde un servidor de producción, utilice una URL como http://localhost:8080/?ws_server=your-host.com&ws_port=12345.
Notas del proyecto
Hummingbird está licenciado bajo la Licencia MIT. El README menciona a Michael Nutt, Benny Wong y varios colaboradores adicionales.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.