Kieker 2.0.0 released

On September 22, 2024, we released version 2.0.0 of our Kieker framework for application performance monitoring and dynamic software analysis.

We dedicate this major release to our dearly missed friend and colleague André van Hoorn who passed away during the development of this release. He was one of the founding developers of Kieker and head maintainer for many years. He supported the efforts to transform Kieker into a modern framework and tool set for monitoring, performance analysis and architecture recovery. Therefore, we dedicate this release to him.

We release all Kieker libraries via Maven repositories. Information on repositories and downloads are available at https://kieker-monitoring.net/download/ and the source code release is available at https://github.com/kieker-monitoring/kieker/releases/tag/2.0.0.

Refactoring

  • Major API changes
  • Update Kieker to Java 11; Java 8 is no longer supported
  • Modularized Kieker for smaller tools
    • analysis = analysis stages
    • common = common parts, Kieker record and event types
    • kieker = classic kieker packages
    • model = architecture model
    • monitoring-aspectj = monitoring with aspectJ
    • monitoring-core = core monitoring library
    • monitoring-disl = monitoring based on disl
    • monitoring-spring = monitoring with spring
    • tools = for tool development
  • Replaced all the different graph libraries with one graph library
  • Created comprehensive and stable package structure
  • Improved code quality: hardcoded time unit values
  • Removed obsolete code: DbWriter and deprecated classes
  • Update dependencies and provide more modular jars
  • Fixed inconsistent naming of reader and writer tests
  • Replaced old tools with new ones using TeeTime
  • Separated Moobench from Kieker

Features

  • Many improvements to the Kieker Architecture Model, including nested components and dataflow
  • Improve component and operation processing in Kieker
  • Support for user behavior modeling and clustering
  • Support for Java 21
  • Separate string registration from serialization in records
  • Switch to new TeeTime based pipe and filter framework
  • Inclusion of dynamic and static architecture analysis tools from the OceanDSL project

Improved Build System

  • Working local build with docker container
  • Rework Gradle build script
  • Improve Pipeline Speed
  • Jenkins optimization and issue fixing
  • Introduce timeouts for stages
  • Update to Gradle 8.9

Release

  • Migrated releases to GitHub
  • Created check for source and javadoc jars into check script
  • Moved Moobench and other Kieker repositories to github

Removed Feature

  • Deprecation of KaxRun and KaxViz
  • DbWriter

Documentation

  • Moved documentation to readthedocs
  • Improved documentation for use of IRL
  • Updated introduction
  • Instructions how to build tools with Kieker analysis

Library updates

  • Update Teetime to 3.1.0 release
  • Update AspectJ to 1.9.22.1 to support Java 21
  • Remove aopalliance dependency
  • Updated to new OSHI library to support systems monitoring
  • Updated many different library versions