21
1 munz & more Dr. Frank Munz Insync, Aug2010 WebLogic Diagnostic Framework For the Busy IT Professional welcome! about me Frank Munz 10 years Java EE and EAI with some BPM = SOA

WebLogic Diagnostic Framework Dr. Frank Munz / munz & more WLS11g

Embed Size (px)

DESCRIPTION

WebLogic WLDF Presentation of Dr. Frank Munz / munz & more @InSnyc Melbourne Australia.

Citation preview

Page 1: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

1

munz & moreDr. Frank Munz

Insync, Aug2010

WebLogic Diagnostic

Framework For the Busy IT Professional

welcome!

about me Frank Munz

10 years

Java EEandEAI

with some BPM

= SOA

Page 2: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

2

3years ago

munz & morehttp://www.munzandmore.com

working globally

based @ Manly & Munich

Page 3: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

3

Oracle Fusion Middleware

Page 4: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

4

Weblogic Server

Version 4 to 11gOracle Service Bus

from the very beginning

Architecture

Operation

Development

Training / Coaching

high end curriculum

WLS / OSB / SOA

arch / features / operation

monitoring / sizing / performance tuning

Weblogic Server CourseArchitecture, Features and Operation

Monitoring, Sizing and Performance

Tuning

Oracle Service Bus Course Architecture, Development and

Operation

Page 5: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

5

“Best of WLDF”reasons

1.

2. failure becomes news

Page 6: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

6

some

45.000.000passengers per year

(max)

30 821in 6 hours

30 821passengers

Page 7: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

7

looking at:

worse: this went on for hours…

monitoring + diagnostic

is important important

Page 8: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

8

“So far, this was not necessary” 3.

toolshow is

your most important

application doing right now?

?

Page 9: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

9

Free Heap? Size of http session?

Time to

replicate http session

in cluster?

Free DB connections

in connection pool?

What SQL is sent

to the DB?

At which LOC?

How long is it executing?

positioning

Page 10: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

10

Operations

EMNagios

Developer

ProfilerAOP

WLDF

features

monitoring + diagnostics

server + applications

persists data

is already installed

is free

only minutes to activate

JMX MBeans encapsulate

Page 11: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

11

Configuration Data

+

Runtime ValuesMBeans have

attributes

operations

children

notifications

WLST

start WLST with:

java weblogic.WLST [Script.py]

-> domainRuntime()

WLST Quick Reference

ls() show current mbean / cmo = current managed objectls('a') shows attributes , 'c' child mbeans, 'o' operations

cd() navigate

serverConfig() change to config mbeansserverRuntime() change to server runtimedomainRuntime() change to domain runtimejndi() change to jndi tree

edit() change to edit treestartEdit() start an edit session, then use set('pn','v') / get('pn')save() persist changesactivate() activate changesundo() undo changeseaseSyntaxeaseSyntaxeaseSyntaxeaseSyntax()()()() switch off python syntax, do not use for scriptingswitch off python syntax, do not use for scriptingswitch off python syntax, do not use for scriptingswitch off python syntax, do not use for scripting

WLDF basics

Page 12: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

12

Diagnostic System Module

Create a system modul,target it to any number of servers

• You can have many modules configured• Set target to particular server when needed• You can change module target witout restart

collected metrics

Collected Metrics

... replace your WLST script that contains a loop with sleep() e.g. to monitor free heap.

Remember:Collected metrics = harvested data

Collected MetricType and Attributes

Diagnostic Archives

• File (default)

• DB archive

both come with retirement options

watches

&

notifications

Page 13: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

13

Watches

A watch consists of:

• expression / rule

• one or more notifications

• alarm setting

Watches

Watches can based on:

• collected metrics

• server logs

• event data (= instrumentation)

WatchRule Expression

Notification

Triggered based on watch rules.

Define all underlying transport protocol configurations first

Notification Types Supported

• JMX • JMS• SMTP • SNMP• Diagnostic Images

instrumentation

Page 14: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

14

Instrumentation

Monitor= Unit of diagnostic code

Action= what happens when monitor is triggered

Instrumentation Scope

Server scope= fixed location

Application scope= custom location

Delegate Monitor

Selection of predefined monitors

Actions

Actions create events:• DisplayArgumentsAction (captures args and return value)

• StackDumpAction

• ThreadDumpAction

• TraceAction (generatesTrace event)

• TraceElapsedTimeAction

• TraceMemoryAllocationAction (WLS 10.3.3)

• MethodInvocationStatisticsAction (WLS10.3)

MethodInvocationStatisticsAction

Computes method invocation statistics in memory without persisting.

Access this information through InstrumentationRuntimeMBean by using collected metrics or a watch with notifcation.

MethodInvocationStatisticsAction

MethodInvocationStatisticsMethodInvocationStatisticsMethodInvocationStatisticsMethodInvocationStatistics::=

Map<className, MethodMap>

MethodMapMethodMapMethodMapMethodMap::=

Map<methodName, MethodParamsSignatureMap>

MethodParamsSignatureMapMethodParamsSignatureMapMethodParamsSignatureMapMethodParamsSignatureMap::= Map<MethodParamsSignature,

MethodDataMap>

MethodDataMapMethodDataMapMethodDataMapMethodDataMap::=

<MetricName, Statistic>

MetricNameMetricNameMetricNameMetricName:= min | max | ... std_deviation

Page 15: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

15

MethodInvocationStatisticsAction

MethodInvocationStatistics

{java.sql.Statement={executeQuery={java.lang.Stri

ng={count=4, sum=1.0015808E7,

std_deviation=466173.85858443414, avg=2503952.0,

sum_of_squares=2.594

8374738926E13, max=3307465, min=2174694}}}}

MethodStats Application

http://www.oracle.com/technetwork/articles/

cico-wldf-091073.html

Custom MonitorExample<wldf-resource ...

<instrumentation>

<enabled>true</enabled>

<wldf-instrumentation-monitor>

<name>FranksMonitor</name>

<enabled>true</enabled>

<action>TraceElapsedTimeAction</action>

<location-type>around</location-type>

<pointcut>execute ( * com.surfandconsulting.*

bookFligh* (...));</pointcut>

</wldf-instrumentation-monitor>

Instrumentation

always:

Deploy / Redeploy / Update to apply

Instrumentation uses AspectJ

Hot Swap

Without hot swap -> redeployWith hot swap -> update in place

Enable hot swap with:

-javaagent:$WL_HOME\server\lib\diagnostics-agent.jar

dye injection

Page 16: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

16

incoming requests

user1=sharon

addr1=192.168.0.7

dye injectionmonitor:

time

Dye Injection Monitor

Monitor sets/unsets bits in

64 bit dye vectorto mark requests

to be able to filter them later

Dye Injection Monitor Dye Injection

Throttle Dye further reduces number of samples:

• THROTTLE_INTERVAL (milliseconds)

• THROTTLE_RATE (n-th sample)

diagnostic images

Capture Image

Page 17: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

17

You cannot open these .img files with photoshop

;-)

WLDFconsole extension

plot mbean attributedata over time

example:

connection pool with

5 connections

under load:

Page 18: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

18

with “PinnedToThread”enabled:

/dashboard

is the new WLDF console extension

Conclusionwell designed

well docuemented

quick to apply

Page 19: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

19

needs learning periodWhat should be

improved:

WLSruntime values

not resettable

one sampling interval

per module but

one module per

server only

hot swap

needs in-place update

motivation/introduction

in Oracle

documentation

Page 20: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

20

more information: www.munzandmore.com/blog

WebLogic on Amazon andRackspace

Cloudwww.munzandmore.com/book

Mike Cico‘s article:http://www.oracle.com/technetwork/articles/cico-wldf-091073.html

Oracle WLDF docs:http://download.oracle.com/docs/cd/E14571_01/web.1111/e13714/toc.htm

the end

Page 21: WebLogic Diagnostic Framework  Dr. Frank Munz / munz & more WLS11g

21

questions?