64 votes

Pourquoi utiliser statsd lors de graphite de Carbone de l'agrégateur peut faire le même travail?

J'ai été d'explorer le Graphite outil de tracé pour montrer la métrique à partir de plusieurs serveurs, et il semble que le "recommandé" façon est d'envoyer toutes les données de mesures de StatsD premier. StatsD agrège les données et les envoie à graphite (ou plutôt, de Carbone).

Dans mon cas, je veux faire de simples agrégations comme la somme et la moyenne des données sur les serveurs et de l'intrigue que dans le graphite. Le Graphite est livré avec un agrégateur de Carbone qui peut le faire.

StatsD n'a même pas de fournir de l'agrégation de la sorte, je suis en train de parler.

Ma question est, dois-je utiliser statsd à tous pour mon cas d'utilisation? Rien de ce que je suis en manque ici?

32voto

ALQ Points 523
  1. StatsD fonctionne sur UDP, ce qui supprime le risque de carbon-aggregator.py la lenteur de la réponse et de l'introduction de la latence dans votre application. En d'autres termes, le couplage lâche.

  2. StatsD prend en charge l'échantillonnage de l'inbound métriques, ce qui est utile lorsque vous ne voulez pas que votre agrégateur de prendre 100% de tous les points de données pour calculer des statistiques descriptives. Pour le volume élevé des sections de code, il est courant d'utiliser 0,5%-1% des taux d'échantillonnage de façon à ne pas surcharger StatsD.

  3. StatsD a large côté client support.

10voto

Jan Fabry Points 3977

Si le Carbone agrégateur offre tout ce dont vous avez besoin, il n'y a aucune raison de ne pas l'utiliser. Il comporte deux fonctions d'agrégation (somme et moyenne), et en effet ils ne sont pas couverts par StatsD. (Je ne suis pas sûr au sujet de l'histoire, mais peut-être que le Carbone agrégateur existait déjà et que l'StatsD auteurs ne souhaite pas dupliquer les fonctionnalités?) La réception de données via UDP est également soutenu par de Carbone, de sorte que la seule chose que vous manquez serait l'échantillonnage, qui n'a pas d'importance si vous agrégation par la moyenne.

StatsD prend en charge différents métrique types en ajoutant des valeurs agrégées (par exemple, pour le timer: moyenne, inférieure, supérieure et supérieure Xe percentile, ...). Je les aime, mais si vous n'en avez pas besoin, le Carbone, l'agrégateur est un bon moyen de faire trop.

J'ai été en regardant le code source de Carbone, agrégateur et StatsD (et Bucky, un StatsD mise en œuvre en Python), et ils sont tous tellement simple, que je ne serais pas s'inquiéter à propos de l'utilisation des ressources ou de la performance, soit au choix.

4voto

akh Points 56

Ressemble carbone agrégateur et statsd support disjoint ensemble de fonctionnalités:

  • statsd prend en charge le calcul du taux et de sommation, mais ne prend pas en charge les valeurs de calcul de la moyenne
  • carbone agrégateur prend en charge en moyenne mais ne prend pas en charge le calcul du taux.

-2voto

rogercampos Points 653

Parce que le graphite est la résolution minimale est de 10 secondes, donc vous ne pouvez envoyer que deux valeurs différentes pour la même métrique en moins de 10 secondes. StatsD résout ce problème en pré-assembler, et au lieu de dire "1 utilisateur enregistré maintenant" et "1 utilisateur enregistré maintenant," dit-il "2 utilisateurs enregistrés".

L'autre raison est la performance parce que:

  1. Vous envoyez des données à StatsD via UDP, qui est un feu et oublier protocole sans état, beaucoup plus rapide
  2. StatsD etsy de la mise en œuvre est en NodeJS qui augmente aussi les performances d'un lot.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X