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.


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.

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?
methodSpec '(' parameterList ')'
call_pointcut := 'call' '(' returnSpec
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 % (percent character) prefix designates the value of a non-static class instantiation, parameter, or return specification as not containing nor exposing sensitive information. If this prefix character is not explicitly used, an asterisk string is substituted for the value that is returned. Note that the % operator cannot be applied to an ellipsis or to a wildcarded type within a pointcut expression.
  • 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