Definition „Application Performance Monitoring“ Was ist APM?

Autor / Redakteur: Gedeon Rauch / Stephan Augsten

Application Performance Monitoring oder kurz APM bezeichnet den Einsatz verschiedener Metriken, um bei komplexerer Software eine Leistungsüberwachung zu gewährleisten. Ziel sind Produktivität, schnellere Performance und bessere User Experience.

Firma zum Thema

Application Performance Monitoring umfasst verschiedene Metriken und soll die Leistung sowie die Benutzererfahrung verbessern.
Application Performance Monitoring umfasst verschiedene Metriken und soll die Leistung sowie die Benutzererfahrung verbessern.
(© BillionPhotos.com - stock.adobe.com)

Application Performance Monitoring (APM) ist eine Methode der Leistungsüberwachung. Entwickerinnen und Entwickler können damit sicherstellen, dass Software leistungsfähig bleibt, ohne dass die User jemals mit den tatsächlichen Problemen und Engpässen in Kontakt kommen müssen.

Oftmals wird Application Performance Monitoring in einem Atemzug mit Application Performance Management genannt, da Monitoring und Management natürlich zusammenfallen, um Fehler nicht nur zu analysieren, sondern diese auch gleich zu beheben.

Was umfasst Application Performance Monitoring?

Application Performance Monitoring ist ein Konzept, das nicht absolut umrissen werden kann. Deshalb muss vorab geklärt werden, was APM in der Praxis für ein Unternehmen, für ein Development-Team und für eine Software messen und optimieren soll.

In der Praxis ist dies auch eine Frage dessen, wofür das Application Performance Monitoring denn tatsächlich eingesetzt wird. Die Performance einer Web App muss schließlich anderen Messpunkten unterliegen als die Performance eines Servers. Für Web-Anwendungen etwa gilt die konzeptionelle Unterteilung von Gartner Research als gute Maßgabe, da diese ausführliche Metriken liefert, um Performance Monitoring zu gewährleisten. Hierzu zählen:

  • User Experience
  • Entdeckung und Modellierung der Runtime Architektur
  • Business Transaction Management
  • Monitoring der einzelnen Komponenten
  • Datenanalyse

Für andere Anwendungen können andere Datensätze einen höheren Stellenwert einnehmen, was auch eine Frage des Entwicklungsstatus der Software ist. Ein Performanceprofil auf Code-Ebene ist beispielsweise im Anfangsstadium des Development-Zyklus relevanter als für ältere Applikationen. Auch Server-Metriken, Speicher- und CPU-Auslastung, Fehlercodes, Performance der Dependencies und Performance Counters (wie JMX mBeans) spielen hierbei eine Rolle.

Letztlich mündet jedoch jede Form des Application Performance Monitoring in der Überwachung der tatsächlichen Benutzung. Schließlich wird Software für die Anwenderinnen und Anwender programmiert und User-seitig hinsichtlich ihrer Leistungseinbußen bewertet.

Application Performance Monitoring ist auch deswegen ein so diffiziler Prozess, weil er sowohl die zugrunde liegende Hardware beurteilen muss, aber auch Problemstellen auf Code-Ebene identifizieren soll. Von langsamen Servern bis hin zu korruptem Code im Backend können viele Fehlerquellen dafür sorgen, dass eine Anwendung langsamer als erwartet reagiert.

Weitere relevante Metriken und Fragestellungen sind:

CPU- und Speichernutzung: Wie viele Systemressourcen nutzen Apps und wirkt sich dies auf die Leistung aus?

Fehlerraten: In welchem Maße kommt es zu Fehlern und häufen sich Fehler in ressourcenintensiven Programmteilen?

Response Time: Wirkt sich die durchschnittliche Response Time auf die Geschwindigkeit der Anwendung aus?

Zahl der Instanzen: Wie viele Instances laufen bei Cloud-basierten Anwendungen und wirkt sich ein Autoscale-Verhalten auf die Performance aus?

Verfügbarkeit und Uptime: Wie verfügbar ist ein Programm und entspricht dies den Bedingungen der User und der Wirtschaftlichkeit des Unternehmens?

Garbage Collection: Wie viel Datenmüll sammelt sich in Programmiersprachen mit GC (bspw. Java) an und wirkt sich dieser negative auf die Performance aus?

Zufriedenheit und Toleranz: Wie zufrieden sind User mit der Performance der Anwendung bzw. wie tolerant sind sie gegenüber (womöglich) unvermeidlichen Performance-Einbußen?

Die richtigen Application Performance Monitoring-Tools finden

Während Application Performance Management schon länger als Domäne größerer IT-Abteilungen in Unternehmen galt, sind die entsprechenden Software-Tools inzwischen so verbreitet, dass auch kleinere Teams und individuelle Entwickler*innen vermehrt Augenmerk auf die Leistungsüberwachung legen können.

Welche Tools dabei zum Einsatz kommen können, hängt von unterschiedlichen Faktoren ab, hierzu zählen:

  • Support der gewählten Programmiersprache
  • Funktionalität und Anwendungsfreundlichkeit
  • Preispunkt
  • Abwägen zwischen On-Premise-Nutzung und Software as a Service
  • Gegebenenfalls Cloud-Support
  • Gewichtung auf Nutzung von IT-Abteilung vs. Development

Zu den zur Verfügung stehenden Monitoring-Programmen zählen beispielsweise Stackify Retrace, Scout, TraceView, Dynatrace, Application Insights oder Microsoft System Center Operations Manager.

Kontinuierliche Verbesserungen und schnellere Releases dank APM

Beim Application Performance Monitoring geht es weniger darum, eine Anwendung von groben Fehlern und Absturzquellen zu befreien, sondern primär um eine Verbesserung der User Experience (UX) und eine schnellere Abrufbarkeit. APM macht Software entsprechend nicht stabiler, sondern leistungsfähiger und damit wettbewerbsfähiger.

Besonders relevant ist dies in hochkompetetiven Segmenten wie Web Development. Hier kann eine langsame Web App für Unternehmenskunden bedeuten, dass End-User aufgrund der schlechten UX abspringen. Daher ist Application Performance Monitoring vor dem Release einer Anwendung genau so wichtig wie im laufenden Betrieb einer Anwendung. Nur so kann sicher gestellt werden, dass die User Experience gleichbleibend gut ist, auch unter veränderten Umständen gut bleibt oder sich sogar fortlaufend verbessert.

Auf Unternehmensebene genutzte Software muss ebenfalls einem beständigen und robusten Application Performance Management ausgesetzt werden, da eine unterperformende Software hier schlichtweg einen Produktivitätsverlust bedeutet. Die Aufgabe des Application Performance Monitoring ist es, die Problemstellen zu identifizieren, damit diese im anschließenden Managementprozess ausgemerzt werden können.

(ID:47547442)