MyARM - Application Response Measurement Werkzeuge
ist eine vollständige Implementierung von ARM, Application Response Measurement, einem Standard der The Open Group für die Messung von verteilten Systemen. MyARM bietet Werkzeuge für die Überwachung (Monitoring) von Ende-zu-Ende (End-to-end) Antwortzeiten von Anwendungen (Transaktionen) sowie für Performance-Management an.
Als Mitautor des ARM 4.0-Standards wurden alle MyARM-Produkte mit vertieften Insider-Wissen um den Standard ARM 4.0 entwickelt.
Auf der rechten Seite sehen Sie einen Screenshot der web-basierten Schnittstelle für die Messungsanalyse. Weitere Einzelheiten und Abbildungen finden Sie im Abschnitt Screenshot.
Folgen Sie den Schritten für einen Überblick über die Möglichkeiten von MyARM:
- Identifizieren
- Instrumentieren
- Testen und Verifizieren
- Einsetzen und Überwachen
- Analysieren
- Anwendungsdefinitionen
- Client-App (Client)
- AppServer-App (Server)
- Transaktionsdefinitionen
- Find-Customer-By-Name (Client)
- SOAP-Request (Server)
- Vergeben Sie einen sinnvollen Name, z.B. SOAP-Request für die Verarbeitung eines SOAP-Requests.
- Verifizieren Sie, dass die gemessene Antwortzeit dem Erwartungswert nahe kommt. Hinweis: Sie sollten eine ungefähre Vorstellung von der Dauer einer Transaktion haben. Andernfalls schätzen Sie die Dauer.
- Definieren Sie sinnvolle Zustände für die Transaktionen, z.B. erfolgreich oder fehlgeschlagen.
- Übergeben Sie den richtigen Eltern-Correlator an die Kinder.
- Falls möglich, ordnen Sie den Benutzernamen oder die ID unter der die Transaktion ausgeführt wurde zu.
- Falls eine Transaktion nicht erfolgreich ausgeführt wurde, können Sie weitere Informationen im sogenannten Diagnose-Detail-Feld übergeben (bis zu 4096 Zeichen, z.B. das fehlgeschlagene SQL-Kommando).
- Falls die Transaktion auf externe Ereignisse warten muss, nutzen Sie das das Blocking-Konzept von ARM, um die genauen Umstände zu ermitteln (Granularität: Mikrosekunden).
- In Multi-threading Umgebungen können Sie die Thread-ID oder den Benutzer, unter dem die Transaktion ausgeführt wurde, verknüpfen.
- Verbinden Sie Metriken, um den aktuellen Stand der Transaktion (z.B. Füllstand der Warteschlange als Anzeige) zu verknüpfen.
- Tragen Sie Kontextinformationen, z.B. Kunden-ID, für weitere Filterung und Analyse ein.
- Client- und Server-Anwendungen laufen auf ihren Hosts und verwenden die ARM-Schnittstelle, um definierte ARM-Transaktion zu messen.
- Die MyARM Agent-Implementierung verarbeitet diese Messungen und leitet sie an den myarmdaemon mittels eines effizienten Protokolls, welches auf der TCP/IP-Schicht aufsetzt.
- Der myarmdaemon empfängt die eingehenden Messungen und speichert sie in der konfigurierten Datenbank.
- MyARM unterstützt MySQL®, MariaDB® und SQLite® Datenbanken.
- Der Monitor gibt einen Überblick über die Statistik von Antwortzeiten der letzten 12 Stunden (Zum Zeitpunkt der Aufnahme des Screenshots) von einer Demo-Web-Seite.
- Hier werden drei verschiedene Antwortzeit-Gruppen gezeigt:
- HTTP-Anfrage Messungen der arm4sdk.org Trac Web-Seite (seit 2021 offline)
- Transaktion Messungen einer CDDB-Demo Web-Seite
- Gesamtstatistic der HTTP-Anfragen von den Web-Seiten auf myarm.info und arm4sdk.org (seit 2021 offline)
- Die Ansicht der letzten 12 Stunden des RTS-Monitors zeigt die Statistik aller HTTP-Anfrage Messungen von der Web-Seite arm4sdk.org (seit 2021 offline)
- Im Beispiel-Diagramm wurde auf die Box unter der Maus geklickt. Auf der rechten Seite des Bildschirms werden die dazugehörigen Transaktionsmessungen angezeigt.
- Auf der rechten Seite des Bildschirms zeigt ein Tortendiagramm die Verteilung der gesamten Antwortzeit, bezogen auf die verwendeten Transaktionen.
- Auf der rechten Seite des Bildschirms zeigt ein Tortendiagramm die Verteilung der prozentualen Anteile der gesamten Antwortzeit eines spezifischen Systems.
Arbeitseinheiten ('Units Of Work') identifizieren und ausführen
Um eine in einer Produktionsumgebung zu überwachen und zu analysieren, müssen als erste und wichtigste Aufgabe die Arbeitseinheiten ('Units of Work') identifiziert werden. Diese sind die Schlüsselindikatoren für die Gesamtanwendung oder für einen wichtigen Teil der von der Anwendung angebotenen Dienste. Sie sollten daher die Aufgaben der Anwendung sehr gut kennen, um die notwendigen Arbeitseinheiten identifizieren können.
Sind die wichtigsten Arbeitseinheiten (), sollte die Anwendung mit Aufrufen zur ARM-Schnittstelle instrumentiert werden. Innerhalb von ARM wird eine Arbeitseinheit auch als Transaktion bezeichnet.
Die Arbeitseinheit Find-Customer-By-Name (dunkelblau) ist ein Schlüsselindikator für die Performance der n-tier Kommunikation zwischen Client und Server sowie zwischen Server und Datenbank.
Die Arbeitseinheit Receive SOAP Request (hellblau) wird verwendet, um den Zeitanteil des Servers für die Operation zu messen.
Beachten Sie, dass für die die Messungen in der Client-Anwendung mit den Messungen in der Server-Anwendung ein sogenannter ARM Correlator vom Client zum Server weitergeleitet werden muss.
In unserem Beispiel geschieht dies durch die Weiterleitung des ARM Correlators vom Client zum Server innerhalb des SOAP Headers. Im Abschnitt Instrumentierung erfahren Sie mehr darüber, wie man mit ARM instrumentiert.
Instrumentieren der Client- und Server-Anwendung, um wichtige Arbeitseinheiten zu messen
Um die Anwendungen von Client und Server mit ARM zu instrumentieren, müssen entsprechende Anwendungs- und Transaktionsnamen werden:
Die Definitionen müssen bei der ARM-Implementierung über geeignete Schnittstellen (API) während der Initialisierung der Anwendung registriert werden (z.B. für Java durch Benutzen der Schnittstelle ArmTransactionDefinition, um einen Transaktionsnamen zu registrieren).
Einmal registriert können die Definitionen zur Messung von Transaktionen genutzt werden, indem Aufrufe eingefügt werden. Der ARM Stop-Aufruf erwartet einen Status, der angibt, ob die Transaktion erfolgreich war (GOOD) oder nicht (FAILED, ABORTED).
Um die Messungen von Client und Server zu , erzeugt der ARM Start-Aufruf ein ARM Correlator Token (fcCorr), welches an den Server innerhalb des SOAP-Requests weitergeleitet wird. Auf dem Server wird das ARM Correlator Token als Eingabeargument als Eltern-Correlator der SOAP-Request-Messung verwendet. So wird die Korrelation zwischen beiden Messungen hergestellt.
Testen und Verifizieren der ARM-Instrumentierung
Stellen Sie sicher, dass Ihre ARM-Instrumentierung richtig ist und alle notwendigen Informationen verknüpft sind:
Einsetzen und überwachen der ARM-instrumentierten Anwendung
Analysieren der gemessenen Transaktionen
Als Erstes erhalten Sie einen Überblick über den vollständigen Transaktions-Messungs-Baum in einem . (Klicken Sie auf das Bild, um es zu vergrößern.)
Das Diagramm zeigt, welche Funktionen eine Anwendung in einer anderen Anwendung auf einem unterschiedlichen System aufgerufen hat.
Einen detaillierten Einblick finden Sie in der Ansicht .