© Excellent backgrounds/Shutterstock.com
Java Magazin
Mit Laufzeitmetriken den Überblick behalten

Wissen, was läuft

Mit gutem Logging kann man eine Menge über laufende Anwendungen oder gar Anwendungsverbunde erfahren. Eine entscheidende Einschränkung geht mit Logging einher: Logs sind nur ein Strom von eingetretenen Ereignissen. Um herauszufinden, wie gut eine Anwendung läuft, ist jedoch deren Zustand interessanter.

Tammo van Lessen


Logging und Metriken

Logs sind bei der Nachverfolgung von Problemen äußerst hilfreich, es gibt aber auch Fragen, die leichter mit dem Zustand des Systems als mit der Information, wie es zu dem Zustand kam, beantwortet werden können. Wie viele Bestellungen hat mein System gestern abgewickelt? Wie viele Requests pro Sekunde verarbeiten wir genau jetzt? Wie viele waren es vor einem Jahr? Hat sich der Durchsatz der Anwendung verschlechtert, und wenn ja, weshalb? Ist vielleicht der DB-Pool zu gesättigt?

Solche Fragen lassen sich mit Logeinträgen kaum beantworten, und sekündlich die Sättigung der Pools in die Logdatei zu schreiben, entspricht auch nicht dem Sinn des (Logging-)Erfinders.

Zusätzlich muss bei komplexen Anwendungen meist nicht nur ein System, sondern eine ganze Reihe von Systemen überwacht werden. Der Gesundheitsstatus des Gesamtsystems lässt sich dann nur über einen ganzheitlichen Ansatz bewerten. Während man früher nur den Application Server oder Cluster und die Datenbank überwachen musste, kommt mit der Popularität der Microservices und dem anti-monolithischen Architekturtrend auch mehr Vielfalt in die Systemlandschaft.

Um dennoch den Überblick über das Gesamtsystem zu behalten, kann das konsequente Erfassen von Laufzeitmetriken eine Lösung sein. Zentral aggregiert und aufbereitet werden die Metriken schließlich so persistiert, dass eine Abfrage und Visualisierung über die Zeit möglich ist.

Laufzeitmetriken können auf drei verschiedenen Ebenen erfasst werden. Auf der höchsten Abstrak­tionsstufe stehen fachliche Metriken, in der Fachsprache auch Key Performance Indikators (KPIs) genannt und eher aus BPM-Projekten bekannt. Solche Metriken drücken in der Regel direkte Geschäftswerte aus und haben nur noch wenig Bezug zu technischen Details. Beispiele dafür sind die Höhe des erwirtschafteten Umsatzes pro Tag, die Anzahl der verkauften Produkte oder die durchschnittliche Dauer einer Schadensregulierung. Ein kontinuierliches Monitoring solcher Kennzahlen erlaubt dem Unternehmen, die Gesundheit der Geschäftsprozesse zu überwachen und hilft ihm, Probleme frühzeitig zu erkennen und regulierend einzugreifen.

Auf der mittleren Abstraktionsstufe sind die Anwendungsmetriken angesiedelt. Sie enthalten schon deutlich mehr technische Details und beziehen sich jeweils auf eine einzelne Anwendung. Beispiele für diesen Bereich sind die Anzahl der GET Requests pro Sekunde, die Zahl der 500er- oder 400er-Statuscodes oder die Sättigung der Threadpools. Schließlic...

Java Magazin
Mit Laufzeitmetriken den Überblick behalten

Wissen, was läuft

Mit gutem Logging kann man eine Menge über laufende Anwendungen oder gar Anwendungsverbunde erfahren. Eine entscheidende Einschränkung geht mit Logging einher: Logs sind nur ein Strom von eingetretenen Ereignissen. Um herauszufinden, wie gut eine Anwendung läuft, ist jedoch deren Zustand interessanter.

Tammo van Lessen


Logging und Metriken

Logs sind bei der Nachverfolgung von Problemen äußerst hilfreich, es gibt aber auch Fragen, die leichter mit dem Zustand des Systems als mit der Information, wie es zu dem Zustand kam, beantwortet werden können. Wie viele Bestellungen hat mein System gestern abgewickelt? Wie viele Requests pro Sekunde verarbeiten wir genau jetzt? Wie viele waren es vor einem Jahr? Hat sich der Durchsatz der Anwendung verschlechtert, und wenn ja, weshalb? Ist vielleicht der DB-Pool zu gesättigt?

Solche Fragen lassen sich mit Logeinträgen kaum beantworten, und sekündlich die Sättigung der Pools in die Logdatei zu schreiben, entspricht auch nicht dem Sinn des (Logging-)Erfinders.

Zusätzlich muss bei komplexen Anwendungen meist nicht nur ein System, sondern eine ganze Reihe von Systemen überwacht werden. Der Gesundheitsstatus des Gesamtsystems lässt sich dann nur über einen ganzheitlichen Ansatz bewerten. Während man früher nur den Application Server oder Cluster und die Datenbank überwachen musste, kommt mit der Popularität der Microservices und dem anti-monolithischen Architekturtrend auch mehr Vielfalt in die Systemlandschaft.

Um dennoch den Überblick über das Gesamtsystem zu behalten, kann das konsequente Erfassen von Laufzeitmetriken eine Lösung sein. Zentral aggregiert und aufbereitet werden die Metriken schließlich so persistiert, dass eine Abfrage und Visualisierung über die Zeit möglich ist.

Laufzeitmetriken können auf drei verschiedenen Ebenen erfasst werden. Auf der höchsten Abstrak­tionsstufe stehen fachliche Metriken, in der Fachsprache auch Key Performance Indikators (KPIs) genannt und eher aus BPM-Projekten bekannt. Solche Metriken drücken in der Regel direkte Geschäftswerte aus und haben nur noch wenig Bezug zu technischen Details. Beispiele dafür sind die Höhe des erwirtschafteten Umsatzes pro Tag, die Anzahl der verkauften Produkte oder die durchschnittliche Dauer einer Schadensregulierung. Ein kontinuierliches Monitoring solcher Kennzahlen erlaubt dem Unternehmen, die Gesundheit der Geschäftsprozesse zu überwachen und hilft ihm, Probleme frühzeitig zu erkennen und regulierend einzugreifen.

Auf der mittleren Abstraktionsstufe sind die Anwendungsmetriken angesiedelt. Sie enthalten schon deutlich mehr technische Details und beziehen sich jeweils auf eine einzelne Anwendung. Beispiele für diesen Bereich sind die Anzahl der GET Requests pro Sekunde, die Zahl der 500er- oder 400er-Statuscodes oder die Sättigung der Threadpools. Schließlic...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang