Weblogic Diagnostic
Framework (=WLDF)
Birgit Arndt
• Allgemeine Architektur des WeblogicDiagnostic Frameworks (= WLDF)
• Allgemein zur Konfiguration von WLDF
• Konfiguration einiger WLDF Komponenten
• Zugriff auf die Diagnosedaten
• Fazit
Agenda
2Weblogic Diagnostic Framework (=WLDF)
WLDF enthält verschiedene Komponenten zumSammeln und Analysieren von Daten:
• Integration von JRockit• Diagnostic Image capture• Archive• Instrumentation• Harvester• Watches und Notifications• Monitoring Dashboard• Logging Services
Was ist das WLDF?
3Weblogic Diagnostic Framework (=WLDF)
• Zur Analyse im Fehlerfall
• Zum Speichern von diagnostischen Werten
• Zur Diagnose von Applikationen
Wozu das WLDF benutzen?
4Weblogic Diagnostic Framework (=WLDF)
WLDF enthält folgendes• Data Creators• Data Collectors• Instrumentation
Komponente• Archive Komponente• Accessor Komponente• Watch und
NotificationKomponente
• Image Capture Komponente
• Monitoring Dashboard
WLDF Architektur Hauptkomponenten
5Weblogic Diagnostic Framework (=WLDF)
• Ist im Wesentlichen eine Momentaufnahme des Servers
• Ad hoc
• Automatisch gesteuert durch z.B. eine Überwachungsregel
WLDF Architektur Image Capture
6Weblogic Diagnostic Framework (=WLDF)
• Zum Speichern „historischer“ Daten
• Events, wie Logfileeinträge, als auch Metriken können in Archiven gespeichert werden
WLDF Architektur Archive
7Weblogic Diagnostic Framework (=WLDF)
WLDF ArchitekturData Creation, Collection and Instrumentation
8Weblogic Diagnostic Framework (=WLDF)
• Daten werden von verschiedenen Quellen gesammelt
• Watches sind zum Überwachen von speziellen diagnostischen Werten
• Durch die Notifications können Benachrichtigungen gesendet werden.
WLDF Architektur Watches und Notifications
9Weblogic Diagnostic Framework (=WLDF)
• Bietet Zugriff auf alle Daten, die gesammelt werden
• Online, JMX-basiert
• Offline, via WeblogicScripting Tool und physikalischem Zugriff
WLDF Architektur Data Accessor
10Weblogic Diagnostic Framework (=WLDF)
• Zeigt den aktuellen und historischen Betriebszustand des Server und dessen Applikationen
• Greift auf Archive zu
• Es gibt vordefinierte Views, aber man kann auch selbst welche erstellen.
WLDF Architektur Monitoring Dashboard
11Weblogic Diagnostic Framework (=WLDF)
• Über MBeans (Managed Beans)
• Konfiguration wird referenziert in XML-Dateien
• Tools für die Konfiguration:- Weblogic AdminKonsole- Weblogic Scripting Tool (= WLST)- via JMX- via XML-Dateien (nicht empfohlen)
Allgemein zur Konfiguration WLDF
12Weblogic Diagnostic Framework (=WLDF)
• WLDF Konfiguration ist aufgeteilt in
- Server-Level
- Applikations-Level
Allgemein zur Konfiguration WLDF
13Weblogic Diagnostic Framework (=WLDF)
Allgemein zur Konfiguration WLDFDiagnostic System Models
• Werden in der Domain erstellt, um WLDF auf Server-Ebene zu nutzen.
• Sind global in der Domain
• Verschiedene konfigurierbar
• Maximal eines pro Server / Cluster
Weblogic Diagnostic Framework (=WLDF) 14
• Nur Instrumentation möglich
• Wird mit der Applikation deployed
• Konfiguration in weblogic-diagnostics.xml unter META-INF
Allgemein zur Konfiguration WLDFDiagnostic Application Models
15Weblogic Diagnostic Framework (=WLDF)
• Via AdminKonsole
• Via WLST
Konfiguration Image Capture
16Weblogic Diagnostic Framework (=WLDF)
cd('/Servers/MedRecServer/ServerDiagnosticConfig/MedRecServer')
cmo.setImageDir('/home/oracle/')
cmo.setImageTimeout(3)
• Ad hoc, via AdminKonsole
• Ad hoc, via WLST
Erstellung eines Image Capture
17Weblogic Diagnostic Framework (=WLDF)
serverRuntime()
cd('serverRuntime:/WLDFRuntime/WLDFRuntime/WLDFImageRuntime/Image')
cmo.captureImage()
18
Inhalt eines Image Capture
Weblogic Diagnostic Framework (=WLDF)
• Für jeden Server konfigurierbar
• 2 Arten von Archiven- Dateibasiert- JDBC
• Konfiguration der Aufbewahrung von diagnostischen Daten- Größenbasiert- Zeitbasiert
Konfiguration Archives
19Weblogic Diagnostic Framework (=WLDF)
• Via AdminKonsole
• Via WLST
Dateibasierte Archives
20Weblogic Diagnostic Framework (=WLDF)
cd('/Servers/MedRecMng01/ServerDiagnosticConfig/MedRecMng01')
cmo.setPreferredStoreSizeLimit(100)
cmo.setStoreSizeCheckPeriod(1)
cmo.setDataRetirementEnabled(true)
cmo.setDiagnosticDataArchiveType('FileStoreArchive')
cmo.setDiagnosticStoreDir('/home/oracle/diagnostic')
• Via AdminKonsole
• Via WLST
JDBC Archives
21Weblogic Diagnostic Framework (=WLDF)
cd('/Servers/MedRecServer/ServerDiagnosticConfig/MedRecServer')
cmo.setPreferredStoreSizeLimit(100)
cmo.setStoreSizeCheckPeriod(1)
cmo.setDataRetirementEnabled(true)
cmo.setDiagnosticDataArchiveType('JDBCArchive')
cmo.setDiagnosticJDBCResource(getMBean('/JDBCSystemResources/Me
dRecGlobalDataSourceXA'))
• Via AdminKonsole
• Via WLST
Konfiguration ArchivesAufbewahrungszeiten, Größenbasiert
22Weblogic Diagnostic Framework (=WLDF)
cd('/Servers/MedRecMng01/ServerDiagnosticConfig/MedRecMng01')
cmo.setPreferredStoreSizeLimit(2048)
cmo.setStoreSizeCheckPeriod(2)
• Via AdminKonsole
Konfiguration ArchivesAufbewahrungszeiten, Zeitbasiert
23Weblogic Diagnostic Framework (=WLDF)
• Via WLST
Konfiguration ArchivesAufbewahrungszeiten, Zeitbasiert
24Weblogic Diagnostic Framework (=WLDF)
cd('/Servers/MedRecMng01/ServerDiagnosticConfig/MedRecMng01')
cmo.createWLDFDataRetirementByAge('MedRecHarcvesterRetirement')
cd('/Servers/MedRecMng01/ServerDiagnosticConfig/MedRecMng01/WLD
FDataRetirementByAges/MedRecHarcvesterRetirement')
cmo.setArchiveName('HarvestedDataArchive')
cmo.setRetirementAge(720)
cmo.setRetirementTime(22)
cmo.setRetirementPeriod(240)
cmo.setEnabled(true)
• Hauptmerkmale sind- Diagnostic monitors- Diagnostic actions- Diagnostic context
• Mechanismus zum Hinzufügen von Diagnosecode an bestimmten Stellen- joinpoints- pointcuts- diagnostic location
• Sowohl Serverbasiert als auch Applikationsbasiert konfigurierbar
Konfiguration Instrumentation
25Weblogic Diagnostic Framework (=WLDF)
Diagnostic Monitors
• Werden nach Bereich (Server / Applikation) und nach Typ (pointcut,diagnostic location, action) kategorisiert
• Es gibt- standard monitors- delegation monitors- custom monitors
Konfiguration Instrumentation
26Weblogic Diagnostic Framework (=WLDF)
Monitor actions
• Führen den Diagnosecode für delegationoder custom monitors aus
• Monitor actions müssen zum Diagnose Monitor passen
Konfiguration Instrumentation
27Weblogic Diagnostic Framework (=WLDF)
Diagnostic actions
• WLDF bietet folgende actions:- DisplayArgumentsAction- MethodInvocationStatisticsAction- MethodMemoryAllocationStatisticsAction- StackDumpAction- ThreadDumpAction- TraceAction- TraceElapsedTimeAction- TraceMemoryAllocationAction
Konfiguration Instrumentation
28Weblogic Diagnostic Framework (=WLDF)
• Via Deskriptordatei weblogic-diagnostic.xml im Verzeichnis META-INF
• Via Deploymentplan
• Via Annotations
Konfiguration für Applikationsinstrumentation
29Weblogic Diagnostic Framework (=WLDF)
30
Konfiguration für Applikationsinstrumentation
Weblogic Diagnostic Framework (=WLDF)
<?xml version="1.0" encoding="UTF-8"?><wldf-resource xmlns="http://www.bea.com/ns/weblogic/90/diagnostics">
<instrumentation><enabled>true</enabled><!-- Servlet Session Monitors --><wldf-instrumentation-monitor><name>Servlet_Around_Service</name><enabled>true</enabled><dye-mask>ADDR1</dye-mask><dye-filtering-enabled>true</dye-filtering-enabled><action>TraceElapsedTimeAction</action>
</wldf-instrumentation-monitor><!-- Servlet Session Monitors --><wldf-instrumentation-monitor><name>EJB_Around_SessionEjbBusinessMethods</name><enabled>true</enabled><dye-mask>ADDR1</dye-mask><dye-filtering-enabled>true</dye-filtering-enabled><action>TraceElapsedTimeAction</action>
</wldf-instrumentation-monitor></instrumentation>
</wldf-resource>
• Komponente der Instrumentation
• Zur eindeutigen Identifizierung und Nachverfolgung von HTTP- oder RMI-Requests innerhalb des Systems
• Fügt dem Request einen diagnostic context zu
• Diagnostic context besteht für die Dauer des Lebenszyklus des Requests.
Konfiguration DyeInjectionfür Diagnostic Context
31Weblogic Diagnostic Framework (=WLDF)
Konfiguration DyeInjectionvia AdminKonsole
32Weblogic Diagnostic Framework (=WLDF)
Konfiguration DyeInjection via WLST
33Weblogic Diagnostic Framework (=WLDF)
cd('/WLDFSystemResources/MedRecWLDF/WLDFResource/MedRecWLDF/Instru
mentation/MedRecWLDF')
cmo.createWLDFInstrumentationMonitor('DyeInjection')
cd('/WLDFSystemResources/MedRecWLDF/WLDFResource/MedRecWLDF/Instru
mentation/MedRecWLDF/WLDFInstrumentationMonitors/DyeInjection')
cmo.setDescription('DyeInjection')
cmo.setProperties('ADDR1=127.0.0.1\r\[email protected]')
set('Actions',jarray.array([], String))
cmo.setDyeMask(None)
• Jeder Diagnostic monitor kann eine dye maskhaben
Dye Filterung
34Weblogic Diagnostic Framework (=WLDF)
• Data accessor erhält von den WLDF Komponenten Diagnoseinformationen
• Diagnoseinformationen werden nach ihrer „Herkunft“ in logische Datenspeicher aufgeteilt.
• Datenspeicher sind meist tabellarisch
Zugriff auf Diagnose Daten
35Weblogic Diagnostic Framework (=WLDF)
• Via AdminKonsole (online)
Zugriff auf Diagnose Daten
36Weblogic Diagnostic Framework (=WLDF)
• Via WLST (online & offline)
Zugriff auf Diagnose Daten
37Weblogic Diagnostic Framework (=WLDF)
Online:
wls:/medrec/serverConfig> serverRuntime()
wls:/medrec/serverRuntime>
exportDiagnosticDataFromServer(logicalName="HarvestedData
Archive",exportFileName="/home/oracle/HarvestedDataArchiv
e.xml")
Offline:
wls:/offline>
exportDiagnosticData(logicalName="HarvestedDataArchive",e
xportFileName="/home/oracle/HarvestedDataArchive_02.xml")
• WLDF ist „ab Werk“ dabei(nicht bei WLS Basic Lizenz)
• Andere Tools für gleichen Zweck auch auf dem Markt (z.B. dynaTrace)
• Absprachen zwischen Entwicklern und Administratoren notwendig
• Eher für Diagnose als für Monitoring
Fazit
38Weblogic Diagnostic Framework (=WLDF)
Fragen & Antworten
Top Related