Collect them all!

Micrometer: Anwendungsmetriken sammeln leichtgemacht

Dominik Mohilo

© Shutterstock.com / Champ008

Mit Micrometer bietet Pivotal den Nutzern von Spring Boot eine anbieterneutrale Fassade für das Sammeln von Metriken an. An das API kann dabei praktisch jedes bekannte Monitoring-System andocken, Nutzern ist es so möglich, die erhobenen Daten auszuwerten und zu visualisieren.

Micrometer ist eine Fassade für das Sammeln von Metriken und funktioniert nach dem Dimensional-First-Prinzip. Auf der Homepage des Projektes wird es mit SLF4J verglichen, der „Simple Logging Facade for Java“. Dank Micrometer können Nutzer auf ein anbieterneutrales API zugreifen, um ihren Code zu timen, zu berechnen und zu messen. Die so erhobenen Metriken können dann mit verschiedenen Monitoring-Systemen ausgewertet und visualisiert werden.

Micrometer – das steckt drin

Zunächst mal ist Micrometer Bestandteil des Spring Boot 2 Actuators, ist aber nach Spring Boot 1.5, 1.4 und 1.3 rückportiert worden. Durch Micrometer wurden die in Spring Boot 1 bereits verfügbaren Counter und Messinstrumente (Gauges) durch reichhaltigere Metrikprimitiven erweitert. So kann nun ein einziger Micrometer-Timer Zeitreihen erstellen, die den Datendurchsatz, die Gesamtlaufzeit, die maximale Latenz der neuesten Proben, vorberechnete Durchschnittswerte oder Histogramme von Durchschnittswerten umfassen.

Spring Boot 2 selbst hat die automatische Konfiguration für einige Metriken an Bord, zum Beispiel für die Auslastung der CPU, die Nutzung des Cache und die Abfragelatenz von Spring MVC bzw. WebFlux. In Bezug auf die Java Virtual Machine werden etwa Statistiken der Garbage Collection, die Threadnutzung und die Anzahl an geladenen und beendeten Klassen erhoben.

Weitere Metriken gibt es „out-of-the-box“ unter anderem für die Nutzung von Tomcat und dem File Descriptor. Die Metriken wurden mit Spring Boot 2 übrigens detaillierter und Tags können nun auf sie angewandt werden.

Beispiel für die von Micrometer erhobenen Metriken / Quelle: Pivotal

Nicht nur eine Vielzahl an Metriken wird von Spring Boot 2 direkt zur Verfügung gestellt, auch die Anzahl an nutzbaren Implementierungen für Monitoring-Systeme ist groß. Um die erhobenen Metriken auszuwerten und zu visualisieren, können Nutzer auf Netflix Atlas, CloudWatch, Datadog, Ganglia, Graphite, InfluxDB, JMX, New Relic, Prometheus, SignalFX, StatsD und Wavefront zurückgreifen. Mit dem für Sommer geplanten 1.1.0-Release sollen dann auch noch AppOptics, Azure Application Insigts, Dynatrace, Elasticsearch und StackDriver nutzbar werden.

Natürlich ist man dabei nicht auf eines dieser Monitoring-Systeme festgelegt: Man kann auch mehrere gleichzeitig oder parallel verwenden, Dank der zusammensetzbaren MeterRegistry. Zu dieser können mehrere Registry-Implementierungen hinzugefügt werden, über den MeterRegistryCustomizer kann das Registry-Set einzeln oder gesamtheitlich angepasst werden.

Weitere Informationen zu Micrometer gibt es im Blog-Beitrag von Jon Schneider aus dem Spring Cloud Team und auf der Homepage des Projektes.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: