From 135a9fdf1d2fcf13c602ce1ae9b413842bdeff53 Mon Sep 17 00:00:00 2001 From: Nikolay Date: Mon, 29 Jul 2024 14:24:37 +0200 Subject: [PATCH] docs: mention graphite incompatibilities (#6664) updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5810 https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2969 --------- Signed-off-by: f41gh7 Co-authored-by: Roman Khavronenko --- README.md | 12 ++++++++++++ docs/README.md | 12 ++++++++++++ docs/Single-server-VictoriaMetrics.md | 12 ++++++++++++ 3 files changed, 36 insertions(+) diff --git a/README.md b/README.md index 9f514c027..93628cc84 100644 --- a/README.md +++ b/README.md @@ -1011,6 +1011,18 @@ at `/render` endpoint, which is used by [Graphite datasource in Grafana](https:/ When configuring Graphite datasource in Grafana, the `Storage-Step` http request header must be set to a step between Graphite data points stored in VictoriaMetrics. For example, `Storage-Step: 10s` would mean 10 seconds distance between Graphite datapoints stored in VictoriaMetrics. +#### Known Incompatibilities with `graphite-web` + +- **Timestamp Shifting**: VictoriaMetrics does not support shifting response timestamps outside the request time range as `graphite-web` does. This limitation impacts chained functions with time modifiers, such as `timeShift(summarize)`. For more details, refer to this [issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2969). + +- **Non-deterministic series order**: due to the distributed nature of metrics processing, functions within the `seriesLists` family can produce non-deterministic results. To ensure consistent results, arguments for these functions must be wrapped with a sorting function. For instance, the function `divideSeriesLists(series_list_1, series_list_2)` should be modified to `divideSeriesLists(sortByName(series_list_1), sortByName(series_list_2))`. See this [issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5810) for details. + + The affected functions include: + - `aggregateSeriesLists` + - `diffSeriesLists` + - `multiplySeriesLists` + - `divideSeriesLists` + ### Graphite Metrics API usage VictoriaMetrics supports the following handlers from [Graphite Metrics API](https://graphite-api.readthedocs.io/en/latest/api.html#the-metrics-api): diff --git a/docs/README.md b/docs/README.md index 65212f14f..94911e55a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1009,6 +1009,18 @@ at `/render` endpoint, which is used by [Graphite datasource in Grafana](https:/ When configuring Graphite datasource in Grafana, the `Storage-Step` http request header must be set to a step between Graphite data points stored in VictoriaMetrics. For example, `Storage-Step: 10s` would mean 10 seconds distance between Graphite datapoints stored in VictoriaMetrics. +#### Known Incompatibilities with `graphite-web` + +- **Timestamp Shifting**: VictoriaMetrics does not support shifting response timestamps outside the request time range as `graphite-web` does. This limitation impacts chained functions with time modifiers, such as `timeShift(summarize)`. For more details, refer to this [issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2969). + +- **Non-deterministic series order**: due to the distributed nature of metrics processing, functions within the `seriesLists` family can produce non-deterministic results. To ensure consistent results, arguments for these functions must be wrapped with a sorting function. For instance, the function `divideSeriesLists(series_list_1, series_list_2)` should be modified to `divideSeriesLists(sortByName(series_list_1), sortByName(series_list_2))`. See this [issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5810) for details. + + The affected functions include: + - `aggregateSeriesLists` + - `diffSeriesLists` + - `multiplySeriesLists` + - `divideSeriesLists` + ### Graphite Metrics API usage VictoriaMetrics supports the following handlers from [Graphite Metrics API](https://graphite-api.readthedocs.io/en/latest/api.html#the-metrics-api): diff --git a/docs/Single-server-VictoriaMetrics.md b/docs/Single-server-VictoriaMetrics.md index d8c45d9d2..d52893fc1 100644 --- a/docs/Single-server-VictoriaMetrics.md +++ b/docs/Single-server-VictoriaMetrics.md @@ -1020,6 +1020,18 @@ at `/render` endpoint, which is used by [Graphite datasource in Grafana](https:/ When configuring Graphite datasource in Grafana, the `Storage-Step` http request header must be set to a step between Graphite data points stored in VictoriaMetrics. For example, `Storage-Step: 10s` would mean 10 seconds distance between Graphite datapoints stored in VictoriaMetrics. +#### Known Incompatibilities with `graphite-web` + +- **Timestamp Shifting**: VictoriaMetrics does not support shifting response timestamps outside the request time range as `graphite-web` does. This limitation impacts chained functions with time modifiers, such as `timeShift(summarize)`. For more details, refer to this [issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2969). + +- **Non-deterministic series order**: due to the distributed nature of metrics processing, functions within the `seriesLists` family can produce non-deterministic results. To ensure consistent results, arguments for these functions must be wrapped with a sorting function. For instance, the function `divideSeriesLists(series_list_1, series_list_2)` should be modified to `divideSeriesLists(sortByName(series_list_1), sortByName(series_list_2))`. See this [issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5810) for details. + + The affected functions include: + - `aggregateSeriesLists` + - `diffSeriesLists` + - `multiplySeriesLists` + - `divideSeriesLists` + ### Graphite Metrics API usage VictoriaMetrics supports the following handlers from [Graphite Metrics API](https://graphite-api.readthedocs.io/en/latest/api.html#the-metrics-api):