 Donc, Greffit, qu'est-ce que c'est? C'est un logiciel qui permet d'agriger des métriques, des données et d'en faire des graffes. Des métriques, ça peut être n'importe quelle source de données. Si on pense, par exemple, en termes d'une API, ça peut être la performance, le nombre d'appel, la durée des appels, les erreurs qu'on peut obtenir sur l'API, ou ça peut être des métriques qui proviennent du système, comme par exemple le load sur la machine. Je travaille pour Outbox Technologies qui est une compagnie qui fait un système de bieterie qui offre à ses clients la possibilité de faire des ventes web de biais, puis des ventes de biais aussi à travers dans les différents stades. Et pour faire le suivi de ce qui se passe dans les différents systèmes qu'on a, on utilise Greffit. Puis je vais vous montrer un peu ce tableau-là ici qui est une capture d'écran réelle d'un graphique qui est revenu dans un événement bien particulier. On a des ventes régulières, mais quand on a une mise en vente de biais, c'est-à-dire qu'il y a des biais qui deviennent offerts au public à partir d'une certaine heure, c'est sûr que nos systèmes deviennent plus chargés, puis on a aussi un portrait de ce qui se passe sur le système durant le mise en vente. Je vais vous attirer à votre attention ici. A la gauche, c'est le nombre d'appels. Chaque barre d'enfants représente une minute de données à irriger. C'est le nombre d'appels. En bas, c'est le temps moyen d'exécution pour ces appels-là. Au milieu ici, c'est les courriels qui sont envoyés par le système, les biais électroniques qui créent les confirmations. On voit ici que le taux de vente et le constant appellent le plus important qu'on a dans ces situations-là, c'est l'appel de vente. Il prend 3,8 secondes à s'exécuter. On fait appel à faire avec un processeur externe pour la carte des crédits, ce qui explique le temps, mais on voit que c'est stable, donc que le système va bien. On voit ici le nombre de recherches qui, du d'un coup, à partir de midi, explosent carrément. Puis on voit le nombre de sessions créées dans le système. Ici, envers, le nombre de commandes qui sont faits, on peut évaluer peut-être à 3 000 biais. Peut-être que ce qu'on voit là, c'est en moyenne 3 biais par commande. Ici, on voit la salle d'attente. Grosso modo, c'est qu'avant la mise en vente, les gens font une file virtuelle. Normalement, c'est une pente qui ressemble un peu plus à une ligne comme ici, sauf que le lien a été publié tardivement par la salle. Il y a eu 1 200 personnes qui se sont présentées, d'un coup, qui sont entrées dans la salle d'attente, et après ça, ils sont formés à faire des recherches et à acheter des biais. Je vais vous montrer maintenant graphite qui roule sur mon poste présentement. C'est l'interface web de graphite. Il y a déjà un agent qui roule présentement sur le poste qui est ici, qui accumule à toutes les minutes, qui va aller vérifier le load du laptop et qui va l'accumuler. Si je peux vraiment prendre les métriques, les afficher ici, venir ici afficher par exemple la dernière heure. Et on voit le résultat. Ce qui est intéressant avec ça, c'est que deux choses. Premièrement, toutes les opérations que je vais faire ici sur le graphique, je peux venir ici faire copier l'URL de l'image, ensuite venir ici et l'afficher. En fait, je peux prendre cette image-là et l'incorporer dans une page HTML. Donc je peux faire le tableau de bord que l'on voyait tout à l'heure avec les différents chorés. L'incorporer, c'est carrément plusieurs URL comme ça qui sont assemblées dans une page HTML tout simplement. Si on regarde aussi, on est capable, et c'est des choses les plus intéressantes avec graphite, c'est qu'on a accès à différentes fonctions, une grande planopie de fonctions qu'on peut appliquer sur les données et changer la façon dont elles sont affichées. Par exemple ici, je peux venir chercher le maximum des valeurs de ces trois séries-là, ce qui fait un graphique qui n'a peut-être pas beaucoup de sens mais qui est intéressant à montrer. Et des fonctions, on en a plusieurs, des intégrales, des dérivées, une planopie qui sont très utiles. Ce que je veux montrer maintenant, je aimerais ça voir votre participation. Je aimerais ça que vous vous rendiez sur mp36.graphdemo.net. Vous allez avoir une petite application comme ça avec trois cercles de couleur. Vous êtes en mesure de cliquer, à chaque fois qu'on clique sur un cercle de couleur, c'est à la grandit au détriment des autres. Et en fait, chaque clic va faire un enregistrement dans un système graphite qui roule sur un hébergeur du maus partagé. Je peux vous montrer, à chaque fois qu'on fait un clic, ça fait un get comme ça. Dans le retour du get, j'ai tout simplement mis une couleur pour qu'on puisse confirmer que le get a bien fonctionné. Si je mets couleur égal rouge ici, ça va ficher en rouge. Oui, mp36.graphdemo, g-a-p-h-d-e-m-o.net. Et puis le reste de l'URL va se remplir tout ça. Donc je vais laisser l'URL ici, pour que vous puissiez l'avoir aussi pendant ce temps-là. Si la souris veut collaborer. Ce HTML-là, ce qui contient tout simplement, j'ai utilisé une libérie javascript qui s'appelle Raphael qui est intéressante pour faire des animations comme ça. Et puis j'ai utilisé du jQuery pour le faire le get à chaque fois qu'on clique comme ça sur les boutons. L'URL qu'on voit ici, c'est une application qui roule sur le Duimos, l'hébergement partagé. C'est un script CGI simple en pittant et qui va venir ici, qui va passer le query string dans l'hiver en environnement CGI. Et en fait, ce qu'on veut faire, c'est simuler une API. Je veux simuler à travers ce mini script CGI-là, comme si j'étais un serveur d'appli qui répondait à des requêtes beaucoup plus complexes et qui allait logger ce qui se passait et on va aller par la suite passer ce logo-là, agriger ça ensemble et envoyer les données à Graphit. Il y a une chose importante qu'il faut savoir, c'est que Graphit ne fait pas d'agrégation de données par lui-même. Il faut le faire soi-même. C'est une décision d'architecture qui a été prise par les développeurs de Graphit pour simplifier un peu l'architecture et donc ça nous prend un petit peu plus de logique. Et puis, tout le code que je suis en train de vous montrer aussi présentement, il va être disponible de toute façon. Je vous donnerai le lien par la suite sur GitHub. Je l'ai mis là et vous pourriez l'utiliser. Donc, ce logo-là ici, on voit que présentement, les gens s'amusent à cliquer, pas mal. Oui, c'est bon, excellent. Et vous avez la clique manie, c'est parfait. Tout ça s'est passé et c'est agrégé comme ça par un du code que je vais vous montrer à l'instant. On va garder le suspense. Je pense que j'ai un tableau bar aussi que je vais pouvoir vous montrer. Donc, je vais charger le fichier click.log. Si il a été modifié, je vais passer l'entrée tout simplement. C'est les deux types de valeurs. Je vais le mettre dans un dictionnaire que je vais envoyer dans une liste. Par contre, pardon que je vais envoyer. Vous êtes liste-là, on va la transformer, on va la grouper. On va faire des structures comme ça par timestamp. On va grouper ça par la résolution qui a été configurée dans le graphite. Qui est ici de 5 secondes. Et on va appeler ici son message. En ce moment, on va communiquer par socket sur le port ici 12.003. On va envoyer un message socket. Je pourrais tout simplement pour envoyer une métrique à graphite. Je peux faire écho d'une métrique. Donc, par exemple, prefix.metric la valeur 13 par exemple. Puis un timestamp unix. Je peux piper ça dans tel net avec graphite.leServer avec le port par défaut. C'est 2003. Ça va l'envoyer, ça l'enregistre. Il accepte n'importe quelle connexion socket réseau. Donc, qu'est-ce que ça fait? Ça fait ce qu'on voit ici et ça fait le tableau de bord qui est ici. Alors, c'est assez équilibré, surprenantment. Je pense qu'il n'y a pas de gagnant. Il y a un petit peu plus de verre, de gens qui préfèrent le verre. Il y a de gens qui préfèrent le rouge. En ordre, on aurait le verre, le rouge et le bleu. Ça serait l'écouleur de la salle. Mais vous êtes surprenantment équilibré. Ok. Alors, je peux vous montrer un dernier détail qui est important. Ici, dans la configuration de graphite, je vais laisser ça ici à côté, on a un fichier ici. Le démon de graphite s'appelle Carbon. C'est le backend de graphite qui va prendre les données, qui va les stocker dans une base donnée, une base donnée qui s'appelle Whisper. Et ici, ce que je veux vous montrer, c'est qu'on peut mettre différentes périodes de rétention. Ici, j'ai mis, on va regarder des données d'une résolution de 5 secondes pour 2 heures, par la suite de 60 secondes pour un jour et par la suite de 15 minutes pour 7 jours. Ce qui nous permet de pouvoir conserver des données historiques sans prendre beaucoup d'espace sur le disque. Et il y a quelqu'un qui s'amuse avec le verre, aussi, beaucoup présentement. Voilà la grosse mondeau. C'est ce que je voulais vous montrer pour graphite. Je vous invite à deux choses. Premièrement, vous pouvez aller sur graphdemo.net sans le MP36. Vous allez voir l'interface complète de graphite. Vous serez en mesure d'aller charger les trois métriques avec lesquels on a joué aujourd'hui et essayer différentes choses dans le... dans le compositeur ici. Et aussi, je vous invite à visiter mon GitHub slash Guillaume P pour l'application Three Colors. Si vous voulez voir le code, si vous voulez pouvoir reproduire ça ou pouvoir vous amuser avec graphite. Merci beaucoup.