edocs Home > Oracle WebLogic Server Documentation > Administration Console Online Help > Diagnostic Modules: Create a Custom Monitor
Diagnostic Modules: Create a Custom Monitor
Configuration Options Related Tasks Related Topics
Use this page to create a custom diagnostic monitor.
Configuration Options
Name Description Monitor Name The name of the custom monitor.
Description A description for this custom monitor.
Location Type The location where the diagnostic action will be triggered, relative to a joinpoint. A joinpoint is a specific location in a class, for example a method or a call site within a method. Locations can be:
- Before specifies that the diagnostic activity will occur before the joinpoint.
- After specifies that the diagnostic activity will occur after the joinpoint.
- Around specifies that the diagnostic activity will occur both before and after the joinpoint.
Pointcut An expression to define the pointcut. A pointcut is an expression that specifies a set of joinpoints.
You can specify two types of pointcuts for custom monitors:
- call: Take an action when a method is invoked.
- execution: Take an action when a method is executed.
The syntax for definining a pointcut expression is as follows:
pointcutExpr := orExpr ('OR' orExpr ) *
orExpr := andExpr ( 'AND' andExpr ) *
andExpr := 'NOT' ? termExpr
termExpr := exec_pointcut | call_pointcut | '(' pointcutExpr '}'
exec_pointcut := 'execution' '(' modifiers?
returnSpec
classSpecWithAnnotions
methodSpec '(' parameterList ')'
')'
call_pointcut := 'call' '(' returnSpec
classSpec
methodSpec '(' parameterList ')'
')'
modifiers := modifier ( 'OR' modifier ) * modifier := 'public' | 'protected' | 'private' | 'static'
returnSpec := '*' typeSpec
classSpecWithAnnotations := '@' IDENTIFIER ( 'OR' IDENTIFIER ) * | classSpec
classSpec := '+' ? classOrMethodPattern | '*'
typeSpec := ( primitiveType | classSpec ) ( '[]' )*
methodSpec := classOrMethodPattern
parameterList := param ( ',' param ) *
param := typeSpec | '...'
primitiveType := 'byte' | 'char' | 'boolean' | 'short' | 'int' | 'float' | 'long' | 'double' | 'void'
classOrMethodPattern := '*' ? IDENTIFIER '*'? | '*'The following rules apply:
- Wildcards (*) can be used in class types and method names.
- An ellipsis (...) in the argument list signifies a variable number of arguments of any types beyond the argument.
- A + (plus sign) prefix to a class type identifies all subclasses, subinterfaces or concrete classes implementing the specified class/interface pattern.
- A pointcut expression specifies a pattern to identify matching joinpoints. An attempt to match a joinpoint against it will return a boolean, indicating a valid match (or not).
- Pointcut expressions can be combined with AND, OR and NOT boolean operators to build complex pointcut expression trees.
![]()