-
Notifications
You must be signed in to change notification settings - Fork 41
Kieker Dev Meetings 2024
DaGeRe edited this page Oct 30, 2024
·
43 revisions
- Kubernetes TeaStore Kieker demo is nearly done
- MooBench Cloudprofiler PR is nearly done
- Tools refactoring: Move dependencies as late as possible
- Size of distribution
- No easy way to increase compression
- Doesn't really make sense to have zip in .tar.gz => Look at it during the dev meeting in Linz
- Shinhyung: Upload HISTORY, binaries etc. for 2.0.0 release on GitHub
- PRs for version updates fail due to timeouts: https://build.se.informatik.uni-kiel.de/view/Kieker/job/kieker-dev/view/change-requests/job/PR-656/3/console
- Can we increase the timeouts? => Instead set dependabot do taily
- Is there room for speed up of the tests?
- Kieker Release 2.0.1
- Publish current main (some version updates)?
- Is there a trick to generate release notes from the PRs? => Try creating the tag before the release after outstanding PRs are merged
- KIEKER-1991: Remove old documentation -> Shinhyung takes care of it
- Future research idea: Add java parsers to ocean dsl tools
- Replication package: https://git.se.informatik.uni-kiel.de/oceandsl/esm-architecture-analysis-replication-package (for fortran)
- Would need a Java parser (potential Bachelor thesis?)
- KIEKER-2004: Changed terminology merged to main
- KIEKER-1991:
- AspectLegacy (Visual Basic 6) Developer Guide tries to use resources from broken URLs such as Ex1 and alternative resources seem not available.
- Maintaining old artifacts (COM, .NET, etc)
- Link to 2.0.0 binary release
- api.kieker-monitoring.org/1.15 -> github.io
- 2.0.0 Release:
- uberjar:
- Issue: https://kieker-monitoring.atlassian.net/browse/KIEKER-2003
- Probably we need to split up analysis and carefully select dependencies in tools -> Bachelor thesis "Providing Minimal Distribution Artifacts in the Context of Observability Tools"
- Cloudprofiler MooBench
- Currently problems having it running with
eclipse-temurin:17-jdk-alpine
(from https://github.com/kieker-monitoring/kieker-build/blob/main/temurin-jdk17/Dockerfile) - Probably solution: Try
17-jdk-noble
-> Shinhyung tries, and if it works, David updates the kieker build image
- Currently problems having it running with
- Next meeting: 9th of October 10:00
- 2.0.0 Release: How to handle the other module packaging?
- Fixed javadoc in Cassandra extension
- Disabled failOnError
- Errors with Gradle 8.9
- ExplorViz export: How to configure token id and secret (https://kieker-monitoring.atlassian.net/browse/KIEKER-2001)?
- Made another constructor that receives two ExplorViz credential strings.
- TeaStore
- Gines works towards continuous deployment
- Gist for exploreviz demo: https://gist.github.com/DaGeRe/1082b7b6cf5f3dc6535461b7ae09c8df
- TeaStore needs to wait for startup: https://github.com/DaGeRe/TeaStore/blob/161047b2d1536e4b2613fb5cda4746c8dc267cc9/startContainers.sh#L25
- Potential future visualization: https://grafana.com/grafana/plugins/novatec-sdg-panel/
- Keep track of dependabot gradle.properties
- For PRs, currently do not update gradlew and have a separate PR for gradlew update (
_BuildScript_
problem) - Kieker release problem
- Jacoco doesn't work, Jenkins plugin hasn't been updated
- Jacoco gradle was updated to 0.8.11 from 0.8.6; according to Jenkins plugin page, 0.7.5 or newer is required (https://plugins.jenkins.io/jacoco/)
- Probably try 0.8.12 after the release
- Since we had a lot of updates, merge of main makes sense; done and waiting for results
- 20.9. (Friday) 9:00
- Flow vs. ControlFlow
- Flow records can be used to create execution traces
- Flow traces can work in areas with limited intrumentation
- Can work in before and after instrumentation, while control flow requires around advice in AspectJ
- Speed properties have not been examined => Idea for SSP 2025 / LTB 2025 (Comparison of Java / c with different record types?)
- Getting
ExecutionTrace
from flow records: Look at old trace analysis tool (or new trace analysis tool)
-
SystemModelRepository
is the old Kieker architecture model that is used in the trace analysis tool. It is only used in that tool. There are two show stoppers for its removal.- The new trace analysis tool is not working properly. If it does, the old can go.
- The new trace analysis tool also uses SystemModelRepository. It has to be ported to the kieker.analysis.architecture.repository.ModelRepository
- Check again: Why is it necessary, can we remove it or maybe not deprecate it?
- KeePassXC: Still task of David
-
_BuildScript_
-jacoco problem: Still outstanding - State of release: Nothing new, probably should merge
main
branch again - Kieker OpenTelemetry + inspectIT MooBench site fix: Still ongoing (Shinhyung)
- Move API to GH pages: Still ongoing (David)
- Cloudprofiler + MooBench
- Works on Debian (for SSP paper)
- Dependencies (c libraries) need to be installed and detectable by cmake
- 2 Build process seperations: Root priviledge for package installation available, package names different on different distros
- Since Kieker does not only monitoring: Rebranding to "Kieker observability" in discussion
- Kieker does logging, monitoring, distributed tracing (3 pillars of observability), and analysis
- Potentially write a tool paper for ICPE 2025
- New ocean DSL stuff in Kieker now, tools not really published
- Kieker organization README draft existing: https://github.com/kieker-monitoring?view_as=member
- Add instrumentation-languages line, than ping Willi and publish
- Next meeting: 4.9. 11:00
- Orphan process problem => Wait whether it occurs again
- Credentials: David creates a KeePassXC file and shares it, and password for credentials file is shared differently
-
_BuildScript_
-jacoco problem: Still outstanding - State of release: Nothing new, probably should merge
main
branch again - ReadTheDocs structure: Probably good topic for dev meeting
- Kieker python MooBench site fix: Still ongoing (Shinhyung)
- Move API to GH pages: Still ongoing (David), maybe its possible to keep the domains so no move necessary
- If possible: Also archive old organizations repos: https://github.com/kieker-monitoring-docker
- Access to ci@kieker-monitoring.net also necessary (Matthias)
- Discuss next time
- Question: flow vs. controlflow records: Has speed been examined? Can flow records be transformed into
ExecutionTrace
? - Question: Whats the replacement of
import kieker.model.repository.SystemModelRepository;
?
- Question: flow vs. controlflow records: Has speed been examined? Can flow records be transformed into
- Next meeting: 21.8. 11:00
- OpenTelemetry and inspectIT still don't show result after python fix: https://kieker-monitoring.atlassian.net/browse/KIEKER-1990
- Shinhyung takes care of it
- spring boot instrumentation with Kieker doesn't work
- When spring boot starts, no logging backend is present
- logback is included in Kieker in general: https://github.com/kieker-monitoring/kieker/blob/8819eb4db9beefa438b3d0c13a6ab944f35b73f1/common/build.gradle#L27
- Since the aspectj-jar is now a single jar again (without kieker analysis etc.), only the dependencies specified here are used, so no logback: https://github.com/kieker-monitoring/kieker/blob/8819eb4db9beefa438b3d0c13a6ab944f35b73f1/build.gradle#L49
- Is there any spring boot example still available (formerly http://demo.kieker-monitoring.net/ according to https://wilsonmar.github.io/spring-petclinic/)?
- Suggestion: Add logback again to the AspectJ-jar, add a new example: https://github.com/kieker-monitoring/kieker/pull/597
- Problem:
curl
not in docker image => Reiner updates it
-
_BuildScript_
-jacoco problem - State of release: No update currently => Wait for jacoco problem
- Java EE example is fully outdated: https://kieker-monitoring.readthedocs.io/en/latest/tutorials/Java-Servlet-Container-Example.html#tutorial-servlet-example (mentions Kieker 1.14, AspectJ 1.8.2, ...)
- This was by now the main example for Java instrumentation: https://kieker-monitoring.readthedocs.io/en/latest/instrumenting-software/java/Instrumentation-with-AspectJ.html
- Does it make sense to update this at all? (Uses JMX, servlet interceptors and spring instrumentation, which all not core AspectJ) If yes, is there somebody who wants to do this? => Update after 2.0.0 release
- ReadTheDocs contains references like http://api.kieker-monitoring.net/1.14/ (but api.kieker-monitoring.net does not exist anymore, and 1.14 is outdated)
- First idea: Just replace .net by .org
- No access to .org site => Move to GH Pages (https://kieker-monitoring.atlassian.net/browse/KIEKER-1992)
- Wouldn't https://kieker-monitoring.readthedocs.io/en/latest/getting-started/AspectJ-Instrumentation-Example.html and https://kieker-monitoring.readthedocs.io/en/latest/instrumenting-software/java/Instrumentation-with-AspectJ.html be de facto the same (since the getting started example already demonstrates how to use Kieker and AspectJ, and we shouldn't go to much into detail, since we shouldn't replicate the AspectJ docs)?
- For the redundancy: Add link
- Discuss this with Reiner again
- Release check for main fails: https://build.se.informatik.uni-kiel.de/view/Kieker/job/kieker-release-check/job/main/186/consoleFull -> David has a look at it
- Issue import to GitHub
- Shinhyung used https://github.com/gavinr/github-csv-tools -> didn't work by now, and doesn't import comments anyhow
- Tool https://github.com/DaGeRe/github-issue-copyer/ might work (and produces issues like https://github.com/jenkinsci/peass-ci-plugin/issues/3) -> Shinhyung has a look a it
- Shinhyung resolved Kieker-Python issue
- https://build.se.informatik.uni-kiel.de/view/Kieker/job/kieker-moobench/job/main/ started again, wait for results and check https://kieker-monitoring.net/performance-benchmarks/
- Cloudprofiler
- Comparable MooBench state: https://github.com/kieker-monitoring/moobench/tree/disl
- Example of instrumented call: https://github.com/kieker-monitoring/moobench/blob/disl/frameworks/Kieker-java-sourceinstrumentation/functions.sh
- Switch to github for the ticket system
- @rju has created a backup of the tickets and will send them to Shinhyung.
- Cloudprofiler: Shinhyung discusses running it with MooBench
- What to do with the content of Confluence?
- Passwords got to an encrypted keypass file and then onto a github private repository
- Release documentation will be moved to the readthedocs documentation
- Meetings minutes will be moved to GitHub wiki
- Release preparation 2.0.0
- TeaStore
- OpenTelemetry compability
- Bachelor thesis (not reusable): Create a TeeTime stage that exports Kieker OperationExecutionRecords to OpenTelemetry span
- Willi suggest: Use IRL for compatibility DSL / Xtext
- Python (Serafims work)
- https://kieker-monitoring.atlassian.net/browse/KIEKER-1983 -> Shinhyung needs Jira and Jenkins access, and than takes care of it
- Release: https://kieker-monitoring.atlassian.net/browse/KIEKER-1809
- MooBench: Since results are reasonably stable, no increase of `NUM_OF_LOOPS (https://github.com/kieker-monitoring/moobench/issues/9 )
- Logging doesn’t work in MooBench: https://github.com/kieker-monitoring/moobench/issues/12
- Whats the matter with
PutStrategy
andInsertBehaviour
? (Default value currently makes multiple thread monitoring hard)
- PR Spring Extraction
- MooBench: JDK 11 to 21 update -> Examine changes in SSP paper
- MooBench Jenkins data: https://maui.se.informatik.uni-kiel.de/repo/moobench/
- MooBench Jenkins data analysis: https://github.com/kieker-monitoring/moobench/tree/main/tools/compile-results
- MooBench kieker-python (https://build.se.informatik.uni-kiel.de/view/Kieker/job/kieker-moobench/job/main/ fails) => David creates ticket (Created: https://kieker-monitoring.atlassian.net/browse/KIEKER-1983 )
- Gradle update to 8.7 should happen
- Spring boot: Still in progress (David)
- Security problem in documentation: Still in progess (https://kieker-monitoring.atlassian.net/browse/KIEKER-1982 Reiner)
-
build.gradle
publishing: Try to move to parent build.gradle (David) - Spring probe extraction: Wait for build in https://build.se.informatik.uni-kiel.de/view/Kieker/job/kieker-dev/view/change-requests/job/PR-548/, whether implementation "net.kieker-monitoring:kieker:${kiekerVersion}:spring" works
- git command not found for main release check (https://build.se.informatik.uni-kiel.de/view/Kieker/job/kieker-release-check/job/main/75/console) -> David contacts Matthias
- Open tickets for 2.0.0
- Should be ready to merge
- Spring: Interceptors still don’t work for spring boot, because they don’t select the methods → Is there something missing?
- There is a security vulnerability: https://kieker-monitoring.atlassian.net/browse/KIEKER-1982
- Duplicated publishing information necessary? https://kieker-monitoring.atlassian.net/jira/software/c/projects/KIEKER/issues/KIEKER-1979?
- Spring web and Kieker seems to have some problem:
- Check interceptors
- Next meeting: 10. 4. 9:00
- 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)
- 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 decrease maxLogFiles for MooBench
- Long-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
- MooBench
- Is https://github.com/kieker-monitoring/moobench/tree/main/continuous-integration still relevant (or is this replaced by the Jenkinsfile)?
- Would it make sense to migrate https://maui.se.informatik.uni-kiel.de/repo/moobench/ to github?
- Java 21 support requires an AspectJ update
- Hopefully, there is some way changing the classpath in the aspectj gradle plugin:
- Didn’t work in https://github.com/kieker-monitoring/moobench/actions/runs/7421185662/job/20194020069
- Somehow magically worked in https://github.com/kieker-monitoring/moobench/actions/runs/7424136205 - maybe the update to 1.9.20.1 was already sufficient for our featureset? (https://github.com/kieker-monitoring/kieker/pull/480)
- There was still a configuration error in
compileJarIntegrationTestJava
; wait for Jenkins build and than merge
- Refactoring MooBench (https://github.com/kieker-monitoring/moobench/issues/9)
- Started and works basically for Kieker (except the Java 21 thing)
- Adapted for OpenTelemetry-java (is this good style? https://github.com/kieker-monitoring/moobench/blob/59f09ebecb9d908b7da93613107670dbaa8053e7/frameworks/OpenTelemetry-java/functions.sh#L45
- Kieker-python still needs adaption (copy OpenTelemetry-java style?)
- Do we want to continue inspectIT regular execution (since the website still has the roadmap for 2022…) → Leave it running, but remove it if problems occur
- Website still needs adaption → Currently failure due to unknown error; rerun on Jenkins started
- In general: Change to “Kieker-java-aspectj”, “Kieker-java-DiSL”, …? → Yes
- Kieker usage for Micro-company (https://github.com/DaGeRe/micro-company/tree/kieker): How to fix logging issue?
- TeeTime does not compile → We need GH actions like for Kieker:
- Locally, when checking out Kieker, sometimes the error “Could not find teetime-3.1.0-test.jar (de.cau.cs.se.teetime:teetime:3.1.0).” occurs. Is there a solution / workaround for this?
- Ask Reiner: What is the rights situation with TeeTime? We need the rights to merge at least
- If there is no TeeTime organization anymore, it might make sense to fork the core TeeTime to the kieker organization and consider it as another Kieker project
- Next meeting: 24.1. 10:00