From c128bdd532e02176cfeeaaafef701497e7ccc78a Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Tue, 8 Oct 2019 17:10:13 +0200 Subject: [PATCH] my ideas on how to proceed I need to clean up the UI and make it easier extendible. --- plan.txt | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 plan.txt diff --git a/plan.txt b/plan.txt new file mode 100644 index 0000000..5fda154 --- /dev/null +++ b/plan.txt @@ -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. +