171 lines
3.5 KiB
Plaintext
171 lines
3.5 KiB
Plaintext
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)
|
|
* find all method calls active at a specific time
|
|
|
|
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.
|
|
|