Skip to content

Commit d4288a1

Browse files
dashboard: fix Prometheus TDG moving average
Before this patch, Prometheus average panels (histogram or summary `metric_sum / metric_count`) were displaying instance runtime average info. This info is rather useless since, in case of instance lifetime being longer than several dozens of metrics collect intervals (which happens often), computed average becomes almost constant. Prometheus itself advises to use moving average for this. InfluxDB panels already implement moving averages, so there's no need to update them. 1. https://prometheus.io/docs/practices/histograms/#count-and-sum-of-observations Closes #237
1 parent c0dba2a commit d4288a1

File tree

5 files changed

+17
-11
lines changed

5 files changed

+17
-11
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [Unreleased]
8+
9+
### Fixed
10+
- Prometheus TDG average panels displaying lifetime average instead of a moving one (#237)
11+
12+
713
## [3.2.0] - 2024-10-04
814
Grafana revisions:
915
- Tarantool 3:

dashboard/panels/tdg/graphql.libsonnet

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ local prometheus = grafana.prometheus;
3737
prometheus.target(
3838
expr=std.format(
3939
|||
40-
%(metrics_prefix)s%(metric_name_sum)s{%(filters)s} / %(metrics_prefix)s%(metric_name_count)s{%(filters)s}
40+
rate(%(metrics_prefix)s%(metric_name_sum)s{%(filters)s}[$__rate_interval]) / rate(%(metrics_prefix)s%(metric_name_count)s{%(filters)s})[$__rate_interval])
4141
|||,
4242
{
4343
metrics_prefix: cfg.metrics_prefix,

dashboard/panels/tdg/tasks.libsonnet

+2-2
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ local prometheus = grafana.prometheus;
8383
prometheus.target(
8484
expr=std.format(
8585
|||
86-
%(metrics_prefix)s%(metric_name_sum)s{%(filters)s} / %(metrics_prefix)s%(metric_name_count)s{%(filters)s}
86+
rate(%(metrics_prefix)s%(metric_name_sum)s{%(filters)s}[$__rate_interval]) / rate(%(metrics_prefix)s%(metric_name_count)s{%(filters)s}[$__rate_interval])
8787
|||,
8888
{
8989
metrics_prefix: cfg.metrics_prefix,
@@ -196,7 +196,7 @@ local prometheus = grafana.prometheus;
196196
prometheus.target(
197197
expr=std.format(
198198
|||
199-
%(metrics_prefix)s%(metric_name_sum)s{%(filters)s} / %(metrics_prefix)s%(metric_name_count)s{%(filters)s}
199+
rate(%(metrics_prefix)s%(metric_name_sum)s{%(filters)s}[$__rate_interval]) / rate(%(metrics_prefix)s%(metric_name_count)s{%(filters)s}[$__rate_interval])
200200
|||,
201201
{
202202
metrics_prefix: cfg.metrics_prefix,

dashboard/panels/tdg/tuples.libsonnet

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ local prometheus = grafana.prometheus;
1818
prometheus.target(
1919
expr=std.format(
2020
|||
21-
%(metrics_prefix)s%(metric_name_sum)s{%(filters)s} / %(metrics_prefix)s%(metric_name_count)s{%(filters)s}
21+
rate(%(metrics_prefix)s%(metric_name_sum)s{%(filters)s}[$__rate_interval]) / rate(%(metrics_prefix)s%(metric_name_count)s{%(filters)s}[$__rate_interval])
2222
|||,
2323
{
2424
metrics_prefix: cfg.metrics_prefix,

tests/Prometheus/dashboard_tdg_compiled.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -18917,7 +18917,7 @@
1891718917
"steppedLine": false,
1891818918
"targets": [
1891918919
{
18920-
"expr": "tdg_scanned_tuples_sum{alias=~\"$alias\",job=~\"$job\"} / tdg_scanned_tuples_count{alias=~\"$alias\",job=~\"$job\"}\n",
18920+
"expr": "rate(tdg_scanned_tuples_sum{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval]) / rate(tdg_scanned_tuples_count{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval])\n",
1892118921
"format": "time_series",
1892218922
"intervalFactor": 2,
1892318923
"legendFormat": "{{type_name}} — {{alias}}",
@@ -19004,7 +19004,7 @@
1900419004
"steppedLine": false,
1900519005
"targets": [
1900619006
{
19007-
"expr": "tdg_returned_tuples_sum{alias=~\"$alias\",job=~\"$job\"} / tdg_returned_tuples_count{alias=~\"$alias\",job=~\"$job\"}\n",
19007+
"expr": "rate(tdg_returned_tuples_sum{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval]) / rate(tdg_returned_tuples_count{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval])\n",
1900819008
"format": "time_series",
1900919009
"intervalFactor": 2,
1901019010
"legendFormat": "{{type_name}} — {{alias}}",
@@ -19932,7 +19932,7 @@
1993219932
"steppedLine": false,
1993319933
"targets": [
1993419934
{
19935-
"expr": "tdg_graphql_query_time_sum{alias=~\"$alias\",job=~\"$job\"} / tdg_graphql_query_time_count{alias=~\"$alias\",job=~\"$job\"}\n",
19935+
"expr": "rate(tdg_graphql_query_time_sum{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval]) / rate(tdg_graphql_query_time_count{alias=~\"$alias\",job=~\"$job\"})[$__rate_interval])\n",
1993619936
"format": "time_series",
1993719937
"intervalFactor": 2,
1993819938
"legendFormat": "{{operation_name}} ({{schema}}, {{entity}}) — {{alias}}",
@@ -20193,7 +20193,7 @@
2019320193
"steppedLine": false,
2019420194
"targets": [
2019520195
{
20196-
"expr": "tdg_graphql_mutation_time_sum{alias=~\"$alias\",job=~\"$job\"} / tdg_graphql_mutation_time_count{alias=~\"$alias\",job=~\"$job\"}\n",
20196+
"expr": "rate(tdg_graphql_mutation_time_sum{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval]) / rate(tdg_graphql_mutation_time_count{alias=~\"$alias\",job=~\"$job\"})[$__rate_interval])\n",
2019720197
"format": "time_series",
2019820198
"intervalFactor": 2,
2019920199
"legendFormat": "{{operation_name}} ({{schema}}, {{entity}}) — {{alias}}",
@@ -23385,7 +23385,7 @@
2338523385
"steppedLine": false,
2338623386
"targets": [
2338723387
{
23388-
"expr": "tdg_jobs_execution_time_sum{alias=~\"$alias\",job=~\"$job\"} / tdg_jobs_execution_time_count{alias=~\"$alias\",job=~\"$job\"}\n",
23388+
"expr": "rate(tdg_jobs_execution_time_sum{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval]) / rate(tdg_jobs_execution_time_count{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval])\n",
2338923389
"format": "time_series",
2339023390
"intervalFactor": 2,
2339123391
"legendFormat": "{{name}} — {{alias}}",
@@ -23907,7 +23907,7 @@
2390723907
"steppedLine": false,
2390823908
"targets": [
2390923909
{
23910-
"expr": "tdg_tasks_execution_time_sum{alias=~\"$alias\",job=~\"$job\"} / tdg_tasks_execution_time_count{alias=~\"$alias\",job=~\"$job\"}\n",
23910+
"expr": "rate(tdg_tasks_execution_time_sum{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval]) / rate(tdg_tasks_execution_time_count{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval])\n",
2391123911
"format": "time_series",
2391223912
"intervalFactor": 2,
2391323913
"legendFormat": "{{name}} ({{kind}}) — {{alias}}",
@@ -24342,7 +24342,7 @@
2434224342
"steppedLine": false,
2434324343
"targets": [
2434424344
{
24345-
"expr": "tdg_system_tasks_execution_time_sum{alias=~\"$alias\",job=~\"$job\"} / tdg_system_tasks_execution_time_count{alias=~\"$alias\",job=~\"$job\"}\n",
24345+
"expr": "rate(tdg_system_tasks_execution_time_sum{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval]) / rate(tdg_system_tasks_execution_time_count{alias=~\"$alias\",job=~\"$job\"}[$__rate_interval])\n",
2434624346
"format": "time_series",
2434724347
"intervalFactor": 2,
2434824348
"legendFormat": "{{name}} ({{kind}}) — {{alias}}",

0 commit comments

Comments
 (0)