VictoriaMetrics/app/vmselect
Roman Khavronenko 526dd93b32
app/vmselect: quantile func compatiblity with Prometheus (#1646)
* app/vmselect: `quantile` func compatiblity with Prometheus

The `quantile` func was previously calculated by https://github.com/valyala/histogram
package. The result of such calculation was always the closest real value to
requested quantile. While in Prometheus implementation interpolation is used.
Such difference may result into discrepancy in output between Prometheus and
VictoriaMetrics.

This commit adds a Prometheus-like `quantile` function. It also used by other
functions which depend on it, such as `quantiles`, `quantile_over_time`, `median` etc.

https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1625

Signed-off-by: hagen1778 <roman@victoriametrics.com>

* app/vmselect: `quantile` review fixes

* quantile functions were split into multiple to provide
different API for already sorted data;
* float64sPool is used for reducing allocations. Items in pool may have
different sizes, but defining a new pool was complicates due to name collisions;

Signed-off-by: hagen1778 <roman@victoriametrics.com>
2021-09-27 18:02:41 +03:00
..
bufferedwriter app/vmselect: stop /api/v1/export/* execution if client disconnects 2020-09-27 23:53:13 +03:00
graphite app/vmselect/graphite: accept and enforce extra_label in all the Graphite APIs 2021-03-23 15:29:16 +02:00
graphiteql Graphite vmalert wip (#112) 2021-02-01 15:05:32 +02:00
netstorage app/vmselect/promql: follow-up after 57b3320478 2021-09-24 01:24:18 +03:00
prometheus app/vmselect/prometheus: make more clear log messages for errors during sending data to remote clients 2021-09-16 12:56:58 +03:00
promql app/vmselect: quantile func compatiblity with Prometheus (#1646) 2021-09-27 18:02:41 +03:00
querystats app/vmselect: do not track queries with less than 1ms execution time at /api/v1/status/top_queries 2021-07-15 16:44:28 +03:00
searchutils app/vmselect: add -search.maxStatusRequestDuration command-line flag for limiting the duration of requests to /api/v1/status/* and /api/v1/series/count 2021-03-30 21:41:35 +03:00
vmui app/vmui: follow-up after 777ff75874 2021-09-15 17:40:48 +03:00
main.go app/vmselect: fix accessing /graphite/* endpoints 2021-09-21 13:56:35 +03:00
README.md app/vmui: move source code from https://github.com/VictoriaMetrics/vmui to app/vmui 2021-07-09 17:15:23 +03:00

vmselect performs the incoming queries and fetches the required data from vmstorage.

The vmui directory contains static contents built from app/vmui package with make vmui-update command. The vmui page is available at http://<victoria-metrics>:8428/vmui/.