From 02a0a7f428b6373b826815d41154ef76c23698eb Mon Sep 17 00:00:00 2001 From: Alexander Marshalov <_@marshalov.org> Date: Thu, 7 Dec 2023 15:37:36 +0100 Subject: [PATCH] added field `version` to the response for `/api/v1/status/buildinfo` API for using more efficient API in Grafana for receiving label values, added additional info about setup Grafana datasource (#5370) (#5437) --- README.md | 6 ++++++ app/vmselect/main.go | 5 ++++- .../provisioning/datasources/datasource.yml | 8 +++++++- docs/CHANGELOG.md | 2 +- docs/README.md | 6 ++++++ docs/grafana-datasource-prometheus.png | Bin 0 -> 32869 bytes .../grafana-vmgateway-openid-configuration.md | 6 ++++++ .../grafana-datasource-prometheus.png | Bin 0 -> 32869 bytes 8 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 docs/grafana-datasource-prometheus.png create mode 100644 docs/guides/grafana-vmgateway-openid-configuration/grafana-datasource-prometheus.png diff --git a/README.md b/README.md index 34f2f923b..4a3733d03 100644 --- a/README.md +++ b/README.md @@ -348,6 +348,12 @@ http://:8428 Substitute `` with the hostname or IP address of VictoriaMetrics. +In the "Type and version" section it is recommended to set the type to "Prometheus" and the version to at least "2.24.x": + +Grafana datasource + +This allows Grafana to use a more efficient API to get label values. + Then build graphs and dashboards for the created datasource using [PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/) or [MetricsQL](https://docs.victoriametrics.com/MetricsQL.html). diff --git a/app/vmselect/main.go b/app/vmselect/main.go index c299d500e..c239852a4 100644 --- a/app/vmselect/main.go +++ b/app/vmselect/main.go @@ -537,7 +537,10 @@ func handleStaticAndSimpleRequests(w http.ResponseWriter, r *http.Request, path case "/api/v1/status/buildinfo": buildInfoRequests.Inc() w.Header().Set("Content-Type", "application/json") - fmt.Fprintf(w, "%s", `{"status":"success","data":{}}`) + // prometheus version is used here, which affects what API Grafana uses when retrieving label values. + // as new Grafana features are added that are customized for the Prometheus version, maybe the version will need to be increased. + // see this issue for more info: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5370 + fmt.Fprintf(w, "%s", `{"status":"success","data":{"version":"2.24.0"}}`) return true case "/api/v1/query_exemplars": // Return dumb placeholder for https://prometheus.io/docs/prometheus/latest/querying/api/#querying-exemplars diff --git a/deployment/docker/provisioning/datasources/datasource.yml b/deployment/docker/provisioning/datasources/datasource.yml index c0a7a20c9..9b768a337 100644 --- a/deployment/docker/provisioning/datasources/datasource.yml +++ b/deployment/docker/provisioning/datasources/datasource.yml @@ -6,9 +6,15 @@ datasources: access: proxy url: http://victoriametrics:8428 isDefault: true + jsonData: + prometheusType: Prometheus + prometheusVersion: 2.24.0 - name: VictoriaMetrics - cluster type: prometheus access: proxy url: http://vmauth:8427/select/0/prometheus - isDefault: false \ No newline at end of file + isDefault: false + jsonData: + prometheusType: Prometheus + prometheusVersion: 2.24.0 diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 5d873e9c0..9e2da5d25 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -52,6 +52,7 @@ The sandbox cluster installation is running under the constant load generated by * `go_gc_pauses_seconds` - the [histogram](https://docs.victoriametrics.com/keyConcepts.html#histogram), which shows the duration of GC pauses. * `go_scavenge_cpu_seconds_total` - the [counter](https://docs.victoriametrics.com/keyConcepts.html#counter), which shows the total CPU time spent by Go runtime for returning memory to the Operating System. * `go_memlimit_bytes` - the value of [GOMEMLIMIT](https://pkg.go.dev/runtime#hdr-Environment_Variables) environment variable. +* FEATURE: add field `version` to the response for `/api/v1/status/buildinfo` API for using more efficient API in Grafana for receiving label values. Add additional info about setup Grafana datasource. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5370) and [these docs](https://docs.victoriametrics.com/#grafana-setup) for details. * BUGFIX: [MetricsQL](https://docs.victoriametrics.com/MetricsQL.html): properly calculate values for the first point on the graph for queries, which do not use [rollup functions](https://docs.victoriametrics.com/MetricsQL.html#rollup-functions). For example, previously `count(up)` could return lower than expected values for the first point on the graph. This also could result in lower than expected values in the middle of the graph like in [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5388) when the response caching isn't disabled. The issue has been introduced in [v1.95.0](https://docs.victoriametrics.com/CHANGELOG.html#v1950). * BUGFIX: [vmagent](https://docs.victoriametrics.com/vmagent.html): prevent from `FATAL: cannot flush metainfo` panic when [`-remoteWrite.multitenantURL`](https://docs.victoriametrics.com/vmagent.html#multitenancy) command-line flag is set. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5357). @@ -62,7 +63,6 @@ The sandbox cluster installation is running under the constant load generated by * BUGFIX: [vminsert](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html): fix panic when ingesting data via [NewRelic protocol](https://docs.victoriametrics.com/#how-to-send-data-from-newrelic-agent) into VictoriaMetrics cluster. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5416). * BUGFIX: properly escape `<` character in responses returned via [`/federate`](https://docs.victoriametrics.com/#federation) endpoint. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/5431). - ## [v1.95.1](https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.95.1) Released at 2023-11-16 diff --git a/docs/README.md b/docs/README.md index b73cc2aba..2ccab07b3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -351,6 +351,12 @@ http://:8428 Substitute `` with the hostname or IP address of VictoriaMetrics. +In the "Type and version" section it is recommended to set the type to "Prometheus" and the version to at least "2.24.x": + +Grafana datasource + +This allows Grafana to use a more efficient API to get label values. + Then build graphs and dashboards for the created datasource using [PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/) or [MetricsQL](https://docs.victoriametrics.com/MetricsQL.html). diff --git a/docs/grafana-datasource-prometheus.png b/docs/grafana-datasource-prometheus.png new file mode 100644 index 0000000000000000000000000000000000000000..dfb9cae8c2dcbb9409b2fb08311390683a19ad7f GIT binary patch literal 32869 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:8431`. URL should point to the vmgateway instance. +In the "Type and version" section it is recommended to set the type to "Prometheus" and the version to at least "2.24.x": + +Grafana datasource + +This allows Grafana to use a more efficient API to get label values. + You can also use VictoriaMetrics [Grafana datasource](https://github.com/VictoriaMetrics/grafana-datasource) plugin. See installation instructions [here](https://github.com/VictoriaMetrics/grafana-datasource#installation). diff --git a/docs/guides/grafana-vmgateway-openid-configuration/grafana-datasource-prometheus.png b/docs/guides/grafana-vmgateway-openid-configuration/grafana-datasource-prometheus.png new file mode 100644 index 0000000000000000000000000000000000000000..dfb9cae8c2dcbb9409b2fb08311390683a19ad7f GIT binary patch literal 32869 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