2016-11-25 1 views
2

Nous traitons des messages qui arrivent périodiquement. Nous utilisons la "Minuterie" de la mesure de la mesure de codahale pour mesurer le temps nécessaire pour les traiter.Comment réinitialiser le minuteur des métriques dropwizard?

J'ai trouvé quelqu'un avait le même problème here:. Problème » avec réservoir décroît de façon exponentielle est que si aucune nouvelle donnée arrive, il continuera à donner les mêmes numéros tous les temps Par exemple, disons que vous mettre à jour une minuterie avec 5 et 7 (alors ne rien mettre du tout), alors peu importe quand vous voyez (même après x heures), la minuterie montrera toujours la moyenne à 6 qui n'est pas représentative des 5 dernières minutes par tous les moyens. donc, cela ne fonctionne que si les données arrivent tout le temps. "

Comme vous pouvez le voir avec la ligne bleu foncé: enter image description here

Mais il n'y a aucune suggestion de le résoudre. Et ils disent qu'il ne va pas être mis en œuvre: https://github.com/dropwizard/metrics/issues/399

Comment puis-je réinitialiser ces minuteries correctement ou comment dois-je visualiser afin de ne pas prêter à confusion?

Répondre

4
Note: It is too long for comment. 

Utilisation de la SlidingTimeWindowReservoir couvrira la plupart des cas d'utilisation. Mais comme l'a souligné dans this comment il pourrait y avoir un problème en fonction du nombre d'événements: il garde toutes les mesures dans la fenêtre en mémoire qui devient inacceptable au grand nombre d'événements

Peut-on faire mieux? Continuons la recherche. Si nous sommes chanceux, nous trouverons this blog post. Il décrit exactement votre type de problème. Il y a un lien vers leur solution sale simple. Aussi une suggestion pour utiliser HdrHistogram.

Egalement sur le metrics mailing list il y a plusieurs messages sur exactement ce problème. Pour example et pointez sur Marshall Pierce/hdrhistogram-metrics-reservoir. Qu'est-ce que HdrHistogram et pourquoi l'utiliser pour mesurer les latences vérifier la description du projet.

Et finalement, après un peu plus creuser, vous pouvez trouver également vladimir-bukhtoyarov/metrics-core-hdr projet. Il utilise également HdrHistogram. Par conséquent, il existe deux bibliothèques similaires qui utilisent la même structure de données et prétendent résoudre le problème que vous avez rencontré.

+0

votre réponse est beaucoup plus détaillée que la mienne :) –

0

Je viens de faire un test rapide avec hdrhistogram-metrics-reservoir et semble fonctionner correctement.

Maintenant, je me demande pourquoi cela n'est pas inclus dans la version officielle de Dopwizard? Des pensées?