Java >> Java tutorial >  >> Java

WildFly undersystem til RHQ Metrics

Til RHQ-Metrics er jeg begyndt at skrive et undersystem til WildFly 8, der er i stand til at indsamle metrics inde i WildFly og derefter sende dem med regelmæssige intervaller (i øjeblikket hvert minut) til en RHQ-Metrics-server.

Den næste graf er en visualisering med Grafana af resultatet, da denne afsender kørte i 1,5 dage i træk:






Grafer over JVM-hukommelsesbrugWildFly-hukommelsesbrug

(Det er interessant at se, hvordan JVM'en finjusterer sit hukommelsesbehov over tid og bruger mindre og mindre hukommelse til denne konstante arbejdsbyrde).

Følgende er en visualisering af opsætningen:

Opsætning

Afsenderen kører som et undersystem inde i WildFly og læser metrics fra WildFly management-api'et. De indsamlede metrics bliver derefter skubbet via REST til RHQ-Metrics. Det er selvfølgelig muligt at sende dem til en RHQ-Metrics server, der kører på en separat vært.

Konfigurationen af ​​undersystemet ser således ud:

<subsystem xmlns="urn:org.rhq.metrics:wildflySender:1.0">
    <rhqm-server
        name="localhost"
        enabled="true"
        port="8080"
        token="0x-deaf-beef"/>
    <metric name="non-heap"
        path="/core-service=platform-mbean/type=memory"
        attribute="non-heap-memory-usage"/>
    <metric name="thread-count"
        path="/core-service=platform-mbean/type=threading"
        attribute="thread-count"/>
</subsystem>

Som du kan se, kan stien til DMR-ressourcen og navnet på den attribut, der skal overvåges som metrik, angives i konfigurationen.

Implementeringen er stadig grundlæggende i øjeblikket - du kan finde kildekoden i RHQ-Metrics repository på GitHub. Bidrag er meget velkomne.

Heiko Braun og Harald Pehl arbejder i øjeblikket på at optimere planlægningen med individuelle intervaller og eventuel batching af anmodninger om administrerede servere i et domæne.

Mange tak går til Emmanuel Hugonnet, Kabir Khan og især Tom Cerar for deres hjælp til at få mig i gang med at skrive et undersystem, hvilket var ret besværligt for mig. Parserne, objektmodellen og XML havde en stor tendens til at være uenige med hinanden!

Java tag