Angesichts zahlreicher technologischer Neuerungen stehen Unternehmen unter einem gewissen Druck, ihre digitale Präsenz zu optimieren. Ganz gleich ob Start-up oder Großkonzern: Wenn Sie relevant bleiben möchten, müssen Sie jederzeit eine tadellose UX liefern.
Ohne Monitoring-Anwendung kommt man nicht mehr aus, um bei der rasanten Evolution der heutigen Geschäftswelt mitzuhalten. In diesem Leitfaden erfahren Sie, was Application Performance Monitoring eigentlich ist, wie es funktioniert und warum es heutzutage unersetzbar ist.
Was ist APM?
Bei Application Performance Monitoring (APM) geht es im Kern darum, Anwendungs-Performance und digitale Endbenutzer-CX anhand von Echtzeitdaten abzubilden. APM soll komplexe Probleme bei der Anwendungs-Performance erkennen und diagnostizieren, damit Anwendungen erwartungsgemäß funktionieren.
„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.
Besseres Benutzererlebnis
Speed und Stabilität gehören bei Web-Anwendungen zu den Basics im Anforderungskatalog, konsistent hohe Performance und rasche Reaktionszeiten ebenso.
Die Messlatte liegt hoch: Lädt eine Website nicht innerhalb weniger Sekunden, sind die betroffenen Besucher:innen meist schon wieder weg. Darüber hinaus sorgt eine schlechte UX oft nicht nur für einen punktuellen Absprung, sondern für eine allgemeine Abwanderung zur Konkurrenz. So kommt eine von Forbes durchgeführte Studie zu dem Schluss, dass 12 % aller Nutzer:innen in einem solchen Fall sogar ihren Bekannten und Verwandten 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.
Was sind APM-Lösungen?
APM-Lösungen sollen Unternehmen beim Monitoring und Management der Performance ihrer Anwendungen unterstützen, und im Zuge technologischer Verbesserungen hat sich das Angebot an Lösungen und Toolsets im Laufe der Zeit stark verbessert. Grundsätzlich dient APM-Software aber noch immer dazu, Daten zu verschiedenen Aspekten einer Anwendung zu sammeln, z. B. Seitenladezeiten, Reaktionszeiten und Fehlerquoten.
APM-Tools
Eine gute 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, warum nicht?
Für DevOps- und Engineering-Teams sind dies elementare Punkte, die sie mit APM-Tools adressieren können, damit Probleme rasch identifiziert und behoben werden, bevor sie sich auf Nutzer:innen auswirken.
Der Markt für APM-Tools ist ein wenig unübersichtlich, sodass es nicht immer leicht ist, die beste Wahl zu treffen. Folgende Kernfunktionen sollte das Tool Ihrer Wahl aber auf jeden Fall bieten:
- Umfassende Einsicht in die Anwendungs-Performance.
- Echtzeit-Monitoring zur raschen Erkennung von Problemen und Minimierung von Betriebsstörungen.
- Intuitive Benutzeroberfläche und übersichtliche Navigation auch für weniger technisch versierte Benutzer:innen.
- Anpassbare Dashboards, die sich genau auf die Anforderungen und Metriken Ihres Teams zuschneiden lassen.
- Proaktive Alert-Funktionen, damit Teams sofort über Probleme informiert werden.
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.
Metriken fürs Application Performance Monitoring
APM stützt sich auf eine Reihe von Metriken zur Beurteilung der App-Funktion. Dazu gehören:
- Reaktionszeit: Die Zeitspanne zwischen der Eingabe durch den/die Benutzer:in und der Reaktion durch die Anwendung.
- Fehlerquote: Die Häufigkeit der von der Anwendung generierten Fehler.
- Anfragefrequenz: Die Anzahl der Anfragen, die eine Anwendung pro Zeiteinheit erhält.
- Anwendungsverfügbarkeit (Uptime): Die Gesamtzeitspanne, während der die Anwendung ausgeführt wird und einsatzbereit ist.
- CPU-Auslastung: Der Ressourcenspeicher, den die Anwendung beansprucht.
- Anwendungs-Performance-Index (Apdex): Die relative Performance der Anwendung im Vergleich zu „normalen“ Performance-Metriken.
- Service-Level-Agreement (SLA): Quantifiziert das Serviceniveau, das Kund:innen von einem Service-Anbieter erwarten können, und umreißt bestimmte Performance-Benchmarks, die von der Softwareanwendung erreicht werden müssen. Dieser Wert wird anhand von Reaktionszeit, Fehlerquote, Uptime und Anzahl der Anfragen in einer bestimmten Zeitspanne errechnet.
Welche Vorteile bietet Application Performance Monitoring?
Eine gewinnbringende APM-Lösung vermittelt diverse direkte und indirekte Vorteile wie etwa die folgenden:
Proaktives Incident Management
APM hilft nicht nur bei der Ermittlung momentan auftretender Probleme, sondern kann auch auf potenzielle Schwachstellen hinweisen. So lassen sich Systemausfälle und Serviceunterbrechungen vermeiden.
Mehr Zeit für Innovation
Je weniger Zeit Ihr Team mit dem Finden und Beheben von Fehlern verbringt, desto mehr Zeit hat es für strategisch wichtige Innovationsarbeit wie die Entwicklung neuer Features.
Weniger Routineaufgaben, weniger Stress
APM-Tools übernehmen einen Großteil der monotonen Arbeiten, die sonst an Site Reliability Engineers und Incident-Response-Teams hängen bleiben würden. Die Folge? Weniger Stress, mehr Zeit.
Bessere UX
Durch die lückenlose Verfolgung der Performance-Metriken erleichtert APM eine Optimierung der App-Performance und sorgt damit für eine bessere UX mit kürzeren Ladezeiten, minimaler Downtime und zuverlässigerer Anwendungsverfügbarkeit.
Effizienter und kostengünstiger
APM-Tools ermitteln Performance-Probleme in Echtzeit und beschleunigen damit die Fehlerbehebung, was wiederum für einen effizienteren Betrieb sorgt. Als Nebeneffekt sinken die Kosten für die Nutzung verbrauchsbasierter Services, z. B. im Cloudbereich.
Unterm Strich kommt mehr heraus
Lückenloses Application Monitoring wirkt sich in Form höherer Gewinne und Bruttomargen positiv auf Ihre Bilanz aus.
Wer nutzt Application Performance Monitoring?
Application Performance Monitoring sollte sich als Technologie im Stack jedes großen Unternehmens finden, ungeachtet der Branche. Dabei sollte vor allem auch die Performance aller Onlinebereiche und -elemente ins Monitoring genommen werden, um die Gesamt-UX aller Endbenutzer:innen detailliert ausleuchten zu können. Welche Teams aber profitieren wirklich von APM? Je nach Größe und Einsatzfeld einer Anwendung ergeben sich unterschiedliche Use Cases.
- 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.
So kann New Relic helfen
Herkömmliche Tools fürs Application Performance Monitoring sind neuen Technologien oft nicht gewachsen. Deshalb empfehlen wir die nächste Generation von APM—New Relic APM 360.
New Relic APM 360 bietet Einblicke in kritische Health-Metriken über den gesamten Stack und den App-Development-Lifecycle hinweg – in Echtzeit und an einem zentralen Ort. Mit APM 360 reicht ein Blick aufs Dashboard und Ihr Team kann Probleme im Keim ersticken, das Debugging beschleunigen und Monitoring-Lücken durch geführte Workflows und Datenempfehlungen schließen.
Application Performance Monitoring FAQs
How do you assess application performance?
There are several ways to assess the performance of an application. APM strategies and tools alert your dev teams to errors and issues before customers experience them.
With APM software, you can assess your application’s performance from a single dashboard. Here are the most common assessment methods:
1. Monitoring: Collect data on various performance metrics, such as response times, resource usage, and error rates, and then analyze that data to identify trends and potential issues.
2. Load testing: Simulate real-world usage scenarios, such as a large number of users accessing the application at the same time, to see how the application performs under stress.
3. Performance profiling: Analyze the application's code to identify bottlenecks or areas that could be optimized for better performance.
4. User feedback: Collect feedback from users about their experiences using the application, including any issues they may have encountered.
5. A/B testing: Compare two versions of an application to see which one performs better.
6. Synthetic monitoring: Monitor an application's performance by simulating user interactions with the application in a controlled environment.
What should I monitor in APM?
There are several key metrics that you should monitor when using APM tools:
1. Response time: How long it takes for a request to be processed and a response to be returned.
2. Error rate: The number of errors that occur in the application, such as failed requests or unhandled exceptions.
3. Resource usage: The amount of system resources, such as CPU and memory, that the application is using.
4. Throughput: The number of requests that the application can handle within a certain time period.
5. Latency: The time it takes for data to travel from the client to the server and back.
6. User experience: The overall satisfaction of the users with the application.
7. Business metric: The impact the application has on the business, such as the number of transactions, revenue, conversion rate, etc.
It's important to monitor these metrics over time to detect trends and patterns, and to be able to identify when and where performance issues occur in the application.
Also, it's important to note that depending on the specific requirements of your application, you may need to monitor additional or different metrics.
How do you assess application security risk in production?
Zero-day vulnerabilities are previously unknown risks that can allow threat actors to exploit production applications and services for data theft, extortion, or disruption of your business.
To continuously assess application risks, use New Relic Vulnerability Management to identify and prioritize vulnerabilities by application or service, and then test if these vulnerabilities are actually exploitable using New Relic interactive application security testing (IAST).
- Vulnerability assessment: Monitor open source libraries within applications and services for common vulnerability exposures (CVEs).
- Impact analysis: Filter vulnerabilities by severity, count, scope, source, and steps to remediation in order to prioritize efforts.
- Vulnerability surface area audit: Monitor the vulnerability of all your entities, libraries, number of services using a vulnerable library, active vulnerabilities, and when they were first and last seen.
- Proof of exploit testing: Simulate a real-world attack to test if an application’s vulnerabilities are actually exploitable by a threat actor.
What are the benefits of APM solutions?
There are several benefits to using an application performance management solution.
- Improved insights and faster response time: APM solutions give DevOps and engineers greater insight into all aspects of an application. If a problem occurs, teams have greater insights into the root cause of problems, allowing them to act faster to resolve them.
- Better user experience: By monitoring the performance of an application, APM can provide insights into how to improve the user experience. This can help organizations ensure their applications are running smoothly and providing a positive user experience.
- Increased app reliability: APM software can detect and diagnose problems, such as slow response times or high error rates, that impact the reliability of an application. By addressing these issues, you can boost the reliability of an application.
- Improved app performance: APM can save money by helping organizations identify and address performance issues before they cause major problems, such as system downtime or lost revenue.
- Better business performance: APM solutions can provide detailed information on how the application is impacting the business, such as the number of transactions, revenue, conversion rate, and other key business metrics. This information can be used to optimize the application and improve the overall business performance.
APM solutions can help organizations ensure that their applications are running smoothly, providing a good user experience, and impacting the business positively.
How do you monitor application performance in production?
There are several ways to monitor application performance in production. Application performance in production combines several factors, including:
Browser monitoring: Collect data on the performance of the application as it's being used by actual users. This can be done by using JavaScript tags that are embedded in the application's code to collect data on the client side, or by using proxy servers to collect data on the server side.
Synthetic monitoring: Simulate user interactions with the application in a controlled environment, such as a test server, to measure performance.
Log analysis: Analyze log files generated by the application to identify performance issues, such as slow response times or high error rates.
Application instrumentation: Add code to the application to collect data on performance metrics, such as response times and resource usage, that can be used for monitoring.
Infrastructure monitoring: Collect data on the performance of the underlying infrastructure, such as servers and network devices, that the application is running on.
Third-party tools: There are several third-party tools that can be used for monitoring application performance in production, such as APM tools.
APM can help monitor all of these factors in one dashboard so you don’t have to run various different tests to get a holistic view of the app environment.
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.