Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So führen Sie eine CaptureFramework-Framework-Analyse durch

So führen Sie eine CaptureFramework-Framework-Analyse durch

王林
王林nach vorne
2023-06-02 22:01:18992Durchsuche

1. Hintergrund

Die Überwachung von Anwendungsdiensten ist ein wichtiger Bestandteil des intelligenten Betriebs- und Wartungssystems. Im UAV-System bietet die Middleware Enhancement Framework (MOF)-Sonde Funktionen zur Erfassung von Anwendungsporträts und Leistungsdaten. Die Datenerfassungsfunktion erfasst hauptsächlich vier Arten von Daten: Echtzeitdaten, Porträtdaten, Anrufverbindungsdatengenerierung und Thread-Datenanalysedaten . . Um eine Datenerfassung in Echtzeit zu erreichen, hat UAVStack das CaptureFramework-Framework entwickelt, um ein einheitliches Datenerfassungsverhalten und die Möglichkeit zur Generierung von Erfassungsergebnissen bereitzustellen. 2. CaptureFramework-Funktionsprinzip 2 Architekturbeschreibung

Erfassungspunkt : Unterstützt Tomcat, MSCP, Springboot und Jetty. So führen Sie eine CaptureFramework-Framework-Analyse durch

UAVServer-Singleton: Als einheitlicher Erfassungseinstiegspunkt bietet er synchrone und asynchrone Methoden.
  • StandardMonitor: Es implementiert die Monitor-Schnittstelle und ist eine Implementierungsklasse für die Echtzeit-Datenerfassung. Es stellt die doCapture-Methode bereit, die für das Erfassungsverhalten und die Generierung von Erfassungsergebnissen verantwortlich ist.
  • MonitorElemCapHandler: Verschiedene Crawling-Logiken und gemeinsame Schnittstellen von Crawling-Punkten implementieren unterschiedliche Vergrabungslogiken und stellen die Methoden preCap und doCap für das Crawling-Verhalten und die Methode preStore für die Generierung von Crawling-Ergebnissen bereit.
  • StandardMonitorRepository: Speichert die Datenstruktur der Echtzeit-Datenerfassung.

DataObserver: Macht JMX/HTTP-Schnittstellendaten verfügbar.
  • 2.3 Beschreibung der Schlüsselklasse
  • Die Monitor-Echtzeitüberwachung startet und initialisiert hauptsächlich das StandardMonitor-Objekt aus der DefaultMonitorSupporter-Klasse und installiert das Monitorobjekt über CaptureFramework im DataStore-Objekt.
  • DataObserver stellt einen JMX/HTTP-Dienst für das anschließende MA-Crawling bereit. Der HTTP-Dienst hat drei Handler registriert, nämlich HttpJEEJVMObserver, HttpJEEMonitorObserver und HttpJEEProfileObserver. Verschiedene Handler stellen unterschiedliche Schnittstellen bereit.
  • Die Handler-Klasse im MonitorHandler-Paket kümmert sich speziell um die Berechnung und Statistik der Indikatordaten von Monitor.
  • 2.4 Capture-Punkt-Analyse
  • Das CaptureFrameWork-Framework bietet einen einheitlichen Capture-Einstiegspunkt, der synchrone Methoden bzw. asynchrone Methoden in UAVServer bereitstellt:

Synchroner Capture-Einstiegspunkt: runMonitorCaptureOnServerCapPoint

  • Asynchroner Capture-Einstiegspunkt: runMonitorAsyncCapture OnServerCapPoint

  • 2.4.1 Differenzanalyse zwischen synchronen und asynchronen Aufrufen

    Asynchronous fügt einen weiteren Parameter als die Synchronisation hinzu: CaptureContextMapFromAnotherThread. Wenn dieser Parameter nicht leer ist, müssen die Kontextinformationen zusammengeführt werden. Unter normalen Umständen ist bei Verwendung einer asynchronen Methode zum Vergraben des Punktes der durch Aufruf der asynchronen Erfassungsmethode übergebene CaptureContextMapFromAnotherThread leer, und die gekapselten Kontextinformationen werden zurückgegeben. Nach Abschluss der Methodenausführung wird die asynchrone Erfassung durchgeführt Die Methode wird aufgerufen, um die Kontextinformationen zu übergeben, und die Kontextinformationen werden zusammengeführt, und dann werden bestimmte Erfassungsvorgänge ausgeführt. Weitere Informationen finden Sie in den folgenden Codeausschnitten:
  • Asynchroner Aufruf vor der Methodenausführung

  • Der asynchrone Aufruf nach der Methodenausführung lautet wie folgt, wobei ccMap ein asynchroner Aufruf ist. Die zurückgegebenen gekapselten Kontextinformationen

2.5 Analyse des Greifverhaltens

Monitor-Schnittstelle: Bietet mehrere Schnittstellen, die wichtigste Davon sind die Methoden „doCapture“ und „doPreStore“. Mit „doCapture“ wird eine bestimmte Erfassung implementiert. Klicken Sie hier, um das Datenerfassungsverhalten auszuführen. Die „doPreStore“-Methode wird verwendet, um einige Erfassungsaktionen vor dem Speichern in der Datenstruktur zu implementieren und eine spezielle Datenverarbeitung durchzuführen.
  • StandardMonitor-Klasse: Die spezifische Implementierungsklasse der Monitor-Schnittstelle.

So führen Sie eine CaptureFramework-Framework-Analyse durchStandardMonitorRepository-Klasse: Speichert die Datenstruktur der Echtzeit-Datenerfassung.

  • MonitorElementInstance-Schnittstelle: eine Instanzschnittstelle, die Datenstrukturen zur Echtzeit-Datenerfassung speichert.

