Teil 3: Flaschenhälse erkennen - New Relic APM
New Relic APM ist das umfangreichste Tool, das wir in dieser Blogserie vorstellen. Im Beitrag wird beschrieben, wie sich Flaschenhälse mit New Relic APM erkennen und Onlineshops effizient überwachen lassen.
Was ist New Relic APM?
New Relic APM (Application Performance Monitoring) ist ein Überwachungswerkzeug, mit dem sich die Performance eines Onlineshops kontinuierlich und in Echtzeit überwachen lässt. Beim Auftauchen eines Problems, wie etwa lange Ladezeiten, lokalisiert New Relic einen Flaschenhals und versendet automatisiert eine Nachricht an eine definierte Person.
New Relic APM eignet sich überdies zur detaillierten Analyse der Performance Metriken von Webanwendungen. Aufgrund des gut strukturierten Dashboards lassen sich die Analysen sehr übersichtlich darstellen und auswerten. Die Besonderheit dieser Software liegt darin, dass sich sehr viele Metriken miteinander vergleichen lassen. Über dieses hohe Maß an Vergleichsmöglichkeiten verfügt sonst kein weiteres Tool für den E-Commerce Bereich. Dadurch ist dieses Tool allerdings sehr komplex und es benötigt viel Zeit, um alle Funktionen kennenzulernen.
New Relic Editionen
New Relic APM ist eines der umfangreichsten Werkzeuge für Profiling im E-Commerce und ist in zwei Editionen erhältlich: APM Essentials und APM Pro.
Bereits mit der Standard Edition APM Essentials lassen sich alle wichtigen Funktionen bedienen: Application Monitoring, Verfügbarkeits- und Fehlerüberwachung, Benachrichtigungen bei Alarmen und die Benutzerverwaltung.
In der Pro-Edition kommen weitere nützliche Features hinzu. Zum Beispiel lassen sich die sogenannten Key Business Transaktionen gesondert überwachen oder Subaccounts auf spezifische Anwendungen beschränken. Ab APM Pro lassen sich bei geplanten Änderungen am Code mittels einer Vorher-Nachher-Ansicht aufschlussreiche Vergleiche ziehen. Die Benachrichtigungen bei Alarmen sind gemessen an der Standard Edition noch ausführlicher. Es gibt zudem SLA-Berichte auf Tages-, Wochen- oder Monatsbasis, die periodische Performance-Auffälligkeiten hervorragend verdeutlichen.
Zur New Relic Familie gehören überdies weitere Programme wie etwa New Relic Infrastructure, mit welchem die Hardwareressourcen mehrerer Server überwacht werden können. Des Weiteren lässt sich mit New Relic Browser der die Performance des browserseitigen Teils der Anwendung (wie die Ausführung von JavaScript) überwachen. Mit New Relic Synthetics lässt sich Besucherverhalten künstlich simulieren, sodass Probleme rechtzeitig, noch bevor sie möglicherweise in einer Live-Umgebung auftreten, entdeckt werden können. New Relic Insight ermöglicht es, alle Daten der verschiedenen New Relic Dienste zu bündeln, um einen kompletten Überblick über alle Business Prozesse zu liefern. Zuletzt sei noch New Relic Mobile erwähnt, das die Performance von Android und iOS Anwendungen überwacht.
Monitoring mit New Relic APM
Das Monitoring und Profiling mit New Relic APM erfolgt über ein gut strukturiertes Dashboard (siehe: Screenshot 1: Dashboard Übersicht).
Links befindet sich das Seitenmenü mit den Hauptkategorien Monitoring, Events, Reports, Settings und Alerts. Dazu gehören jeweils noch weitere Unterkategorien mit nützlichen Überwachungsansichten, welche teilweise aber erst ab APM Pro verfügbar sind. Im Folgenden stellen wir die für den E-Commerce aus unserer Erfahrung effizientesten Features von APM vor.
Overview
Als erste Unterkategorie wird ein Gesamtüberblick unter „Overview“ angeboten. Der Gesamtüberblick zeigt bisherige Transaktionen und Fehlerraten genauso wie den Ladezeiten-Score (Apdex-Score). Für die Auswertung der Transaktionen steht zum einen das Zeitdiagramm „Web transactions time“ (im Screenshot mittig oben) zur Verfügung, welches die Ausführungszeiten für PHP und MySQL in Millisekunden anzeigt. In diesem Zeitdiagramm würde es sich übrigens auch bemerkbar machen, wenn eine Seite ganz besonders langsame Ladezeiten aufweist (siehe Screenshot 2: Web transactions time). Im nächsten Screenshot 2 wird der zeitliche Verlauf mit starker kurzzeitiger Verlangsamung demonstriert. Diese Daten stehen in der Essentials Edition für 3 Tage und in der Pro Edition für 90 Tage zur Verfügung. Im Hinblick auf die Langzeitanalyse emphielt maxcluster aus diesem Grund die Pro Edition.
Transactions
Für die Auswertung von Transaktionen dient das Balkendiagramm „Transactions“ (Screenshot 1). Dieses zeigt die einzelnen Webseitenaufrufe mit jeweiliger Ausführungsdauer an. Rechts daneben stellt ein Diagramm die prozentualen Fehlerraten dar, mitsamt der jeweiligen Uhrzeit beim Auftreten des Fehlers.
Auf der rechten Seite des Screenshots lässt sich der Apdex Score ablesen. Dieser Score stellt den Durchschnittswert der Ladezeit dar. Im darunter befindlichen Diagramm „Throughput“ ist die Anzahl an Anfragen zu einem bestimmten Zeitpunkt verzeichnet. Ganz unten im Overview werden letztlich unter „Host“ noch die Server angezeigt, auf welchen die Anwendung installiert ist.
Die Ladezeiten lassen sich auch als Histogramm darstellen (siehe: Screenshot 3: Web transactions histogramm). Hiermit lässt sich die genaue Verteilung der Ladezeiten von Webaufrufen in Prozent ablesen.
Transaktionen und Profiling
Ein Profiling lässt sich bei New Relic APM über die Ansicht in der Unterkategorie „Transactions“ durchführen (siehe Screenshot 4: Transaction trace: Summary). Die Transaktionen lassen sich in den Rubriken Summary, Trace Details und Database-Queries betrachten. Im Summary sieht man die Funktionsaufrufe mit der höchsten Ladezeit. Die verschiedenen Funktionen sind farblich voneinander abgesetzt.
In der nächsten Rubrik „Trace details“ (siehe Screenshot 5: Trace details) erhält der technisch Verantwortliche weitere Zeitangaben zu den Funktionsaufrufen. Hier sind die Funktionsaufrufe in einer Baumstruktur aufgeschlüsselt. Funktionsaufrufe werden mit den zugehörigen Unterfunktionen und dessen Zeitangaben angezeigt. In der Essentials Edition werden diese Daten 3 Tage gespeichert und in der Pro Edition 7 Tage lang.
In der dritten Rubrik „Database queries“ kann man die Signaturen einzelner Datenbankabfragen und deren Laufzeit betrachten (siehe Screenshot 6: Database queries). Diese Rubrik zeigt, wie oft die jeweilige Datenbankabfrage durchgeführt wurde, sowie die gesamte Ausführungszeit, die für diese Datenbankabfrage benötigt wurde. Dadurch lässt sich schnell erkennen, welche Datenbankabfragen die Ladezeit der Shopseite am stärksten beeinflusst haben.
Databases
Die nächste Unterkategorie „Databases“ zeigt auf der linken Seite ein Balkendiagramm (siehe Screenshot 7: Databases). Darin werden die unterschiedlichen Arten von Datenbankabfragen mit Zeitangabe veranschaulicht. Sortiert ist es in unserem Beispiel nach dem größten Zeitverbrauch pro Anfrageart. Auf der rechten Seite wird der „MySQL Overview“ in zwei Diagrammen dargestellt. Das obere Diagramm verdeutlicht den Zeitaufwand der Anfragen zu einer bestimmten Uhrzeit. Das untere Diagramm „Top database operations by query time“ stellt eine Aufteilung nach Art der Anfrage dar. Es lässt sich ablesen, wann Daten eingefügt, gelöscht, geändert oder gelesen wurden.
Fehleranalyse
Unter der Hauptkategorie „Events“ findet sich der Bereich „Error analytics“ (siehe Screenshot 8: Error analytics). Auf der rechten Seite sieht man die Fehlerrate in Prozent und darunter die häufigsten Fehlerklassen. Ganz unten rechts im Screenshot werden die konkreten Fehler aufgeführt. Diese sind detailliert als Fehlermeldung mit Traces sowie mit ihrem ersten und letzten Auftauchen gelistet.
Alarmierung und Benachrichtigung
Ein sehr wichtiges Feature von New Relic APM ist die Alarmierung (Alerts) unter der Hauptkategorie „Events“ (siehe Screenshot 9: Alerts). Sobald die Fehlerrate über einen festgelegten Schwellwert steigt oder der Score unter einen festgelegten Wert sinkt, verschickt New Relic automatisch Nachrichten per E-Mail oder über einen anderen eingestellten Kommunikationskanal. Im Screenshot lassen sich die aktuell eingestellten Alarmierungen erkennen. Hier wurde nur ein Alarm eingestellt, der auftaucht, wenn der Apdex unter 0,7 sinkt oder die Fehlerrate auf über 5 Prozent steigt. Zudem lassen sich bereits vergangene Alarme nachträglich betrachten.
Anwendungsbeispiel
Zur Veranschaulichung möchten wir einen typischen Problemfall schildern, und wie er sich durch den Einsatz von New Relic APM lösen lässt.
In diesem Beispiel wird ein Onlineshop häufig um neue Funktionen erweitert beziehungsweise verändert. Dem technisch Verantwortlichen für den Shop ist es dabei sehr wichtig, dass die Performance nicht unter den Änderungen leidet. Aus diesem Grund nutzt er für seinen Onlineshop New Relic APM. Nachdem er neue Funktionen in einer Testumgebung geprüft hat, werden diese von ihm in der Liveumgebung installiert. Über die New Relic API kann er die neuen Features sogar in der New Relic Timeline als Release markieren.
Das hier vorgestellte Tool bewertet im Hintergrund durchgehend die Performance des Onlineshops. Der technisch Verantwortliche für den Shop stellt einen bestimmten Schwellenwert für den Adpex-Score ein, der nicht unterschritten werden soll. Fällt der Wert unter diese Grenze, erhält der Verantwortliche sofort eine E-Mail.
In unserem Fallbeispiel kommt es nach einem Modul-Update zu langen Ladezeiten der Seiten, obwohl das Update in einer Testumgebung keine Auswirkungen auf die Performance gezeigt hatte. Der technisch Verantwortliche bekommt per Mail eine Warnung und schaut sich daraufhin die Traces im Dashboard an. Da er dort sieht, welche Traces besonders lange gebraucht haben, findet er so den Flaschenhals. Anhand der Traces kann er schließlich die Codestelle in einem Plugin ausfindig machen, welche für die niedrige Performance verantwortlich ist. Ausgehend hiervon, wird er schließlich mittels Analysen das Problem genauer bestimmen und eine Lösung erarbeiten.
New Relic APM bei maxcluster einrichten
New Relic APM lässt sich bei maxcluster mit wenigen Klicks einrichten. In unserem Managed Center findet sich der Menüpunkt „Profiler“ mit der Schaltfläche „New Relic einrichten“. Dort geben Sie Ihren License Key ein und betiteln Ihre Anwendung. Anschließend aktivieren Sie New Relic APM mit nur einem einfachen Klick. Die Konfiguration lässt sich nun jederzeit (de-)aktivieren und gilt schließlich für den gesamten Cluster.
Weitere Beiträge dieser Blogserie
- Flaschenhälse erkennen mit 3 effizienten Profiling Tools
- Teil 1: Blackfire IO
- Teil 2: Tideways
- Teil 4: Vergleich der Profiler Blackfire IO, Tideways und New Relic
Zuletzt aktualisiert am 12.05.2021 | JH