Bucky – Solution RUM (Real User Monitoring) libre
Bucky est une solution libre qui permet de mesurer les performances ressentie par l’utilisateur (Real User Monitoring) d’une application web via le support de l’api performance.timing préconisée par le W3C
Bucky va donc récupérer toutes ces données de performances et les pousser dans un système de base de données de séries chronologiques comme Graphite, OpenTSDB ou autre.
Pour cela, il suffit de placer dans le code une librairie javascript qui fait moins de 4kb.
<code data-type="html"><script src="bucky.js" data-bucky-host="/bucky" data-bucky-page data-bucky-requests></script>
Bucky utilise un server Node qui transmet les requêtes HTTP avec les données de performances vers Statsd/Graphite, OpenTSDB ou autre.
Voici un exemple de ce qui est récupéré par Bucky :
pages.contactDetail.timing.connectEnd: "172.000|ms"
pages.contactDetail.timing.connectStart: "106.000|ms"
pages.contactDetail.timing.domComplete: "1029.000|ms"
pages.contactDetail.timing.domContentLoadedEventEnd: "1019.000|ms"
pages.contactDetail.timing.domContentLoadedEventStart: "980.000|ms"
pages.contactDetail.timing.domInteractive: "980.000|ms"
pages.contactDetail.timing.domLoading: "254.000|ms"
pages.contactDetail.timing.domainLookupEnd: "106.000|ms"
pages.contactDetail.timing.domainLookupStart: "106.000|ms"
pages.contactDetail.timing.fetchStart: "103.000|ms"
pages.contactDetail.timing.loadEventEnd: "1030.000|ms"
pages.contactDetail.timing.loadEventStart: "1029.000|ms"
pages.contactDetail.timing.navigationStart: "0.000|ms"
pages.contactDetail.timing.requestStart: "173.000|ms"
pages.contactDetail.timing.responseEnd: "243.000|ms"
pages.contactDetail.timing.responseStart: "235.000|ms"
pages.contactDetail.timing.secureConnectionStart: "106.000|ms"
Pour rappel ou information, voici de quelle manière se décompose le modèle de mesure :
Liens utiles :
Page du projet Bucky sur Github
Traduction en Français des préconisations du Navigation Timing de la W3C