Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.

Kieker Monitoring Framework

The internal behavior of large-scale software systems cannot be determined on the basis of static (e.g., source code) analysis alone. Kieker provides complementary dynamic analysis capabilities, i.e., monitoring and analyzing a software system’s runtime behavior — enabling application performance monitoring and architecture discovery.

Detailed information about Kieker is provided at and its documentation site


If you use this software, please cite

  • Wilhelm Hasselbring and André van Hoorn (2020) "Kieker: A monitoring framework for software engineering research". Software Impacts, 5.

  • André van Hoorn, Jan Waller, and Wilhelm Hasselbring (2012) "Kieker: A Framework for Application Performance Monitoring and Dynamic Software Analysis". In: 3rd joint ACM/SPEC International Conference on Performance Engineering (ICPE 2012), April 22-25, 2012, Boston, Massachusetts, USA.

BibTeX entries are provides as Kieker BibTeX file


Kieker releases (stable, nightly, etc.) can be downloaded from our website's Download Section.

Documentation on how to use Kieker can be found here: Kieker Documentation

Development and Contribution

Gradle is used as the build tool. A build.gradle file is provided. From the command-line, please use the provided Gradle wrapper script, e.g., on Unix-based systems, run ./gradlew clean build -x check -x test to build without executing checks and tests.

For issue tracking and bug reports, JIRA is used at

Further instructions for developers are available at

Eclipse Setup for Contributors

  • Get Gradle support by installing the Eclipse plugin "Buildship: ..." in version 2 or above.
  • If you have already imported Kieker in Eclipse, delete it
  • Import Kieker in Eclipse by importing it as gradle project (Eclipse will also import all submodules automatically)
  • Whenever you change a build.gradle file, regenerate the .project and .classpath files for Eclipse by using "Gradle->Refresh Gradle Project"

Read our Confluence pages for more information.

Code Conventions

Read and follow our code conventions

Debugging and Logging Kieker's Execution

Kieker uses the Simple Logging Facade for Java (SLF4J) to support the logging framework of your choice. In order to see or store log messages, you need to bind a logging framework at deployment time.

A fast and flexible logging framework that can be used with SLF4J is Logback. In order to use it, you have to download it and add the following Jar files to the classpath:

  • logback-classic-<version>.jar
  • logback-core-<version>.jar

Moreover, you have to set up a logback.xml file for configuration and add its containing folder to the classpath. An example of such a file is provided below:

<!-- log to console -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
	<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<!-- for logging to files see: -->

<!-- standard log level is "warn" -->
<root level="warn">
	<appender-ref ref="STDOUT" />
<!-- set log level for TCP writer down to "info" -->
<logger name="kieker.monitoring.writer.tcp" level="INFO" />

Logbacks official documentation provides more information on how to use and configure it.