adoptium / adoptium/aqa-test-tools
Dynamically Fetch Perf Pipeline Names & Support Multiple Metrics in Perf Graphs
- Dominant language
- Jupyter Notebook
- Stars
- 33
- Forks
- 97
- Avg merge
- 7h 9m
- Merged PRs (30d)
- 5
Description
### Problem Description
Currently, Perf Graph uses hard-coded names for pipelines. We should dynamically get this list from the database by looking at all the perf pipelines stored in it as it's done for Tabular View.
I've shown relevant snippets from ODM graphs, but other graphs have the same issue.
**Hard-coded Pipeline Names**
https://github.com/AdoptOpenJDK/openjdk-test-tools/blob/628e800b2e8a7005e80a156dd0ebf2b41ae39eb4/test-result-summary-client/src/Dashboard/Widgets/Graph/ODM.jsx#L11-L13
Also, Perf Graphs currently support the display of only one metric. We should display all metrics related to a benchmark run on the graphs. We should have the option of switching on and off the display of different metrics so that it allows us to limit the data for easier visualization.
**Support for one metric only**
https://github.com/AdoptOpenJDK/openjdk-test-tools/blob/628e800b2e8a7005e80a156dd0ebf2b41ae39eb4/test-result-summary-client/src/Dashboard/Widgets/Graph/ODM.jsx#L111-L116
https://github.com/AdoptOpenJDK/openjdk-test-tools/blob/628e800b2e8a7005e80a156dd0ebf2b41ae39eb4/test-result-summary-client/src/Dashboard/Widgets/Graph/ODM.jsx#L185
Furthermore, we currently assume that the the supported metric is in index 0. That assumption was only valid initially when we were just parsing one metric for ODM. As we add more metrics in the parser, the order could be different.
**No longer true Assumption**
https://github.com/AdoptOpenJDK/openjdk-test-tools/blob/628e800b2e8a7005e80a156dd0ebf2b41ae39eb4/test-result-summary-client/src/Dashboard/Widgets/Graph/ODM.jsx#L90
### Proposed Changes
1) To fetching pipeline names, we can use the same or similar query used in Tabular view.
2) To display all metrics, we'll need to loop through the metrics array and show their data on different lines.
This issue will be looked at after we add the support for aggregated data in https://github.com/AdoptOpenJDK/openjdk-test-tools/issues/106 and clean up the Perf Graph code in https://github.com/AdoptOpenJDK/openjdk-test-tools/issues/118.
Contributor guide
Research direction
Start with test-result-summary-client/src/Dashboard/Widgets/Graph/ODM.jsx, especially the hard-coded pipeline names, metric handling, and index-0 assumption. Compare the Tabular View query for fetching pipeline names, and review issues #106 and #118 first because this work depends on them. Done means graphs use stored pipeline names, display multiple benchmark metrics with visibility controls, and no longer depend on metric ordering.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100