elastic / elastic/apm-agent-java

Optional improvements on load-testing

Open
#1,584 0 comments 0 reactions 0 assignees View on GitHub
agent-java automation
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.