Jsonnet: Change by-pod source code to reuse the `latency` util function (#11783)

**What this PR does / why we need it**:
Modify our implementation of `p99LatencyByPod` to reuse the `latencyPanel` util function.
pull/11788/head
Dylan Guedes 1 year ago committed by GitHub
parent 191466523e
commit 9964a30b62
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 50
      production/loki-mixin-compiled-ssd/dashboards/loki-reads.json
  2. 150
      production/loki-mixin-compiled/dashboards/loki-reads.json
  3. 66
      production/loki-mixin/dashboards/loki-reads.libsonnet

@ -208,19 +208,6 @@
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 50,
"showPoints": "never",
"stacking": {
"group": "A",
"mode": "normal"
}
},
"unit": "s"
}
},
"fill": 1,
"id": 3,
"legend": {
@ -247,11 +234,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.99,\n sum(\n rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\"}[$__rate_interval])\n ) by (pod, le)\n )\n",
"instant": false,
"expr": "histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/(loki|enterprise-logs)-read\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\"}[$__rate_interval])) by (le,pod)) * 1e3",
"format": "time_series",
"interval": "1m",
"intervalFactor": 2,
"legendFormat": "__auto",
"range": true,
"refId": "A"
"refId": "A",
"step": 10
}
],
"thresholds": [ ],
@ -273,7 +262,7 @@
},
"yaxes": [
{
"format": "short",
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
@ -484,19 +473,6 @@
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 50,
"showPoints": "never",
"stacking": {
"group": "A",
"mode": "normal"
}
},
"unit": "s"
}
},
"fill": 1,
"id": 6,
"legend": {
@ -523,11 +499,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.99,\n sum(\n rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-read\", operation=\"Shipper.Query\"}[$__rate_interval])\n ) by (pod, le)\n )\n",
"instant": false,
"expr": "histogram_quantile(0.99, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/(loki|enterprise-logs)-read\", operation=\"Shipper.Query\"}[$__rate_interval])) by (le,pod)) * 1e3",
"format": "time_series",
"interval": "1m",
"intervalFactor": 2,
"legendFormat": "__auto",
"range": true,
"refId": "A"
"refId": "A",
"step": 10
}
],
"thresholds": [ ],
@ -549,7 +527,7 @@
},
"yaxes": [
{
"format": "short",
"format": "ms",
"label": null,
"logBase": 1,
"max": null,

@ -208,19 +208,6 @@
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 50,
"showPoints": "never",
"stacking": {
"group": "A",
"mode": "normal"
}
},
"unit": "s"
}
},
"fill": 1,
"id": 3,
"legend": {
@ -247,11 +234,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.99,\n sum(\n rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/query-frontend\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\"}[$__rate_interval])\n ) by (pod, le)\n )\n",
"instant": false,
"expr": "histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/query-frontend\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\"}[$__rate_interval])) by (le,pod)) * 1e3",
"format": "time_series",
"interval": "1m",
"intervalFactor": 2,
"legendFormat": "__auto",
"range": true,
"refId": "A"
"refId": "A",
"step": 10
}
],
"thresholds": [ ],
@ -273,7 +262,7 @@
},
"yaxes": [
{
"format": "short",
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
@ -484,19 +473,6 @@
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 50,
"showPoints": "never",
"stacking": {
"group": "A",
"mode": "normal"
}
},
"unit": "s"
}
},
"fill": 1,
"id": 6,
"legend": {
@ -523,11 +499,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.99,\n sum(\n rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/querier\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\"}[$__rate_interval])\n ) by (pod, le)\n )\n",
"instant": false,
"expr": "histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/querier\", route=~\"loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values\"}[$__rate_interval])) by (le,pod)) * 1e3",
"format": "time_series",
"interval": "1m",
"intervalFactor": 2,
"legendFormat": "__auto",
"range": true,
"refId": "A"
"refId": "A",
"step": 10
}
],
"thresholds": [ ],
@ -549,7 +527,7 @@
},
"yaxes": [
{
"format": "short",
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
@ -760,19 +738,6 @@
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 50,
"showPoints": "never",
"stacking": {
"group": "A",
"mode": "normal"
}
},
"unit": "s"
}
},
"fill": 1,
"id": 9,
"legend": {
@ -799,11 +764,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.99,\n sum(\n rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/ingester\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\"}[$__rate_interval])\n ) by (pod, le)\n )\n",
"instant": false,
"expr": "histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/ingester\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\"}[$__rate_interval])) by (le,pod)) * 1e3",
"format": "time_series",
"interval": "1m",
"intervalFactor": 2,
"legendFormat": "__auto",
"range": true,
"refId": "A"
"refId": "A",
"step": 10
}
],
"thresholds": [ ],
@ -825,7 +792,7 @@
},
"yaxes": [
{
"format": "short",
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
@ -1036,19 +1003,6 @@
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 50,
"showPoints": "never",
"stacking": {
"group": "A",
"mode": "normal"
}
},
"unit": "s"
}
},
"fill": 1,
"id": 12,
"legend": {
@ -1075,11 +1029,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.99,\n sum(\n rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/ingester-zone.*\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\"}[$__rate_interval])\n ) by (pod, le)\n )\n",
"instant": false,
"expr": "histogram_quantile(0.99, sum(rate(loki_request_duration_seconds_bucket{cluster=~\"$cluster\", job=~\"($namespace)/ingester-zone.*\", route=~\"/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs\"}[$__rate_interval])) by (le,pod)) * 1e3",
"format": "time_series",
"interval": "1m",
"intervalFactor": 2,
"legendFormat": "__auto",
"range": true,
"refId": "A"
"refId": "A",
"step": 10
}
],
"thresholds": [ ],
@ -1101,7 +1057,7 @@
},
"yaxes": [
{
"format": "short",
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
@ -1312,19 +1268,6 @@
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 50,
"showPoints": "never",
"stacking": {
"group": "A",
"mode": "normal"
}
},
"unit": "s"
}
},
"fill": 1,
"id": 15,
"legend": {
@ -1351,11 +1294,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.99,\n sum(\n rate(loki_index_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/querier\", operation!=\"index_chunk\"}[$__rate_interval])\n ) by (pod, le)\n )\n",
"instant": false,
"expr": "histogram_quantile(0.99, sum(rate(loki_index_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/querier\", operation!=\"index_chunk\"}[$__rate_interval])) by (le,pod)) * 1e3",
"format": "time_series",
"interval": "1m",
"intervalFactor": 2,
"legendFormat": "__auto",
"range": true,
"refId": "A"
"refId": "A",
"step": 10
}
],
"thresholds": [ ],
@ -1377,7 +1322,7 @@
},
"yaxes": [
{
"format": "short",
"format": "ms",
"label": null,
"logBase": 1,
"max": null,
@ -1588,19 +1533,6 @@
"dashLength": 10,
"dashes": false,
"datasource": "$datasource",
"fieldConfig": {
"defaults": {
"custom": {
"fillOpacity": 50,
"showPoints": "never",
"stacking": {
"group": "A",
"mode": "normal"
}
},
"unit": "s"
}
},
"fill": 1,
"id": 18,
"legend": {
@ -1627,11 +1559,13 @@
"steppedLine": false,
"targets": [
{
"expr": "histogram_quantile(0.99,\n sum(\n rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/(querier|index-gateway)\", operation=\"Shipper.Query\"}[$__rate_interval])\n ) by (pod, le)\n )\n",
"instant": false,
"expr": "histogram_quantile(0.99, sum(rate(loki_boltdb_shipper_request_duration_seconds_bucket{cluster=~\"$cluster\",job=~\"($namespace)/(querier|index-gateway)\", operation=\"Shipper.Query\"}[$__rate_interval])) by (le,pod)) * 1e3",
"format": "time_series",
"interval": "1m",
"intervalFactor": 2,
"legendFormat": "__auto",
"range": true,
"refId": "A"
"refId": "A",
"step": 10
}
],
"thresholds": [ ],
@ -1653,7 +1587,7 @@
},
"yaxes": [
{
"format": "short",
"format": "ms",
"label": null,
"logBase": 1,
"max": null,

@ -8,39 +8,25 @@ local utils = import 'mixin-utils/utils.libsonnet';
local http_routes = 'loki_api_v1_series|api_prom_series|api_prom_query|api_prom_label|api_prom_label_name_values|loki_api_v1_query|loki_api_v1_query_range|loki_api_v1_labels|loki_api_v1_label_name_values',
local grpc_routes = '/logproto.Querier/Query|/logproto.Querier/Label|/logproto.Querier/Series|/logproto.Querier/QuerySample|/logproto.Querier/GetChunkIDs',
local latencyPanelWithExtraGrouping(metricName, selector, multiplier='1e3', extra_grouping='') = {
nullPointMode: 'null as zero',
targets: [
{
expr: 'histogram_quantile(0.99, sum(rate(%s_bucket%s[$__rate_interval])) by (le,%s)) * %s' % [metricName, selector, extra_grouping, multiplier],
format: 'time_series',
intervalFactor: 2,
refId: 'A',
step: 10,
interval: '1m',
legendFormat: '__auto',
},
],
yaxes: $.yaxes('ms'),
},
local p99LatencyByPod(metric, selectorStr) =
$.panel('Per Pod Latency (p99)') +
{
targets: [
{
expr:
|||
histogram_quantile(0.99,
sum(
rate(%s%s[$__rate_interval])
) by (pod, le)
)
||| % [metric, selectorStr],
instant: false,
legendFormat: '__auto',
range: true,
refId: 'A',
},
],
fieldConfig+: {
defaults+: {
custom+: {
fillOpacity: 50,
showPoints: 'never',
stacking: {
group: 'A',
mode: 'normal',
},
},
unit: 's',
},
},
},
latencyPanelWithExtraGrouping(metric, selectorStr, '1e3', 'pod'),
'loki-reads.json': {
local cfg = self,
@ -96,11 +82,9 @@ local utils = import 'mixin-utils/utils.libsonnet';
)
.addPanel(
p99LatencyByPod(
'loki_request_duration_seconds_bucket',
'loki_request_duration_seconds',
$.toPrometheusSelector(
dashboards['loki-reads.json'].clusterMatchers +
dashboards['loki-reads.json'].matchers.cortexgateway +
[utils.selector.re('route', http_routes)]
dashboards['loki-reads.json'].clusterMatchers + dashboards['loki-reads.json'].matchers.cortexgateway + [utils.selector.re('route', http_routes)]
),
)
)
@ -121,7 +105,7 @@ local utils = import 'mixin-utils/utils.libsonnet';
)
.addPanel(
p99LatencyByPod(
'loki_request_duration_seconds_bucket',
'loki_request_duration_seconds',
$.toPrometheusSelector(
dashboards['loki-reads.json'].clusterMatchers +
dashboards['loki-reads.json'].matchers.queryFrontend +
@ -147,7 +131,7 @@ local utils = import 'mixin-utils/utils.libsonnet';
)
.addPanel(
p99LatencyByPod(
'loki_request_duration_seconds_bucket',
'loki_request_duration_seconds',
$.toPrometheusSelector(
dashboards['loki-reads.json'].clusterMatchers +
dashboards['loki-reads.json'].matchers.querier +
@ -173,7 +157,7 @@ local utils = import 'mixin-utils/utils.libsonnet';
)
.addPanel(
p99LatencyByPod(
'loki_request_duration_seconds_bucket',
'loki_request_duration_seconds',
$.toPrometheusSelector(
dashboards['loki-reads.json'].clusterMatchers +
dashboards['loki-reads.json'].matchers.ingester +
@ -200,7 +184,7 @@ local utils = import 'mixin-utils/utils.libsonnet';
)
.addPanel(
p99LatencyByPod(
'loki_request_duration_seconds_bucket',
'loki_request_duration_seconds',
$.toPrometheusSelector(
dashboards['loki-reads.json'].clusterMatchers +
dashboards['loki-reads.json'].matchers.ingesterZoneAware +
@ -222,7 +206,7 @@ local utils = import 'mixin-utils/utils.libsonnet';
)
.addPanel(
p99LatencyByPod(
'loki_index_request_duration_seconds_bucket',
'loki_index_request_duration_seconds',
'{%s operation!="index_chunk"}' % dashboards['loki-reads.json'].querierSelector
)
)
@ -254,7 +238,7 @@ local utils = import 'mixin-utils/utils.libsonnet';
)
.addPanel(
p99LatencyByPod(
'loki_boltdb_shipper_request_duration_seconds_bucket',
'loki_boltdb_shipper_request_duration_seconds',
'{%s operation="Shipper.Query"}' % dashboards['loki-reads.json'].querierOrIndexGatewaySelector
)
)

Loading…
Cancel
Save