Bei Application Performance Monitoring (APM) geht es im Kern darum, Anwendungs-Performance und digitale Endbenutzer-CX anhand von Echtzeitdaten abzubilden.
Eine APM-Lösung sollte somit in der Lage sein, insbesondere die beiden folgenden Fragen klar zu beantworten:
- Wird meine Anwendung mit der von mir erwarteten Geschwindigkeit und voller Funktionalität ausgeführt?
- Falls nein, was ist die Problemursache?
Für jedes DevOps- und Engineering-Team elementare Punkte also, die sie mit APM-Tools adressieren und so rasch Probleme identifizieren und beheben können, bevor sie sich auf Nutzer:innen auswirken.
„Application Performance Monitoring“ und „Application Performance Management“ werden dabei häufig gleichbedeutend verwendet. Nicht selten ist auch leicht verkürzt von „Performance Monitoring“ bzw. „Application Monitoring“ die Rede.
In welchem Kontext ist Application Performance Monitoring relevant?
Ob Endbenutzer:innen oder Engineering-Teams und Entwickler:innen – eine nur langsam ausgeführte Anwendung oder Einschränkungen bei der Feature-Verfügbarkeit lösen bei niemandem Begeisterungsstürme aus.
Zentrale Bedeutung für das Endbenutzererlebnis
Speed und Stabilität gehören bei Web-Anwendungen zu den Basics im Anforderungskatalog, konsistent hohe Performance und rasche Reaktionszeiten ebenso.
Denn die Messlatte liegt hoch: Lädt eine Website nicht innerhalb weniger Sekunden, sind die betroffenen Besucher:innen meist schon wieder weg. Schlimmer noch, sorgt eine schlechte UX doch nicht selten nur für einen punktuellen Absprung, sondern häufig auch für eine allgemeine Abwanderung zur Konkurrenz. So kommt eine Studie zu dem Schluss, dass 12 % aller Nutzer:innen in einem solchen Fall sogar Freund:innen und Familie von der entsprechenden Anwendung bzw. Website abraten würden – mit in der Folge immer weitreichenderen Auswirkungen auf Geschäftsergebnis, Kundenzufriedenheit und Markenreputation.
Wichtige Stütze für Entwickler:innen
Probleme bei der Anwendungs-Performance können aber freilich auch bei Engineering-Teams für ganz erhebliche Kopfschmerzen sorgen. Schließlich freut sich niemand, um 3 Uhr nachts von einem Alert zu einem kritischen Systemfehler aus dem Schlaf gerissen zu werden. Müssen sich an seiner Behebung dann in der Folge gleich mehrere Kollegen und Kolleginnen abmühen, macht das erst recht niemanden glücklich.
Fehlt dabei auch noch jeglicher Kontext, sorgt dies in der ohnehin schon angespannten Situation für noch mehr Frustration, denn so präsentiert sich obendrein auch die Problemursache als Buch mit sieben Siegeln. Ist sie in der API zu verorten? Im Kubernetes-Cluster? Im Cloud-Service? Oder vielleicht an einer der zahlreichen anderen Schnittstellen zwischen Code und Cloud? Je länger die Beantwortung dieser Frage oder die Behebung der Ursache andauert, desto stärker werden sowohl Endbenutzer:innen als auch Geschäftsergebnis in Mitleidenschaft gezogen.
Application Performance Monitoring unterstützt Entwickler:innen dabei, Probleme mitsamt ihrer kausalen Zusammenhänge rasch auszumachen – und sie ebenso schnell zu lösen. So könnte ein Engineering-Team beispielsweise einen Threshold bei der Seitenladezeit als kritisch definieren und bei seinem Erreichen einen Alert ausgeben lassen. Durch Kombination mit detailliertem Tracing lässt sich dann die Fehlerursache klar eingrenzen und adressieren, noch bevor sie sich auf Endbenutzer:innen auswirken kann.
Die schmerzhafte Alternative: Die Endbenutzer:innen müssen den Betreiber selbst über den Umstand informieren, ihre UX hat also schon längst gelitten. Umso mehr steht der Betreiber nun also unter Druck – zumal eben ohne die Kontextdetails, die ihm Application Performance Monitoring vermitteln würde. Dass bei Identifikation der Wurzel des Problems und bei seiner Behebung erst recht zu viel Zeit ins Land geht, findet dann in einer wenig befriedigenden mittleren Lösungszeit noch als Spitze des Eisbergs Ausdruck.
Welche Bereiche lassen sich mit einer Lösung für Application Performance Monitoring abdecken?
Bei Software-Anwendungen müssen zumeist verschiedenste Services und Layer ins Monitoring genommen werden. Dies ist konsolidiert über APM möglich, sowohl für aktuelle als auch für historische Informationen etwa zu diesen Bereichen:
- Infrastruktur inklusive Speichernutzung, CPU-Auslastung und Anwendungsverfügbarkeit
- Anwendungs-Backend, z. B. Performance der Datenbankabfragen und Fehleranalyse
- Anwendungs-Frontend und so unter anderem Browser-Rendering, UX-Monitoring und Performance-Metrics
APM spielt seine Stärken aber nicht nur im Kontext von Websites aus; auch für mobile Anwendungen lässt es sich hervorragend einsetzen, ebenso wie für Server, Netzwerke, APIs, interne Anwendungen für Mitarbeiter:innen, cloudbasierte Services und andere Technologien.
Im Folgenden beleuchten wir, welche Einzelkomponenten und Features APM-Lösungen dabei bieten:
Ops-Dashboards
Ops-Dashboards verschaffen einen allgemeinen Überblick zur Anwendungs-Performance. Sie sind flexibel anpassbar zur Visualisierung der jeweils wichtigsten Kern-Metrics wie klassischen goldenen Signalen oder Custom-KPIs für bestimmte Services.
Real User Monitoring
Mit Real-User Monitoring (RUM) vollziehen Sie alle Aktionen nach, die echte, tatsächliche Benutzer:innen in ihrer Anwendung durchführen – und wie sie ihr Performance-Erlebnis dabei wahrnehmen.
Synthetics-Monitoring
Beim Synthetics-Monitoring kommt ein Headless-Browser zum Einsatz, um das Benutzererlebnis realistisch zu modellieren. So lassen sich spezifische User Flows proaktiv testen, ohne auf echte Benutzerdaten angewiesen zu sein.
Serverless Monitoring
Serverless Monitoring bezieht sich speziell auf Anwendungen, die auf cloudbasierte Services wie AWS setzen statt auf On-Prem-Alternativen.
Datenbank-Monitoring
Datenbank-Monitoring liefert – nomen est omen – Möglichkeiten zum Monitoring von Datenbanken, um zu bestimmen, wie viel Zeit Abfragen in Anspruch nehmen.
Mobile Monitoring
Mobile Monitoring konzentriert sich auf iOS- und Android-Anwendungen, erfasst und korreliert Daten etwa rund um Latenzprobleme und historische Absturzberichte.
Infrastruktur-Monitoring
Ob Hardware, Cloud-Infrastruktur oder Kubernetes-Cluster – mit Infrastruktur-Monitoring lässt sich nachvollziehen, wie es um die Performance aller Einzelkomponenten Ihrer Infrastruktur bestellt ist.
Service Maps
Service Maps bilden alle Verbindungen und Abhängigkeiten einer Anwendung ab, was besonders bei umfangreichen Programmstrukturen mit tausenden Services von großem Wert ist.
Weiter sollte eine APM-Lösung zudem Abfragen Ihrer Telemetriedaten ermöglichen, um aus ihnen präzisere Erkenntnisse abzuleiten, Logs zu analysieren und mit Distributed Tracing Event-Reihen auf Fehlerquellen zu prüfen.
Welche Vorteile bietet Application Performance Monitoring?
Eine gewinnbringende APM-Lösung vermittelt diverse direkte und indirekte Vorteile wie etwa die folgenden:
- Proaktives Incident Management
- Raschere Identifikation und Behebung von Problemen
- Besserer Innovations- und Dev-Fokus für Ihre Entwickler:innen
- Weniger Arbeitsaufwand und Druck für Teams im Site Reliability Engineering und in der Incident Response
- Seltenere und kürzere Ausfälle
- Bessere UX
- Zeit- und kosteneffizientere Nutzung für verbrauchsbasierte Services, z. B. im Cloud-Bereich
- Geschäftlicher Nutzen in Form besserer Margen und Gewinne
Wer nutzt Application Performance Monitoring?
Application Performance Monitoring sollte sich als Technologie im Stack jedes Enterprise-Unternehmens finden, ungeachtet seines genauen Geschäftsfelds. Dabei sollte vor allem auch die Performance aller Online-Bereiche und -Elemente ins Monitoring genommen werden, um die Gesamt-UX aller Endbenutzer:innen detailliert ausleuchten zu können. Welche Teams im Einzelnen schließlich am meisten von APM profitieren, variiert zumeist je nach Umfang und Tiefe einer Anwendung:
- Im DevOps-Engineering werden Prozesse rund um Testing, Deployment und Anwendungsverwaltung in der Produktion automatisiert. APM gehört somit auch ganz elementar zu DevOps.
- Beim Site Reliability Engineering (SREs) werden operative Themen aus Software-Sicht beleuchtet, ganz im Sinne optimaler Anwendungsstabilität. SRE-Teams benötigen APM dementsprechend, um diesen für sie ganz besonders starken Kernfaktor proaktiv adressieren zu können.
- Software-Entwickler:innen schreiben Code und programmieren neue Features. Bei kleineren Unternehmen sind sie womöglich in alle Prozessphasen eingebunden, so etwa auch beim Code-Monitoring in der Produktion. Selbst bei großen Organisationsstrukturen erstreckt sich ihr Engagement auf immer weitere Bereiche des Software-Entwicklungszyklus.
Welche Schritte sind zur Implementierung von Application Performance Monitoring erforderlich?
Zur Integration von Application Performance Monitoring in Ihrem Stack ist zunächst die Installation von Agents vonnöten, um alle Daten zu erfassen, die Ihre Anwendung durchlaufen. Begrifflich erfasst wird dieser Prozess als Instrumentierung, und häufig lässt er sich durch automatische Installation der benötigten Agents via Kommandozeile umsetzen. Diese Agents aggregieren und übermitteln dann alle Informationen, sowohl aus Web-Transaktionen als auch aus Non-Web-Transaktionen. Über eigene Custom-Instrumentierungen lassen sich überdies zusätzliche Details wie Transaktions-Traces hinzufügen oder die Instrumentierung von Transaktionen blockieren, die nicht getracked werden sollen. Nach Automatisierung einer Instrumentierung via Befehlszeile können schon innerhalb von Minuten Telemetriedaten über Ihre APM-Lösung erfasst werden.
Komplexe verteilte Anwendungen greifen auf viele verschiedene Services zurück, und so sollte idealerweise jeder Anwendungsbereich instrumentiert werden. Bei einem APM-Tool ist daher auf Integrationen mit einer Vielzahl hierfür relevanter Services wie AWS und Azure zu achten. Nur damit lassen sich externe Abhängigkeiten in Ihrer Anwendung rasch instrumentieren.
Welche Features für Ihre Anwendung wichtig sind und was Sie genau instrumentieren möchten, ist letztlich flexibel entscheidbar. Die weitreichendsten Vorteile ergeben sich aber tatsächlich aus der Kombination aller Monitoring-Elemente zur Gestaltung einer End-to-End-Lösung. Hieraus ergibt sich dann die Konstellation umfassender Observability für Ihre Anwendung.
Wie unterscheiden sich Application Performance Monitoring und Observability?
Bei APM geht es speziell um das Performance-Monitoring einer Anwendung. Allerdings sind viele Anwendungsarchitekturen inzwischen zu komplex, als dass sich Monitoring- und Management-Anforderungen noch vollumfänglich von APM abdecken ließen. Die Erwartungshaltung an APM sollte sich daher auf eine allgemeine Übersicht zur Performance einer Anwendung beschränken. Um auch in komplexen Anwendungen, die sich über weitere Infrastrukturbereiche erstrecken, Fehlerursachen präzise zu bestimmen, ist ein ausgefeilterer Ansatz vonnöten.
Dieser findet sich im Konzept der Observability, die tiefgehende, technische detaillierte Einblicke in Status quo und diverse Zusammenhänge eines Gesamtsystems vermittelt. Die Größe ist dabei kein Hindernis mehr. APM bietet eine aggregierte Zusammenfassung für Metrics. Um diese Daten dann genauer auszuleuchten, ist darüber hinaus Distributed Tracing unabdingbarer Faktor.
Bei APM handelt es sich um ein wichtiges Element der Observability, die dementsprechend ihrerseits APM übergeordnet ist. Für viele Anwendungen ist tatsächlich eine komplette Observability-Lösung vonnöten.
Detailliert auf die Unterschiede zwischen APM und Observability gehen wir in diesem Artikel ein.
Ihr Start mit Application Performance Monitoring: Testen Sie New Relic.
Mehr als nur plastisch vorstellen lassen sich beide Technologien durch direkte Nutzung einer Observability-Lösung. Möglich ist dies mit einer Registrierung für die kostenlose Produktvariante von New Relic. Unsere APM-Dokumentation liefert weitere Einblicke.
Die in diesem Blog geäußerten Ansichten sind die des Autors und spiegeln nicht unbedingt die Ansichten von New Relic wider. Alle vom Autor angebotenen Lösungen sind umgebungsspezifisch und nicht Teil der kommerziellen Lösungen oder des Supports von New Relic. Bitte besuchen Sie uns exklusiv im Explorers Hub (discuss.newrelic.com) für Fragen und Unterstützung zu diesem Blogbeitrag. Dieser Blog kann Links zu Inhalten auf Websites Dritter enthalten. Durch die Bereitstellung solcher Links übernimmt, garantiert, genehmigt oder billigt New Relic die auf diesen Websites verfügbaren Informationen, Ansichten oder Produkte nicht.