FISH-6 Multiple series in a widget (editable series) #16
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a new feature to monitoring console. It allows to use one or more series per widget. This also means the series now is editable so it can be changed.
When a widget initially is added to the page it will always use one series. Further series then can be added by opening the settings for the widget and adding further series. The settings to do so is keep rather basic at this point as a future task will create a wizard soon that replaced the multi-text field used now.
Adding a Series
To add another series open the settings of the widget (click title) and press the
+
button next to the Series property field. This adds another text field below the existing one where the name of the series is stated. To find the name one can expand the Page settings and use the Add Widgets property to prefill the last of its text field with the full series name (do not use the Add button there as this will add a new widget with the series but copy & paste its name to the empty text field of the Data => Series property.This is not very convenient to use but as mentioned a wizard will soon replace this basic way of selection.
Removing a Series
To remove a series just blank the text field for Data => Series and both the field and the series are removed. It is intentionally that this will not remove the last/only text field. Again this very simple method was chosen as the wizard added soon will make this obsolete again.
Multi-Series Widget Legend, Colouring and Title
When a widget has multiple series the legend mentions both instance (e.g. DAS) and metric (e.g. ThreadCount).
By default series from the same instance will be coloured identical. To get the colouring from the screenshot the user can switch Coloring to Instance and Series. This is intentionally not "smart" but up to user configuration to avoid corner case issues.
Similarly the title of a widget expects the user to provide a meaningful multi-series title using property Widget => Display Name. If no such name is provided but multiple series are used the title shows
Multi-Series without Display Name
to give the user a hint of what he is expected to do. Note also that the title will not update without a page change when switching between one and multiple series and/or providing a Display Name. This is a known limitation.Limitations
It is intentional that this feature only allows to use multiple series that share a common axis. That means they all represent a count, a byte size or a percentage but not different of these. Or in more technical terms: they share the same unit. While the user could configure multiple series into a widget that do not share a unit there is no way to select a unit per series as the unit is linked to the widget. This was a known limitation when this work was started as we did not want to spend the significantly higher effort entering multi-axis graphs. At this point this also is not plant to ever happen as the complexity required does not justify the niche feature this is in the context of application server monitoring.
Testing
As changes only affect the webapp no special Payara server build is needed (apart from using a server with latest MC modules).
Simply manually build the webapp and manually deploy the application war file.
Testing Performed
Manual testing of the feature as shown in below screenshot:
Try to:
Check: