Remarks:
- With current code impossible to do vm count scan test
TODO next
- unit tests for math functions
- CEPH PERFORMANCE COUNTERS
- Sync storage_structure
- fix fio job summary
- Use disk max QD as qd limit?
- Cumulative statistic table for all jobs
- Add column for job params, which show how many cluster resource consumed
- show extra outliers with arrows
- More X = func(QD) plots. Eg. - kurt/skew, etc.
- Hide cluster load if no nodes available
- Show latency skew and curtosis
- Sort engineering report by result tuple
- Name engineering reports by long summary
- Latency heatmap and violin aren't consistent
- profile violint plot
- Fix plot layout, there to much unused space around typical plot
- iops boxplot as function from QD
- collect device types mapping from nodes - device should be block/net/...
- Optimize sensor communication with ceph, can run fist OSD request for data validation only on start.
- Update Storage test, add tests for stat and plot module
- Aggregated sensors boxplot
- Hitmap for aggregated sensors
- automatically find what to plot from storage data (but also allow to select via config)
Have to think: * Each sensor should collect only one portion of data. During start it should scan all available sources and tell upper code to create separated funcs for them. * store statistic results in storage * During prefill check io on file * Store percentiles levels in TS, separate 1D TS and 2D TS to different classes, store levels in 2D TS * weight average and deviation * C++/Go disk stat sensors to measure IOPS/Lat on milliseconds