my ideas on how to proceed
I need to clean up the UI and make it easier extendible.
This commit is contained in:
169
plan.txt
Normal file
169
plan.txt
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
We want to support many different plot types with many different
|
||||||
|
ways to define what and how it should be plotted. There is a high
|
||||||
|
overlap of settings that can be used for each plot type.
|
||||||
|
|
||||||
|
Here is an attempt to group everything.
|
||||||
|
|
||||||
|
Presentation
|
||||||
|
* subplots (n x m)
|
||||||
|
* single plot
|
||||||
|
* gallery
|
||||||
|
* table
|
||||||
|
* p-values / ANOVA / Chi-Square
|
||||||
|
|
||||||
|
Plot Types
|
||||||
|
* x-y relation
|
||||||
|
** Scatter
|
||||||
|
** Bubble (?)
|
||||||
|
* x-y relation for high number of points
|
||||||
|
** contour
|
||||||
|
** 2d bins
|
||||||
|
** hex bins
|
||||||
|
* distributions: only one can be drawn
|
||||||
|
** histogram (bar) (?)
|
||||||
|
** density plot (filled) (?)
|
||||||
|
* distributions: many can be drawn
|
||||||
|
** histogram (line)
|
||||||
|
** density plot (line)
|
||||||
|
** cumulative distribution
|
||||||
|
** quantile-quantile plot (?)
|
||||||
|
** boxplots
|
||||||
|
** violins
|
||||||
|
** strip charts / sina plots
|
||||||
|
** overlapping densities (?)
|
||||||
|
** ridgeline plots
|
||||||
|
* proportions
|
||||||
|
** pie chart
|
||||||
|
** bars (horizontal / vertical / stacked)
|
||||||
|
* custom
|
||||||
|
** parallel requests
|
||||||
|
|
||||||
|
|
||||||
|
Filters
|
||||||
|
* query
|
||||||
|
* group by
|
||||||
|
** field
|
||||||
|
** intervals (1m, 5m, 15m, 1h, ...)
|
||||||
|
* split by
|
||||||
|
* limit
|
||||||
|
* date ranges (1...n)
|
||||||
|
|
||||||
|
Axis
|
||||||
|
* log/linear
|
||||||
|
* y-range
|
||||||
|
|
||||||
|
options
|
||||||
|
* error bars
|
||||||
|
* trend lines (cubic splines, B-splines, thin-plate splines, Gaussian process splines)
|
||||||
|
|
||||||
|
Metrics
|
||||||
|
* min/max
|
||||||
|
* count
|
||||||
|
* average
|
||||||
|
* percentiles (median, 90-percentile, ...)
|
||||||
|
|
||||||
|
|
||||||
|
Format
|
||||||
|
* color palette
|
||||||
|
* highlight selected lines
|
||||||
|
|
||||||
|
|
||||||
|
The presentation defines how many plots you can define. It also influences some of
|
||||||
|
the available filters. E.g. the gallery requires to define a 'split by' field.
|
||||||
|
Each plot type defines which subset of filters, axis definitions, decorations and
|
||||||
|
metrics is available. It also defines which plot types are available for the X2 axis.
|
||||||
|
For example, you cannot combine a pie chart with a scatter plot.
|
||||||
|
|
||||||
|
Plots in more detail
|
||||||
|
Scatter
|
||||||
|
x: time
|
||||||
|
y: duration
|
||||||
|
filters (required): query, date range
|
||||||
|
filters (optional): group by, limit, intervals
|
||||||
|
filters (forbidden):
|
||||||
|
axis: log/linear, y-range
|
||||||
|
options: trend lines
|
||||||
|
metrics: min/max, count, average, percentiles
|
||||||
|
combine: contour
|
||||||
|
X2-axis: cumulative distribution, histogram (line), density plot (line), Parallel Requests
|
||||||
|
|
||||||
|
Cumulative Distribution:
|
||||||
|
x: percent
|
||||||
|
y: duration
|
||||||
|
filters (required): query, date range
|
||||||
|
filters (optional): group by, limit, intervals
|
||||||
|
filters (forbidden):
|
||||||
|
axis: log/linear, y-range
|
||||||
|
options:
|
||||||
|
metrics: min/max, count, average, percentiles
|
||||||
|
combine:
|
||||||
|
X2-axis: scatter, Parallel Requests
|
||||||
|
|
||||||
|
Contour:
|
||||||
|
x: time
|
||||||
|
y: duration
|
||||||
|
filters (required): query, date range
|
||||||
|
filters (optional): intervals
|
||||||
|
filters (forbidden): group by, limit
|
||||||
|
options:
|
||||||
|
combine: scatter
|
||||||
|
X2:axis:
|
||||||
|
|
||||||
|
|
||||||
|
Parallel Requests:
|
||||||
|
x: time
|
||||||
|
y: count
|
||||||
|
filters (required): query, date range
|
||||||
|
filters (optional):
|
||||||
|
filters (forbidden): group by, limit, intervals
|
||||||
|
axis: log/linear, y-range
|
||||||
|
options:
|
||||||
|
metrics: min/max, average
|
||||||
|
combine:
|
||||||
|
X2-axis: scatter, cumulative distribution,
|
||||||
|
|
||||||
|
|
||||||
|
Violin:
|
||||||
|
x: group
|
||||||
|
y: duration
|
||||||
|
filters (required): query, date range, group by, limit, intervals
|
||||||
|
filters (optional):
|
||||||
|
filters (forbidden):
|
||||||
|
axis: log/linear, y-range
|
||||||
|
decorations:
|
||||||
|
options:
|
||||||
|
combine: strip charts
|
||||||
|
|
||||||
|
bar chart:
|
||||||
|
x: group
|
||||||
|
y: metric
|
||||||
|
filters (required): query, date range, group by, limit, intervals
|
||||||
|
filters (optional):
|
||||||
|
filters (forbidden):
|
||||||
|
axis: log/linear, y-range
|
||||||
|
decorations:
|
||||||
|
options:
|
||||||
|
combine:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Use Cases:
|
||||||
|
* Find slow requests
|
||||||
|
* Find requests with unusually slow requests.
|
||||||
|
** max value > x
|
||||||
|
** 95-percentile/90-percentile > x
|
||||||
|
** num values > x
|
||||||
|
* How many requests were active at some point in time?
|
||||||
|
* Understand the distribution of response times.
|
||||||
|
* Identify locking issues.
|
||||||
|
* Find regressions.
|
||||||
|
|
||||||
Reference in New Issue
Block a user