Jak mogę dodać niestandardowe dane do domyślnych elementów, które Dropwizard zapewnia na porcie administratora (8081)? Nie mogę znaleźć niczego w dokumentacji oprócz dodania kontroli zdrowia. Chciałbym włączyć pewne statystyki pobrane z MongoDB i wolałbym zachować je z zasobami administratora w 8081 niż tworzyć niestandardową stronę metryki na porcie 8080.Dodawanie dodatkowych danych do Dropwizard
Odpowiedz
Dropwizard używa biblioteki Metrics dla wszystkich swoich danych. Metric getting started section ma wszystko, czego potrzebujesz, aby zacząć dodawać własne.
Oto przykład. Każda metryka w tej instancji jvm jest odsłonięta przez JMX. Możesz także zarejestrować rejestratory metryczne, które wykonają zadanie, wyrzuca wszystkie metryki do rejestrów w interwale lub przesyłają do grafitu w określonym przedziale czasowym.
//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();
}
nie testowałem, ale być może to może pomóc:
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();
Dla bluszcz trzeba dodać do swojej 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"/>
Jeśli wstawisz to do twojego 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
możesz al tak nazywają MetricsFactory w metodzie 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();
Jeśli budować jesteś właścicielem gniazdo słuchacza, a następnie można zobaczyć tej linii zasilającej co xxx sekundach:
test.prefix.nameOfCounter.count 5 1411562372
Jeśli chcesz, aby Twoje dane, aby pokazać się z serwletem metryk, który jest zawarty w projekcie Dropwizard, musisz użyć tego samego obiektu MetricRegistry, z którego korzystał serwlet, i zarejestrować w nim swoje dane.
Możesz uzyskać poprawną instancję MetricRegistry ze środowiska w swojej aplikacji; lub z obiektu Bootstrap, który został przekazany do metody initilaize podczas uruchamiania.
Dokumentacja Dropwizarda nie wspomina o zakresie MetricRegistry i obiektach, które zawiera. Oznacza to, że po prostu tworzysz własną MetricRegistry. To zadziała dobrze dla samodzielnej aplikacji "rozpoczęcie pracy", ale dokument dotyczy dodawania metryk do istniejącej aplikacji Dropwizard, a nie do nowej, niezależnej aplikacji.
- 1. Dodawanie dodatkowych obiektów do JSON Encoded Array
- 2. Dodawanie dodatkowych pól do lokalnej strategii passport.js
- 3. Dodawanie dodatkowych właściwości do anonimowej klasy
- 4. dodawanie dodatkowych pól do formularzy django-userena
- 5. Przekazywanie dodatkowych danych do EditorTemplate
- 6. Dodawanie dodatkowych poziomów powiększenia w Mapach ulotek
- 7. jQuery: dodawanie dodatkowych plików CSS do bieżącej strony
- 8. Dodawanie dodatkowych wywołań trwałych do preUpdate wywołania w Symfony 2.1
- 9. Jackson :: dodawanie dodatkowych pól do obiektu w serializacji
- 10. Dodawanie dodatkowych obrazów/ikon do CardFragment (Android Wear)
- 11. Dodawanie dodatkowych plików do opublikowanego projektu API MVC
- 12. Dodawanie wierszy do zestawu danych
- 13. Dodawanie adnotacji do punktów danych
- 14. Dlaczego nie stosować dodatkowych pakietów do bazy danych pakietu GHC?
- 15. Dodanie dodatkowych JPanels do JPanel
- 16. Dropwizard i SSL
- 17. Dropwizard: Nowy zasób administratora
- 18. Dropwizard Shutdown Hook
- 19. Używanie Weld with Dropwizard
- 20. Najlepszy sposób na przechowywanie "dodatkowych" danych użytkownika w MySQL?
- 21. Dodawanie wyników bazy danych do tablicy
- 22. Dodawanie nowej linii danych do TextBox
- 23. laravel: Dodawanie danych do wejścia :: wszystkie()
- 24. Dodawanie bazy danych/backend do aplikacji android
- 25. Dodawanie danych do obiektu gniazda socket.io
- 26. dodawanie tekstu do combobox ze źródłem danych
- 27. Dodawanie Envers do istniejącej bazy danych
- 28. Dodawanie danych metadanych/identyfikatorów do pliku CSV?
- 29. Jak zaimplementować statystykę za pomocą danych dropwizard i spring-mvc
- 30. Gorące wdrożenie Dropwizard
Rozumiem, jak tworzyć metryki, ale nadal nie jestem pewien, jak dodać je do danych, które Dropwizard dostarcza w 8081. – johncowie
Stanie się tak po utworzeniu danych i rozpoczęciu korzystania z nich. –
Ahh Rozumiem. Perfekcyjnie, dzięki. – johncowie