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 und
  • Instrumentieren danach
  • Testen und Verifizieren und später
  • Einsetzen und Überwachen und/oder
  • Analysieren
  • Arbeitseinheiten ('Units Of Work') identifizieren und ausführen

    Arbeitseinheit identifizieren Schritt 1
    Arbeitseinheit identifizieren Schritt 2
    Arbeitseinheit identifizieren Schritt 3

    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

    Anwendung instrumentieren Schritt 1
    Anwendung instrumentieren Schritt 2
    Anwendung instrumentieren Schritt 3

    Um die Anwendungen von Client und Server mit ARM zu instrumentieren, müssen entsprechende Anwendungs- und Transaktionsnamen werden:

    Anwendungsdefinitionen
    Client-App (Client)
    AppServer-App (Server)
    Transaktionsdefinitionen
    Find-Customer-By-Name (Client)
    SOAP-Request (Server)

    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

    ARM Konzepte Teil 1
    ARM Konzepte Teil 2

    Stellen Sie sicher, dass Ihre ARM-Instrumentierung richtig ist und alle notwendigen Informationen verknüpft sind:

    1. Vergeben Sie einen sinnvollen Name, z.B. SOAP-Request für die Verarbeitung eines SOAP-Requests.
    2. 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.
    3. Definieren Sie sinnvolle Zustände für die Transaktionen, z.B. erfolgreich oder fehlgeschlagen.
    4. Übergeben Sie den richtigen Eltern-Correlator an die Kinder.
    5. Falls möglich, ordnen Sie den Benutzernamen oder die ID unter der die Transaktion ausgeführt wurde zu.
    6. 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).
    7. 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).
    8. In Multi-threading Umgebungen können Sie die Thread-ID oder den Benutzer, unter dem die Transaktion ausgeführt wurde, verknüpfen.
    9. Verbinden Sie Metriken um den aktuellen Stand der Transaktion (z.B. Füllstand der Warteschlange als Anzeige) zu verknüpfen.
    10. Tragen Sie Kontextinformationen, z.B. Kunden-ID, für weitere Filterung und Analyse ein.

    Einsetzen und überwachen der ARM-instrumentierten Anwendung

    produktiv einsetzen
    produktiv überwachen
    produktiv überwachen

    1. Client- und Server-Anwendungen laufen auf ihren Hosts und verwenden die ARM-Schnittstelle um definierte ARM-Transaktion zu messen.
    2. Die MyARM Agent-Implementierung verarbeitet diese Messungen und leitet sie an den myarmdaemon mittels eines effizienten Protokolls, welches auf der TCP/IP-Schicht aufsetzt.
    3. Der myarmdaemon empfängt die eingehenden Messungen und speichert sie in der konfigurierten Datenbank.
    4. MyARM unterstützt Oracle®, MySQL® und SQLite® Datenbanken.

    • Der Monitor gibt einen Überblick über die Statistik von Antwortzeiten der letzten 12 Stunden (Zum Zeitpunkt der Aufnahme des Screenshots) von unserer Demo-Web-Seite myarm.info.
    • Hier werden drei verschiedene Antwortzeit-Gruppen gezeigt:
      1. HTTP-Anfrage Messungen der arm4sdk.org Web-Seite
      2. Transaktion Messungen unserer CDDB-Demo auf myarm.info
      3. Gesamtstatistic der HTTP-Anfragen von den Web-Seiten auf myarm.info und arm4sdk.org

    • Die Ansicht der letzten 12 Stunden des RTS-Monitors zeigt die Statistik aller HTTP-Anfrage Messungen von der Web-Seite arm4sdk.org

    Analysieren der gemessenen Transaktionen

    Messwerte analysieren Teil 1
    Messwerte analysieren Teil 2
    Messwerte analysieren Teil 3

    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.)

    • Im Beispiel-Diagramm wurde auf die Box unter der Maus geklickt. Auf der rechten Seite des Bildschirms werden die dazugehörigen Transaktionsmessungen angezeigt.

    Das Diagramm zeigt, welche Funktionen eine Anwendung in einer anderen Anwendung auf einem unterschiedlichen System aufgerufen hat.

    • Auf der rechten Seite des Bildschirms zeigt ein Tortendiagramm die Verteilung der gesamten Antwortzeit, bezogen auf die verwendeten Transaktionen.

    Einen detaillierten Einblick finden Sie in der Ansicht .

    • Auf der rechten Seite des Bildschirms zeigt ein Tortendiagramm die Verteilung der prozentualen Anteile der gesamten Antwortzeit eines spezifischen Systems.