2015-09-03 18 views
5

Mamy aplikację wiosną w produkcji. NIE jest to wiosenny rozruch. Zauważyłem, że this post używa sprężynowego siłownika rozruchowego w aplikacji bez sprężynowego rozruchu.programowo pobierać dane z napędu sprężynowo-rozruchowego?

Jednak wymagamy od nas agregowania danych z/punktów końcowych danych i wykonywania analiz na nich oraz zgłaszania wskaźnika stanu.

Na przykład możemy użyć parametru sterty, takiego jak {"heap.committed":480768,"heap.init":262144,"heap.used":294461,"heap":3728384,"threads.peak":37}, aby wskazać status aplikacji - FATAL, WARN lub HEALTHY.

To tylko przykład. nasze wymagania są bardziej złożone. W rzeczywistości mamy już status endpoint gdzie chcemy dodać więcej informacji (na podstawie danych z /metrics i /health punktów końcowych spring-boot-actuator).

Jednym ze sposobów myślę o acheiving to podejmowania rozmowy spoczynkowego do /metrics i /health z-we wniosku, zbierać dane, agregowanie ich i zwróci odpowiedź. Nie sądzę, że jest to zalecany sposób.

Jeśli istnieje komponent bean, w którym mógłbym wyodrębnić te parametry bezpośrednio, mógłbym je wyposażyć i obliczyć w locie, gdy zajdzie taka potrzeba. (W rzeczywistości, planuję obliczać okresowo).

Interesują mnie wszystkie atrybuty zwrócone z /metrics. , a także jestem zainteresowany: /health.

{"diskSpace":{"status":"UP","free":386186194944,"threshold":10485760}} 

jakie fasolki powinienem napisać i uzyskać te atrybuty za darmo!

Dzięki

EDIT

Ten post ma @Autowired MetricRepository. Ale z jakiegoś powodu zwraca tylko niestandardowe właściwości licznika. To nie jest powrót sterty, info pamięć itp Np Reporting metric counter.calls.get_greeting=4 Reporting metric counter.calls.get_greeting.1=1 Reporting metric counter.calls.get_greeting.2=1 Reporting metric counter.calls.get_greeting.3=1 Reporting metric counter.calls.get_greeting.4=1 Reporting metric counter.status.200.greeting.number=4 Reporting metric counter.status.404.star-star=1

Odpowiedz

13

Wyjście z /metrics jest produkowany przez MetricsEndpoint. Jest dostępny jako komponent bean, który możesz mieć @Autowired. Dzwonienie pod numer invoke powinno dać ci żądane dane.

Możesz zrobić to samo dla /health z HealthEndpoint.

+0

Czy możesz podać swoje spostrzeżenia na temat: https://stackoverflow.com/questions/32464629/spring-boot-actuator-returns-empty-response-for-metrics-endpoint i https://stackoverflow.com/questions/32407403/metryki-endpoint-in-spring-boot-actuator-not-return-correct-values –