Comment puis-je append des mésortingques personnalisées aux éléments fournis par défaut par Dropwizard sur le port d’administration (8081)? Je ne trouve rien dans la documentation en dehors de l’ajout de contrôles de santé J’aimerais assez incorporer des statistiques extraites de MongoDB et préférer les conserver avec les ressources d’administration sur 8081 plutôt que de créer une page de mésortingques personnalisées sur le port 8080.
Dropwizard utilise la bibliothèque de mesures pour toutes ses mesures. La section de mise en route de Mesortingc contient tout ce dont vous avez besoin pour commencer à append les vôtres.
Voici un exemple. Chaque mésortingque de cette instance de JVM est exposée via JMX. Vous pouvez également inscrire des protractors de mésortingques qui feront le vidage de toutes les mésortingques dans des journaux sur un intervalle, ou une expédition au graphite à un intervalle.
//this creates or returns the mesortingcs, basically every mesortingc is only created once and registered in a registry private final Timer timerCanMakeHold = Mesortingcs.newTimer(MyClass.class, "METRICNAME", TimeUnit.MILLISECONDS, TimeUnit.SECONDS); final TimerContext timerContex = timerCanMakeHold.time(); try{ doSomeWork()//this is what you are timing }finally{ timerContex.stop(); }
Je ne l’ai pas testé, mais peut-être que cela pourrait aider:
final Graphite graphite = new Graphite(new InetSocketAddress("graphite.url.example", 2003)); MesortingcRegistry mesortingcs = new MesortingcRegistry(); GraphiteReporter reporter = GraphiteReporter.forRegistry(mesortingcs) .convertRatesTo(TimeUnit.SECONDS) .convertDurationsTo(TimeUnit.MILLISECONDS) .build(graphite); reporter.start(1, TimeUnit.SECONDS); Counter counter = mesortingcs.counter("nameOfCounter"); counter.inc();
Pour ivy, vous devez append ceci à votre ivy.xml:
Si vous le mettez dans votre config.yml,
mesortingcs: reporters: - type: console timeZone: UTC output: stdout durationUnit: milliseconds rateUnit: seconds frequency: 120 seconds - type: graphite host: localhost port: 9090 prefix: test.prefix
vous pouvez également appeler MesortingcsFactory dans votre méthode d’exécution:
MesortingcRegistry mesortingcs = new MesortingcRegistry(); MesortingcsFactory mfac = configuration.getMesortingcsFactory(); mfac.configure(environment.lifecycle(), mesortingcs); Counter counter = mesortingcs.counter("nameOfCounter"); counter.inc(); counter.inc(); counter.inc(); counter.inc(); counter.inc();
Si vous construisez votre propre écouteur de socket, vous pouvez voir cette ligne entrante toutes les xxx secondes:
test.prefix.nameOfCounter.count 5 1411562372
Si vous souhaitez que vos mésortingques apparaissent avec le servlet de mésortingques inclus dans votre projet Dropwizard, vous devez utiliser le même object MesortingcRegistry que celui utilisé par le servlet et y enregistrer vos mésortingques.
Vous pouvez obtenir la bonne instance MesortingcRegistry auprès de l’environnement de votre application; ou à partir de l’object Bootstrap transmis à sa méthode initilaize lors du démarrage.
La documentation de Dropwizard ne mentionne pas l’étendue de MesortingcRegistry et les objects qu’il contient. Cela implique que vous venez de créer votre propre MesortingcRegistry. Cela fonctionnera correctement pour l’application autonome “pour commencer”, mais le document concerne l’ajout de mésortingques à une application Dropwizard existante, et non d’une nouvelle application autonome.