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.
UAVServer-Singleton: Als einheitlicher Erfassungseinstiegspunkt bietet er synchrone und asynchrone Methoden.
Der asynchrone Aufruf nach der Methodenausführung lautet wie folgt, wobei ccMap ein asynchroner Aufruf ist. Die zurückgegebenen gekapselten Kontextinformationen
StandardMonitorRepository-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.
Unabhängig davon, ob es sich um einen synchronen Erfassungseinstiegspunkt oder einen asynchronen Erfassungseinstiegspunkt handelt, wird die doCapture-Methode wie folgt ausgeführt: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.
Der Codeausschnitt lautet wie folgt:
3.3 Client-Datenerfassung
Implementierung von DefaultClientMonitorSupporter
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.
ClientRespTimeCapHandler: Erfassen Sie die Antwortzeit und die Anzahl der Ladevorgänge usw. des Clients.Ob 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:
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.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!