StandardMonitorElementInstance-Klasse: Die spezifische Implementierungsklasse der MonitorElementInstance-Schnittstelle. So führen Sie eine CaptureFramework-Framework-Analyse durch

Unabhängig davon, ob es sich um einen synchronen Erfassungseinstiegspunkt oder einen asynchronen Erfassungseinstiegspunkt handelt, wird die doCapture-Methode wie folgt ausgeführt:
  • monitor.doCapture ruft doCapture in der Monitor-Schnittstelle auf Die Implementierungsklasse ist StandardMonitor.
  • Die doCapture-Methode in StandardMonitor führt hauptsächlich die folgenden Vorgänge aus:

  • Erhalten Sie das aktuelle MonitorElement-Array gemäß den Parametern. Das MonitorElement-Array wird über getElementByCapId von StandardMonitorRepository implementiert

  • Verarbeiten Sie das MonitorElement-Array in einer Schleife, rufen Sie die Implementierungsklasse für die Erfassungsdaten ab, erhalten Sie den aktuell ausgeführten Handler basierend auf der Implementierungsklasse und bestimmen Sie schließlich die Erfassungsstufe (Precap/Docap) basierend auf dem aktuell erhaltenen Handler und führen Sie ihn dann aus entsprechende Bearbeitung. Verschiedene Handler generieren MonitorElementInstance basierend auf unterschiedlichen Merkmalen und speichern die Ergebnisse schließlich in der StandardMonitorRepository-Datenstruktur.

Nehmen Sie als Beispiel ServerEndRespTimeCapHandler (serverseitiges Crawling-Verhalten):

  • preCap-Methode: Zeichnet nur die Startanforderungszeit des Dienstes auf.

  • doCap-Methode: Führen Sie je nach MonitorElemId unterschiedliche logische Verarbeitungen durch, kapseln Sie schließlich die MonitorElementInstance-Instanz und verarbeiten Sie dann die Ergebnisse des Erfassungsverhaltens, einschließlich Maximalwert-Spitzenbeseitigung, Maximalwert, Minimalwert, Rückgabestatuscode, Zeitstempelaktualisierung, Zählung und andere entsprechende Datenverarbeitung. 3. Echtzeit-Datenerfassung das Programm sowie Servicezugriffe und Kundenstatistiken im Zusammenhang mit Endanrufen (durchschnittliche Antwortzeit, Zugriffsanzahl usw.). 3.2 Serverseitige Datenerfassung Standard, der StandardMonitorRepository enthält Beispiel: Die StandardMonitorRepository-Instanz registriert einen Monitor, eine Instanz enthält mehrere MonitorElement-Instanzen und alle MonitorElement-Instanzen werden im elemsMap-Attribut gespeichert.

  • elemsMap-Attribut speichert verschiedene Sammlungsklassenhandler entsprechend verschiedenen Sammlungsobjekten:

ServerEndRespTimeCapHandler: erfasst die Antwortzeit und die Ladeanzahl von Server, APP, URL usw.

JVMStateCapHandler: erfasst den JVM-Status, einschließlich der Heap-Nutzung , GC-Anzahl, Thread-Anzahl, CPU, Klassenanzahl usw.

Der Codeausschnitt lautet wie folgt: So führen Sie eine CaptureFramework-Framework-Analyse durch

So führen Sie eine CaptureFramework-Framework-Analyse durch

3.3 Client-Datenerfassung

Implementierung von DefaultClientMonitorSupporter

  • Client-Datenerfassung verwendet DefaultClientMonitorSupporter.start als Einstiegspunkt zum Erstellen einer Monitorinstanz:

  • Standardmäßig wird eine StandardMonitor-Instanz des Client-Typs erstellt, die eine StandardMonitorRepository-Instanz enthält. Diese Instanz enthält mehrere MonitorElement-Instanzen, und alle MonitorElement-Instanzen werden im elemsMap-Attribut gespeichert.

elemsMap: Das Attribut speichert nur eine ClientRespTimeCapHandler-Sammlungsklasse.

So führen Sie eine CaptureFramework-Framework-Analyse durch

ClientRespTimeCapHandler: Erfassen Sie die Antwortzeit und die Anzahl der Ladevorgänge usw. des Clients.

So führen Sie eine CaptureFramework-Framework-Analyse durch

So führen Sie eine CaptureFramework-Framework-Analyse durchOb es sich um eine clientseitige Datenerfassung oder eine serverseitige Datenerfassung handelt, der Monitor wird im DataObserver installiert und schließlich wird der erfolgreich erstellte Monitor an die angegebene Erfassungsmethode (d. h. precap und docap) gebunden ).

3.4 Implementierung von DataObServer

DataObServer bietet zwei Modi zum Offenlegen von Schnittstellendaten, nämlich JMX und HTTP: So führen Sie eine CaptureFramework-Framework-Analyse durch

HTTP-Modus: HttpDataObserverWorker.start wird als Einstiegspunkt verwendet, und drei Handler werden registriert, um Handler für abzurufen JVM-Daten, Überwachungsdaten und Profildaten. Jeder Handler stellt eine einzigartige Schnittstelle bereit, aber alle geben Daten im JSON-Format zurück.
  • JMX-Methode: Der JMX-Agent ruft die verfügbar gemachte Schnittstelle über die getMBeanInfo-Methode ab, um Daten abzurufen.
  • DataObServer bietet auch Methoden zum Installieren und Deinstallieren von Monitoren, zum Hinzufügen und Entfernen von Listenern sowie zum Abrufen von Profilen und Monitoren:

So führen Sie eine CaptureFramework-Framework-Analyse durch

Das obige ist der detaillierte Inhalt vonSo führen Sie eine CaptureFramework-Framework-Analyse durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen