Comment installer statsd avec un endpoint graphite dans le cloud

Publié le 9 Juillet 2014

Il s'avère en fait très facile de mettre en place une solution sur mesure de monitoring d'une application, d'un site web, etc.

Pour cela il faut utiliser statsd. Il existe des clients pour tous les principaux langages.

Statsd n'est pas basé sur TCP mais UDP pour l'envoi des messages. Cela permet d'avoir un débit plus rapide en contrepartie du risque de perdre quelques messages (UDP n'acknowledge pas les messages).

 

Côté application

Votre application ou site doit donc envoyer des messages (compteurs, timers, etc) en utilisant le client statsd. Cette partie doit être codée dans l'application un peu de la même façon que des messages de logs.

Il faut bien réfléchir aux données qu'on veut surveiller et choisir des noms de compteurs en conséquence.

 

Serveur Statsd

Ensuite il faut un serveur statsd qui va recevoir toutes les mesures émises par votre application. Le rôle du serveur ici est assez simple car il va juste transférer les mesures vers graphite qui nous permettra de visualiser tout ça.

Le servers statsd est basé sur nodejs. Il faut donc avoir nodejs d'installer ensuite l'application est assez simple.

Il suffit de cloner le repo git de statsd:

git clone https://github.com/etsy/statsd.git
cd statsd
cp exampleConfig.js maConfig.js

 

Graphite

Ensuite avant de modifier la config statsd nous allons d'abord créer un compte sur hostedgraphite. C'est un service payant mais il y a 14 jours gratuits ce qui permet de tester tranquillement.

Une fois votre compte créer il vous faut récupérer votre API key.

Il faut aussi télécharger le backend statsd pour hostedgraphite et le copier dans le rep ./backends https://raw.githubusercontent.com/hostedgraphite/statsdplugin/master/hostedgraphite.js

Maintenant nous sommes prêts à éditer notre fichier maConfig.js pour mettre à jour la config de statsd:

{ graphitePort: 2003
, graphiteHost: "carbon.hostedgraphite.com"
, port: 8125
, backends: [ "./backends/hostedgraphite" ]
, dumpMessages: true
, debug: true
, hostedGraphiteAPIKey: "3fe05a3e-a3e6-45b2-a5e2-bab153599423"
}

 

Voilà on peut maintenant démarrer notre serveur statsd:

node stats.js msmConfig.js

 

Maintenant il n'y a plus qu'à aller sur votre compte graphite et visualiser toutes vos mesures.

Rédigé par Bliz

Publié dans #Intégration continue

Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article