2016-11-07 1 views
1

Existe-t-il un moyen de produire un temps de réponse moyen par requête, un temps de réponse minimal par requête et un temps de réponse maximal par requête? Je suppose que je pourrais utiliser des variables Atomiques ou la synchronisation par demande pour éviter les conditions de course mais je ne suis pas sûr que ce soit la meilleure façon.Paramètres d'actionneur de ressort personnalisés (temps de réponse moyen, min, maxi)

+0

Vous pouvez ajouter des métriques personnalisées en utilisant Spring 'CounterService' et' GaugeService'. – Isukthar

+1

Oui merci, mais ces objets ne peuvent mettre à jour qu'une mesure. Il n'y a pas de moyen évident de stocker (en mémoire) puis d'accéder aux valeurs précédentes pour effectuer certaines actions (comparer, ajouter, multiplier, diviser) avant de mettre à jour et de stocker à nouveau la valeur. Je suis à la recherche d'un thread sécurisé et tout ce que j'ai jusqu'à maintenant verrouille la portée de l'application avant d'appliquer ces actions. – ampofila

Répondre

1

La solution à ce problème consiste à utiliser le temporisateur dropwizard metrics. Malheureusement, nous sommes confrontés exactement au même problème décrit here qui est une limitation de l'API. Mais dans l'ensemble, cela peut faire le travail.

0

Si vous souhaitez enregistrer le temps de réponse, vous pouvez obtenir l'heure au début et à la fin du gestionnaire, puis mettre à jour un GaugeService avec le delta. Dans le cas où vous souhaitez enregistrer un historique de cette valeur, vous pouvez utiliser un GaugeWriter pour exporter les données actuelles à partir de votre GaugeService.

+0

Merci pour votre réponse. Malheureusement, nous utilisons une version plus ancienne de spring-actuator. Ce dont nous avons besoin pourrait être fait avec des métriques dropwizard si elles avaient des méthodes plus surchargées. – ampofila