Adaptive Monitoring¶
This article is a stub, as there are different technologies available to adaptively instrument applications. However, we need a place to collect some content.
Note
There is a section in java-monitoring-controller-api also addressing this topic. The grammar should be moved to API and only referenced from here.
Note
Please recheck whether the grammar is still correct.
Note
Add list of options how to control adaptive monitoring.
Configuring Kieker for Adaptive Monitoring¶
Control Probes¶
Pattern Parsing Grammar¶
The Java pattern parser follows essentially the following grammar. Please note that this is going to change in the future.
Pattern parsing grammar
Pattern: WS* TrimmedPattern WS*
TrimmedPattern: '%' java.util.regex.Pattern | KiekerPattern
KiekerPattern: '*' | Modifiers ReturnType FQName '(' WS* Parameters WS* ')' Throws?
Modifiers: (Visibility WS)? (Abstract WS)? (Default WS)? (Static WS)?
(Final WS)? (Synchronized WS)? (Native WS)?
Visibility: "public" | "private" | "protected" | "package"
Abstract: "abstract" | "non_abstract"
Default: "default" | "non_default"
Static: "static" | "non_static"
Final: "final" | "non_final"
Synchronized: "synchronized" | "non_synchronized"
Nativ: "native" | "non_native"
ReturnType: "new" | FQClassName
FQName: FQClassName '.' methodName
Parameters: (
".." |
".." Parameter |
"*" |
FQClassName ) Parameter*
Parameter: ".." | "*" | FQClassName
Throws: WS* "throws" Parameters WS*
FQClassName: ID ('.' ID)*