À propos du projet
ActiveAnalytics est un moteur Rails qui peut être monté directement dans une application Ruby on Rails pour fournir des analyses de trafic simples et first-party. Son objectif affiché est la confidentialité : il ne collecte aucun cookie, ne diffuse aucun JavaScript, ne s'appuie sur aucun service tiers, et ne doit donc pas être bloqué par les bloqueurs de publicités ou les extensions de confidentialité.
Ce que rapporte le tableau de bord
- Sources : les pages et domaines qui amènent du trafic vers l'application.
- Pages vues : les pages les plus fréquemment consultées.
- Page suivante/précédente : les pages d'entrée et de sortie associées à une page donnée.
- Statistiques navigateur : les navigateurs et versions de navigateur visitant le site.
Le README souligne que l'outil ne révèle rien sur les visiteurs individuels.
Installation
Ajouter le gem au Gemfile, exécuter bundle, installer et exécuter les migrations du moteur, puis monter le moteur sur un endpoint choisi dans config/routes.rb :
gem 'active_analytics'
bundle
rails active_analytics:install:migrations
rails db:migrate
# config/routes.rb
mount ActiveAnalytics::Engine, at: "analytics"
Par défaut, le tableau de bord hérite de ActionController::Base. Un contrôleur de base personnalisé peut être configuré via ActiveAnalytics.base_controller_class dans un initializer.
Collecte du trafic
Deux approches sont documentées. L'option synchrone appelle ActiveAnalytics.record_request(request), généralement depuis un callback after_action dans ApplicationController ; c'est la plus simple à configurer mais elle écrit dans la base de données à chaque requête. L'option asynchrone appelle ActiveAnalytics.queue_request(request), enfilant les données dans Redis afin qu'aucune écriture en base ne se produise par requête ; les données en attente sont ensuite persistées en appelant ActiveAnalytics.flush_queue depuis une tâche cron ou un job en arrière-plan. Le README suggère de vidanger régulièrement et de faire le dernier vidage de la journée à 23h59 afin que les chiffres quotidiens ne soient pas décalés au jour suivant. Redis peut être configuré avec ActiveAnalytics.redis_url ou une connexion ActiveAnalytics.redis personnalisée.
Les exemples recommandent d'enregistrer uniquement les réponses HTML, de filtrer vers un domaine canonique, et d'utiliser un gem de détection de bots pour ignorer les robots. Les URLs sensibles telles que les pages de réinitialisation de mot de passe peuvent être exclues avec skip_after_action.
Authentification
L'authentification variant d'une application à l'autre, le moteur ne suppose aucun schéma. Le README montre le monkey patching de ActiveAnalytics::ApplicationController avec un before_action qui lève une erreur de routage pour les non-admins, requis depuis config.after_initialize afin qu'il ne soit pas rechargé en développement. Avec Devise, le mount peut plutôt être enveloppé dans un bloc authenticate dans routes.rb.
Licence et origine
ActiveAnalytics est publié en open source sous la licence MIT et est développé par Base Secrète, qui développe également l'outil de monitoring Rails RoRvsWild.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.