From 961272a76d54c40518d8ba5e236c340843c44b3b Mon Sep 17 00:00:00 2001 From: Marcus Efraimsson Date: Thu, 16 May 2024 13:48:51 +0200 Subject: [PATCH] Datasources: Enable native histograms for datasource response size metric (#87962) --- .../blocks/self-instrumentation/docker-compose.yaml | 3 ++- .../blocks/self-instrumentation/prometheus.yaml | 1 + .../datasource_metrics_middleware.go | 12 ++++++++---- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/devenv/docker/blocks/self-instrumentation/docker-compose.yaml b/devenv/docker/blocks/self-instrumentation/docker-compose.yaml index 1806e0a92ab..13fca15e3c3 100644 --- a/devenv/docker/blocks/self-instrumentation/docker-compose.yaml +++ b/devenv/docker/blocks/self-instrumentation/docker-compose.yaml @@ -7,6 +7,7 @@ command: > --enable-feature=remote-write-receiver --enable-feature=exemplar-storage + --enable-feature=native-histograms --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus volumes: @@ -45,7 +46,7 @@ - --server.http.listen-addr=0.0.0.0:12345 - /etc/agent/config.river volumes: - - ./docker/blocks/self-instrumentation/agent.flow:/etc/agent/config.river + - ./docker/blocks/self-instrumentation/agent.flow:/etc/agent/config.river ports: - "12345:12345" - "12347:12347" diff --git a/devenv/docker/blocks/self-instrumentation/prometheus.yaml b/devenv/docker/blocks/self-instrumentation/prometheus.yaml index d445270cfd6..5533f0c0fd6 100644 --- a/devenv/docker/blocks/self-instrumentation/prometheus.yaml +++ b/devenv/docker/blocks/self-instrumentation/prometheus.yaml @@ -4,6 +4,7 @@ global: scrape_configs: - job_name: grafana + scrape_classic_histograms: true static_configs: - targets: - host.docker.internal:3000 diff --git a/pkg/infra/httpclient/httpclientprovider/datasource_metrics_middleware.go b/pkg/infra/httpclient/httpclientprovider/datasource_metrics_middleware.go index 012755732d6..6c1b4489dd2 100644 --- a/pkg/infra/httpclient/httpclientprovider/datasource_metrics_middleware.go +++ b/pkg/infra/httpclient/httpclientprovider/datasource_metrics_middleware.go @@ -3,6 +3,7 @@ package httpclientprovider import ( "net/http" "strconv" + "time" sdkhttpclient "github.com/grafana/grafana-plugin-sdk-go/backend/httpclient" "github.com/grafana/grafana/pkg/infra/httpclient" @@ -33,10 +34,13 @@ var ( datasourceResponseHistogram = promauto.NewHistogramVec( prometheus.HistogramOpts{ - Namespace: "grafana", - Name: "datasource_response_size_bytes", - Help: "histogram of data source response sizes returned to Grafana", - Buckets: []float64{128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576}, + Namespace: "grafana", + Name: "datasource_response_size_bytes", + Help: "histogram of data source response sizes returned to Grafana", + Buckets: []float64{128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576}, + NativeHistogramBucketFactor: 1.1, + NativeHistogramMaxBucketNumber: 100, + NativeHistogramMinResetDuration: time.Hour, }, []string{"datasource", "datasource_type", "secure_socks_ds_proxy_enabled"}, )