• # Plastistik

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Piwik : une alternative open source à Google Analytics. Évalué à 6.

    J'ai commencé à bosser sur une alternative à BBCode/PhpMyVisites (que j'aime bien mais bon en production requêter du mySQL en live à chaque hit c'est suicidaire, mais cool le nouveau nom :) ), qui s'appelle Plastistik.

    Le but est d'avoir un système qui permette de très nombreuses requêtes simultanées, mais en gardant un set de données exhaustif et complet. Pour ça le principe est simple : le compteur requête un script très léger qui va stocker les données brutes du visiteur dans un fichier texte (c'est très rapide donc même avec beaucoup de requêtes concurrentes on perds peu de données, mais on en perds un peu à cause des écritures concurrentes sur un même fichier, mais ça pourrait être amélioré en utilisant plusieurs fichiers différents), et un daemon ou un cron (selon le volume de stats que vous engrangez ou vous préférences) parse le fichier texte, interprète les données, et les insère correctement dans la base mySQL.

    L'idée de base c'est que je voulais avoir des stats pour mes sites mais :
    * webalyzer/awstats ça pue c'est moche c'est lent
    * google machin/estat truc je veux pas qu'ils sachent des infos sur mes visiteurs, sans compter qu'ils pourraient foutre de la pub dans leurs marqueurs
    * Phpmyvisites est pas adapté aux sites en production et mettra rapidement un serveur à genoux

    Il me fallait donc un truc simple, léger, et qui sois puissant au niveau des possibilités de rapports perso. Pour la légèreté j'ai aussi pris en compte le temps de chargement du script et il est donc possible de recopier sans aucun problème le javascript du marqueur dans votre propre site voir au milieu du code html pour éviter de charger un élément externe.

    Le code est ici :
    http://svn.kd2.org/svn/misc/apps/plastistik/

    Pour le moment seul le stockage des stats est fonctionnel, l'affichage je réfléchis encore à un système simple de créer des rapports personnalisé (plugins ? requêtes sql ?[1]). On stocke les données suivantes pour le moment :

    Pour chaque visiteur :
    * ip/hostname (ipv6 ready)
    * pays
    * navigateur, version, moteur de rendu (webkit/gecko/opera/trident/etc.)
    * OS
    * résolution écran
    * heure de début de la visite
    * heure de fin de la visite
    * Langues acceptées par le navigateur
    * Plugins acceptés par navigateur

    Pour chaque hit :
    * page visitée
    * referrer
    * temps de chargement de la page (facultatif)
    * heure du hit

    Voilà je pense c'est déjà bien comme données ça doit permettre pas mal de rapports sympas. On peux gérer plusieurs sites en mm temps et créer des marqueurs (tags) si on veux.

    Si ça intéresse des gens, pour participer, critiquer, ou repiquer des idées, hésitez pas !

    [1] l'idée c'est que les gens puissent créer leurs propres rapports comme ils le sentent et moi comme ça j'ai juste à en faire 2-3 bateaux et les autres les gens intéressés les feront :)

    « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)