...
2024-02-21
CI / CD: Jenkins is accesible again, move process to GH actions if manpower is available
Instrumentation technologies
Buildtime instrumentation is also implemented currently → Compare performance and probably leave it as option in the code
Meeting for paper at next Kieker dev meeting (either camera ready planning or QRS resubmission)
Disruptor: Not needed for current MooBench measurements, and it would require a bigger refactoring (creation of onXRecord for each record in WriterController); therefore, we don’t do it for now (even if it would reduce GC activity)
1.15.5 release is required to have a stable version of Kieker that is compatible with Java 21 (currently, AspectJ is not compatible to Java 21)
2024-02-14
MooBench memory leak: Based on analysis of heap dumps, it seems like the RotatingLogFilePoolHandler caused the problem: https://github.com/kieker-monitoring/kieker/blob/371a9095a1bc212dbd422afdf831197bd50794cf/monitoring/src/kieker/monitoring/writer/filesystem/RotatingLogFilePoolHandler.java#L85 (We have ~5000 files in the ArrayList)
First solution: increase
kieker.monitoring.writer.filesystem.FileWriter
maxLogSize
,maxEntriesInFile
and decreasemaxLogFiles
for MooBenchLong-term solution: Change default parameters in Kieker (currently, we have only 25 000 entries in one file, resulting in files of ~1.5 MB): https://github.com/kieker-monitoring/kieker/blob/371a9095a1bc212dbd422afdf831197bd50794cf/monitoring/src-resources/META-INF/kieker.monitoring.default.properties#L338
Overall architecture: Have one monitoring module with submodules monitoring-core and one module for each agent: monitoring-aspectj, monitoring-disl, monitoring-javassist, monitoring-bytebuddy
Each agent should be provided as individual jar
Only the required classes should be contained (no analysis classes)
Java 11 PR problem: Was caused by a deprecated test → Removed and try again
DiSL PR problem: Was caused by missing Kieker license header for DiSL → Changed and try again
...