Dynamic and adaptive monitoring

By default, instrumentation is static. This means, at runtime, once a method or resource is instrumented, the instrumentation cannot be removed, and if a method/resource is not instrumented, it cannot be instrumented.

Kieker includes functionality to change the instrumentation at runtime, which is denoted as dynamic instrumentation. Currently, the dynamic instrumentation can be configured via JMX and periodically polled configuration files. In this way, the monitoring can be enabled/disabled in parts or completely at runtime.

Dynamic instrumentation is a prerequisite for adaptive monitoring, which aims to plan and to execute the monitoring at runtime. This allows, for instance, to make the instrumentation more detailed when a performance problem should be analyzed.