Come faccio ad aggiungere le metriche personalizzate agli elementi predefiniti forniti da Dropwizard sulla porta di amministrazione (8081)? Non riesco a trovare nulla nella documentazione oltre all'aggiunta di controlli di integrità. Mi piacerebbe incorporare alcune statistiche recuperate da MongoDB e preferirei mantenerle con le risorse di amministrazione su 8081 anziché creare una pagina di metriche personalizzate sulla porta 8080.Aggiunta di metriche aggiuntive a Dropwizard
risposta
Il dropwizard utilizza la libreria Metrics per tutte le sue metriche. Metric's getting started section ha tutto il necessario per iniziare ad aggiungerne di propri.
Ecco un esempio. Ogni metrica in quell'istanza di jvm viene esposta tramite JMX. È inoltre possibile registrare i reporter metrici che eseguiranno il routing delle cose, trasferendo tutte le metriche ai registri su intervallo o spedendo alla grafite su un intervallo.
//this creates or returns the metrics, basically every metric is only created once and registered in a registry
private final Timer timerCanMakeHold =
Metrics.newTimer(MyClass.class, "METRICNAME", TimeUnit.MILLISECONDS, TimeUnit.SECONDS);
final TimerContext timerContex = timerCanMakeHold.time();
try{
doSomeWork()//this is what you are timing
}finally{
timerContex.stop();
}
non l'ho provato, ma forse questo potrebbe aiutare:
final Graphite graphite = new Graphite(new InetSocketAddress("graphite.url.example", 2003));
MetricRegistry metrics = new MetricRegistry();
GraphiteReporter reporter = GraphiteReporter.forRegistry(metrics)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build(graphite);
reporter.start(1, TimeUnit.SECONDS);
Counter counter = metrics.counter("nameOfCounter");
counter.inc();
Per edera si deve aggiungere questo alla vostra ivy.xml:
<dependency org="io.dropwizard" name="dropwizard-metrics" rev="0.7.1"/>
<dependency org="io.dropwizard" name="dropwizard-metrics-graphite" rev="0.7.1"/>
Se si mette questo nel tuo config.yml,
metrics:
reporters:
- type: console
timeZone: UTC
output: stdout
durationUnit: milliseconds
rateUnit: seconds
frequency: 120 seconds
- type: graphite
host: localhost
port: 9090
prefix: test.prefix
si può al così chiamata la MetricsFactory nel metodo run:
MetricRegistry metrics = new MetricRegistry();
MetricsFactory mfac = configuration.getMetricsFactory();
mfac.configure(environment.lifecycle(), metrics);
Counter counter = metrics.counter("nameOfCounter");
counter.inc();
counter.inc();
counter.inc();
counter.inc();
counter.inc();
Se si costruisce si possiede socket di ascolto, allora si può vedere questa linea in arrivo ogni xxx secondi:
test.prefix.nameOfCounter.count 5 1411562372
Se si desidera che le metriche di presentarsi con il servlet metriche incluso nel progetto Dropwizard, è necessario utilizzare lo stesso oggetto MetricRegistry utilizzato dal servlet e registrarvi le metriche.
È possibile ottenere l'istanza di MetricRegistry corretta dall'ambiente nell'applicazione; o dall'oggetto Bootstrap passato al metodo initilaize durante l'avvio.
La documentazione di Dropwizard non menziona l'ambito di MetricRegistry e gli oggetti in esso contenuti. Implica che tu crei solo il tuo MetricRegistry. Funzionerà bene per l'applicazione stand-alone "introduttiva", ma il documento riguarda l'aggiunta di metriche a un'applicazione Dropwizard esistente, non una nuova applicazione autonoma.
- 1. Metriche DropWizard Metri vs Timer
- 2. Come mostrare Servlet metriche Dropwizard con avvio a molla?
- 3. Come implementare le statistiche usando metriche dropwizard e spring-mvc
- 4. Come integrare riemann nel dropwizard per acquisire le metriche?
- 5. Aggiunta di proprietà aggiuntive a una classe anonima
- 6. Metriche di avvio primaverile + datadog
- 7. Metriche sul dropwizard - Come reimpostare i contatori dopo il reporting dell'intervallo
- 8. Come configurare le metriche HikariCP e Dropwizard/Coda-Hale nell'applicazione Spring Boot
- 9. Override DropWizard ConstraintViolation message
- 10. Dropwizard: BasicAuth
- 11. Dropwizard ScheduledExecutorService
- 12. Metriche di test E2E
- 13. Aggiunta di informazioni a un'eccezione
- 14. Dropwizard: nuova risorsa di amministrazione
- 15. Metriche di Codahale: utilizzo dell'annotazione delle metriche @Timed in Java semplice
- 16. Test integrato Dropwizard con TestResource
- 17. Utilizzo di Weld with Dropwizard
- 18. sql aggiungendo righe aggiuntive a ciascuna riga
- 19. Distribuzione hot dropwizard
- 20. Come distribuire un'applicazione dropwizard
- 21. Dropwizard: Come interrompere il servizio a livello di programmazione
- 22. Metriche personalizzate di streaming Spark
- 23. DropWizard Auth Realms
- 24. auth digest dropwizard
- 25. Come creare metriche annotazioni a livello di campo?
- 26. Aggiunta di funzionalità aggiuntive al metodo della classe padre senza cambiarne il nome
- 27. Messaggi di errore di Dropwizard da Jersey
- 28. hanno interruzioni di riga aggiuntive
- 29. Proprietà metriche Kademlia XOR
- 30. SwitchCompat disegna linee aggiuntive
Capisco come creare le metriche, ma non sono ancora sicuro di come aggiungerle alle metriche fornite da Dropwizard su 8081. – johncowie
Accadrà solo dopo aver creato la metrica e iniziare a usarla. –
Ah, capisco. Perfetto grazie. – johncowie