Wir verwenden Cookies um Inhalte zu personalisieren und unsere Besucherstatistik zu führen. Bitte entscheiden Sie sich, ob Sie unsere Cookies akzeptieren möchten.
#Lets get technical: Metriken

Metriken sind quantitative Maßeinheiten, die verwendet werden, um bestimmte Eigenschaften von Software, Systemen oder Prozessen zu messen und zu bewerten. In der Softwareentwicklung können Metriken auf verschiedenen Ebenen eingesetzt werden, um die Qualität, Leistung oder Zuverlässigkeit von Software zu bewerten. Zum Beispiel

  • Bewertung der Codequalität
  • Überwachung der Systemleistung
  • Messung der Benutzerfreundlichkeit

Metriken können auf verschiedene Arten berechnet werden, zum Beispiel durch die Analyse von Quellcode, Logdateien oder Testergebnissen, und genutzt werden, um Entscheidungen im Entwicklungsprozess zu treffen und Verbesserungen zu identifizieren.
Es gibt eine Vielzahl von Metriken, die in der Softwareentwicklung eingesetzt werden können, dazu zählen unter anderem:

  • Anzahl der Codezeilen
  • Testabdeckung
  • Anzahl der Fehler
  • Durchlaufzeit
  • Benutzerzufriedenheit
Author Portrait Autor:
Sebastian Mann
IT Consultant
Einfach, flexibel, Micrometer

Micrometer ist eine anbieterneutrale Fassade für Metriken. Das Projekt wird unter einer Open-Source Lizenz vertrieben und von der Community entwickelt. Es wird dabei von VMware gesponsort.

Micrometer bietet Anbindungen an viele, häufig genutzte Datenbanken wie Prometheus oder Dynatrace, außerdem gibt es eigene Java-Bibliotheken. Diese sind auch die Grundlage des Metrik-Systems von Spring Boot.

Zum Verfolgen der Anwendungsperformance werden verschiedene Instrumente wie Timer, Counter und Gauges angeboten. Diese können über Annotations oder das Builder-Pattern erstellt werden. Je nach Typ können diese Instrumente manuell oder automatisch gemessen werden.

Die daraus resultierenden Werte werden von Micrometer entweder in der Anwendung aggregiert oder als Rohdaten an eine vorher konfigurierte Zeit-Reihen Datenbank gesendet. Arbeitet die konfigurierte Datenbank mit einem pull-Verfahren, können die Daten auch in einem Rest-Endpunkt bereitgestellt werden. Dabei ist es möglich, dass weitere Bibliotheken benötigt werden.

Überwachung und Alarmierung mit Prometheus

Prometheus ist eine Zeit-Reihen Datenbank, die ursprünglich von SoundCloud entwickelt wurde. Mittlerweile wir die Anwendung unter der Apache 2.0 Lizenz angeboten und von einer Prometheus GitHub Organisation gepflegt.

Prometheus stellt neben der Datenbank auch verschiedene Bibliotheken und Server zur Integration in bestehende Systeme bereit. Diese werden zum Teil von der offiziellen Prometheus Organisation bereitgestellt, die Mehrheit wird jedoch von dritten Parteien entwickelt.

Für Java bietet Prometheus die Bibliothek „simpleclient“ an. Wie auch Micrometer, enthält diese verschiedene Instrumente, um die Anwendungsperformance zu beobachten. Die Instrumente können über das Builder-Pattern erstellt werden und durch entsprechende Methoden gemessen werden. Ebenfalls gibt es einen Export aus der Anwendung, welcher über einen Endpunkt realisiert wird, den die Prometheus-Datenbank anfragen und sich die Daten herunterladen kann.

Dropwizard

Dropwizard ist, genau wie Spring, ein Anwendungsframework und enthält die Metrik-Komponente Dropwizard Metrics. Diese kann entweder eigenständig oder in Kombination mit dem Anwendungsframework installiert werden. Dropwizard wurde von 2010 bis 2014 von Coda Hale für Yammer entwickelt und wird seitdem von einem eigenständigen Dropwizard Team weiterentwickelt.

Dropwizard Metrics bietet verschiedene Instrumente, um Anwendungsdaten zu sammeln. Diese Daten können mit sogenannten Reportern exportiert und in verschiedenen Formaten angezeigt werden. So gibt es beispielsweise Reporter für CSV-Dateien, Konsolenausgabe und eine Servlet-Implementierung. Ein Nachteil von Dropwizard Metrics ist, dass alle exportierten Daten bereits in der Anwendung voraggregiert werden und manche Darstellungen dadurch nicht mehr im Nachhinein angepasst werden können.

Microprofile

Microprofile ist ein Architekturstandard für Microservices basierend auf JavaEE. Es wurde 2016 von einer Gruppe von Firmen und eigenständigen Entwicklern ins Leben gerufen und 2017 an die Eclipse Foundation übergeben.

Der Microprofile Standard setzt sich aus verschiedenen Komponenten zusammen, darunter auch der Metrics 5.0 Standard. Darin werden verschiedene Instrumente wie Counter, Timer oder Histogramme beschrieben. Diese können über Annotations oder ein Builder-Pattern initialisiert werden. Die gesammelten Daten können über den REST-Endpoint /metrics exportiert werden. Dafür können Implementierungen des Standards bestehende Metrikbibliotheken wie Micrometer oder OpenTelemetry nutzen oder eine ganz eigene Implementierung schreiben. Den Standard gibt hier keine Bibliothek vor.


Das war nur eine kleine Auswahl an Metriken, neben diese gibt es noch viele mehr, wie zum Beispiel InfluxDB, Graphite oder Splunk. Welche Metrik für das eigene Projekt am besten geeignet ist, hängt letztlich von dessen spezifischen Anforderungen und Zielen ab.

Das könnte Sie auch interessieren....
Statistics

Zahlen und Fakten
Digitalisierung in Deutschland

Digitalisierung ja, nein – vielleicht? Die Wirtschaft der Zukunft steht auf den Pfeilern der Industrialisierung 4.0, ohne eine effektive Umsetzung wird es für viele Firmen zukünftig schwierig, sich am Markt zu halten. Grund genug, zu fragen: Wie gut läuft dieser Prozess aktuell? Wir haben es uns für Sie angeschaut.

Robot with keyboard

Fluch oder Segen?
Die Roboter-(R)Evolution

Maschinen sind da, um den Menschen in seiner Arbeit zu unterstützen, um ihn zu entlasten. Aber kann er dadurch auch zu ernstzunehmender Konkurrenz werden?

BPM

Schritt für Schritt zum Erfolg
Business Process Management

Business Process Management (BPM) ist ein Verfahren, das generell zu dem Feld der Prozessautomatisierung gezählt wird. Hierbei modelliert, analysiert und optimiert man Geschäftsprozesse, um...

Ihre Kontaktdaten - Wir rufen Sie umgehend zurück