Administration Console Online Help

Previous Next Open TOC in new window
Content starts here

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.

Related Tasks

Related Topics


Back to Top