elastic / elastic/apm-agent-java
Optional improvements on load-testing
- Dominant language
- Java
- Stars
- 594
- Forks
- 338
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 25
Description
Here is a non-exhaustive list of improvements for load-testing:
## Directly improves load-testing
- capture system metrics from both application and load-injection side for easy correlation in Kibana. Allows to detect when either side of the load-testing is saturated and would produce misleading results.
- capture load-testing metrics (only reported in locust output currently) and integrate that into APM metrics (or any other kind of data we could read from Kibana).
- add calls to the [Kibana Annotations API](https://www.elastic.co/guide/en/kibana/7.10/apm-annotation-api.html#apm-annotation-api) to mark start/end of each iteration of load-testing, also we could also report JVM crashes when detected.
- add the ability to choose a fork (maybe specifying the GH user name and construct the repo URL), so that we don’t need to create a branch on the main repo to test open PRs.
## Broaden scope of load-testing
- allow using other test applications, for example standalone test applications from gRPC plugin.
## Nice to have & extras
- detect if JVM supports Java Flight Recorder (JFR) at runtime and remove the `jfr` parameter, for example [using this](https://stackoverflow.com/questions/10486375/print-all-jvm-flags).
- do not trigger agent build when changes are only in the `.ci` folder and do not impact the agent, in a similar way as it's done with documentation.
- download a release agent jar when using a release tag as git ref, for example using `v1.19.0` should not rebuild the agent but use the artifact stored in maven central to save time & ensure we test with same binary.
- add a library of saved “test scenarios” with all settings (JVM version, JVM settings, agent configurations etc.), for example- “Async profiler crash” or “High span creation”.
Contributor guide
Assessment
This issue has not been assessed yet.