2016-06-17 1 views
1

J'utilise Spring Boot Metrics http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-metrics.html#production-ready-metrics pour gérer certains compteurs spécifiques à un domaine.Comment lire les valeurs métriques de démarrage Spring?

J'ai dans mes classes @Autowired org.springframework.boot.actuate.metrics.CounterService et j'augmente les métriques sur les événements spécifiques au domaine (différentes phases d'analyse de ma requête).

Je voudrais lire ces métriques dans mon test (pour vérifier si ma demande de test a passé toutes les étapes requises), mais il n'y a pas de méthode get sur CounterService. Je vois que toutes les implémentations de CounterService ont des private ConcurrentMap avec des métriques, mais il n'y a pas de moyen (propre) pour arriver à cette structure de données. J'utilise Spring Boot 1.3.5.RELEASE.

edit: Je suis intéressé par le test d'intégration, et si possible, je ne veux pas me moquer des composants.

Actuellement j'utilise l'appel REST contre/metric endpoint et j'analyse renvoyé json, mais je n'aime pas cette approche.

Répondre

1

Une approche serait d'utiliser un simulacre CounterService et de vérifier ensuite que les méthodes attendues ont été appelées sur le simulacre.

Si vous préférez quelque chose qui est plus d'un test d'intégration, vous pouvez utiliser un MetricReader pour lire les métriques que CounterService a écrites. Vous devriez être en mesure de @Autowire un MetricReader ou MetricRepository (ce dernier est une combinaison de MetricReader et MetricWriter) et appelez findOne.

+0

merci, MetricRepository semble parfait! J'ai vu la documentation de Spring Boot, mais elle décrit d'autres cas d'utilisation - l'exportation de mesures vers Redis et d'autres bases de données. Je pense que MetricRepository résout un autre problème que j'ai - Je voudrais avoir un point de terminaison HTTP (pour usage interne ou test seulement) qui permettrait de réinitialiser les métriques. Cela rendra le test plus facile. Je lis actuellement les métriques dans les tests de Jmeter (avant et après la génération du trafic). –