From 3e811f272ba6847b8f31ce83c3f8157eb8fd5e9e Mon Sep 17 00:00:00 2001 From: Thomas Draebing Date: Thu, 10 Sep 2020 10:40:33 +0200 Subject: [PATCH] Convert git fetch/clone dashboard to grafonnet Change-Id: I735f94599199ae2d0f304030fa023c55359e9a47 --- dashboards/gerrit-fetch-clone.json | 521 ------------------ .../fetch-clone/gerrit-fetch-clone.jsonnet | 43 ++ .../gerrit/fetch-clone/panels/bytes.libsonnet | 47 ++ .../gerrit/fetch-clone/panels/count.libsonnet | 20 + 4 files changed, 110 insertions(+), 521 deletions(-) delete mode 100644 dashboards/gerrit-fetch-clone.json create mode 100644 dashboards/gerrit/fetch-clone/gerrit-fetch-clone.jsonnet create mode 100644 dashboards/gerrit/fetch-clone/panels/bytes.libsonnet create mode 100644 dashboards/gerrit/fetch-clone/panels/count.libsonnet diff --git a/dashboards/gerrit-fetch-clone.json b/dashboards/gerrit-fetch-clone.json deleted file mode 100644 index 509897a..0000000 --- a/dashboards/gerrit-fetch-clone.json +++ /dev/null @@ -1,521 +0,0 @@ -{ - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "Prometheus", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "7.1.5" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "links": [], - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "description": "upload-pack requests", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 0 - }, - "hiddenSeries": false, - "id": 4, - "interval": "2m", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "increase(git_upload_pack_request_count_CLONE_total{instance=\"$instance\",replica=\"$replica\"}[2m])/2", - "legendFormat": "clone", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "CLONE count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "description": "upload-pack requests for fetches", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 0 - }, - "hiddenSeries": false, - "id": 8, - "interval": "", - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": false, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "increase(git_upload_pack_request_count_FETCH_total{instance=\"$instance\",replica=\"$replica\"}[2m])/2", - "legendFormat": "fetch", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "FETCH count", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "opm", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 13, - "w": 12, - "x": 0, - "y": 8 - }, - "hiddenSeries": false, - "id": 2, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "quantile: 0.75", - "hiddenSeries": true - }, - { - "alias": "quantile: 0.95", - "hiddenSeries": true - }, - { - "alias": "quantile: 0.98", - "hiddenSeries": true - }, - { - "alias": "quantile: 0.99", - "hiddenSeries": true - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "git_upload_pack_pack_bytes_CLONE{instance=\"$instance\",replica=\"$replica\"}", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "quantile: {{quantile}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "upload-pack pack bytes CLONE", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "decbytes", - "label": "", - "logBase": 10, - "max": "10000000000", - "min": "1000", - "show": true - }, - { - "format": "short", - "label": "", - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "${DS_PROMETHEUS}", - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 13, - "w": 12, - "x": 12, - "y": 8 - }, - "hiddenSeries": false, - "id": 6, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "dataLinks": [] - }, - "percentage": false, - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [ - { - "alias": "quantile: 0.75", - "hiddenSeries": true - }, - { - "alias": "quantile: 0.95", - "hiddenSeries": true - }, - { - "alias": "quantile: 0.98", - "hiddenSeries": true - }, - { - "alias": "quantile: 0.99", - "hiddenSeries": true - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "git_upload_pack_pack_bytes_FETCH{instance=\"$instance\",replica=\"$replica\"}", - "legendFormat": "quantile: {{quantile}}", - "refId": "A" - } - ], - "thresholds": [], - "timeFrom": null, - "timeRegions": [], - "timeShift": null, - "title": "upload-pack pack bytes FETCH", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "decbytes", - "label": null, - "logBase": 10, - "max": "10000000000", - "min": "1000", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ], - "yaxis": { - "align": false, - "alignLevel": null - } - } - ], - "refresh": "1m", - "schemaVersion": 21, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "allValue": null, - "current": { - "text": "", - "value": "" - }, - "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(git_upload_pack_phase_writing_total, instance)", - "hide": 0, - "includeAll": false, - "label": "Gerrit Instance", - "multi": false, - "name": "instance", - "options": [], - "query": "label_values(git_upload_pack_phase_writing_total, instance)", - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "allValue": null, - "current": { - "text": "", - "value": "" - }, - "datasource": "${DS_PROMETHEUS}", - "definition": "label_values(git_upload_pack_phase_writing_total{instance=\"$instance\"}, replica)", - "hide": 0, - "includeAll": false, - "label": "Replica", - "multi": false, - "name": "replica", - "options": [], - "query": "label_values(git_upload_pack_phase_writing_total{instance=\"$instance\"}, replica)", - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tags": [], - "tagsQuery": "", - "type": "query", - "useTags": false - } - ] - }, - "time": { - "from": "now-24h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Git fetch / clone", - "uid": "EV4ZCjEWz", - "version": 3 -} diff --git a/dashboards/gerrit/fetch-clone/gerrit-fetch-clone.jsonnet b/dashboards/gerrit/fetch-clone/gerrit-fetch-clone.jsonnet new file mode 100644 index 0000000..8273f06 --- /dev/null +++ b/dashboards/gerrit/fetch-clone/gerrit-fetch-clone.jsonnet @@ -0,0 +1,43 @@ +local grafana = import '../../../vendor/grafonnet/grafana.libsonnet'; +local dashboard = grafana.dashboard; +local template = grafana.template; +local graphPanel = grafana.graphPanel; +local prometheus = grafana.prometheus; + +local defaults = import '../../globals/defaults.libsonnet'; +local gridPos = import '../../globals/grid_pos.libsonnet'; +local publishVariables = import '../../globals/publish.libsonnet'; +local variables = import '../globals/variables.libsonnet'; + +local count_panel = import './panels/count.libsonnet'; +local bytes_panel = import './panels/bytes.libsonnet'; + +dashboard.new( + 'Gerrit - Git Fetch & Clone', + tags=['gerrit'], + schemaVersion=defaults.dashboards.schemaVersion, + editable=defaults.dashboards.editable, + time_from=defaults.dashboards.timeFrom, + time_to=defaults.dashboards.timeTo, + refresh=defaults.dashboards.refresh, + graphTooltip='shared_tooltip', +) +.addTemplate(variables.instance) +.addTemplate(variables.replica) +.addPanel( + count_panel.new('CLONE'), + gridPos=gridPos.new(0, 0) +) +.addPanel( + count_panel.new('FETCH'), + gridPos=gridPos.new(0, 1) +) +.addPanel( + bytes_panel.new('CLONE'), + gridPos=gridPos.new(1, 0) +) +.addPanel( + bytes_panel.new('FETCH'), + gridPos=gridPos.new(1, 1) +) ++ if std.extVar('publish') then publishVariables else {} diff --git a/dashboards/gerrit/fetch-clone/panels/bytes.libsonnet b/dashboards/gerrit/fetch-clone/panels/bytes.libsonnet new file mode 100644 index 0000000..0acbdf1 --- /dev/null +++ b/dashboards/gerrit/fetch-clone/panels/bytes.libsonnet @@ -0,0 +1,47 @@ +local grafana = import '../../../../vendor/grafonnet/grafana.libsonnet'; +local prometheus = grafana.prometheus; + +local lineGraph = import '../../../globals/line-graph.libsonnet'; +local yAxis = import '../../../globals/yaxis.libsonnet'; +{ + new(type):: lineGraph.new( + title=std.format('upload-pack pack bytes %s', type), + yAxis1=yAxis.new( + format='decbytes', + logBase=10, + ), + min=1000, + max=10000000000, + fill=0, + ) + .addTarget( + prometheus.target( + std.format('git_upload_pack_pack_bytes_%s{instance="$instance",replica="$replica"}', type), + legendFormat='quantile: {{quantile}}', + ) + ) + .addSeriesOverride( + { + alias: 'quantile: 0.99', + hiddenSeries: true, + } + ) + .addSeriesOverride( + { + alias: 'quantile: 0.98', + hiddenSeries: true, + } + ) + .addSeriesOverride( + { + alias: 'quantile: 0.95', + hiddenSeries: true, + } + ) + .addSeriesOverride( + { + alias: 'quantile: 0.75', + hiddenSeries: true, + } + ) +} diff --git a/dashboards/gerrit/fetch-clone/panels/count.libsonnet b/dashboards/gerrit/fetch-clone/panels/count.libsonnet new file mode 100644 index 0000000..827a25f --- /dev/null +++ b/dashboards/gerrit/fetch-clone/panels/count.libsonnet @@ -0,0 +1,20 @@ +local grafana = import '../../../../vendor/grafonnet/grafana.libsonnet'; +local prometheus = grafana.prometheus; + +local lineGraph = import '../../../globals/line-graph.libsonnet'; +local yAxis = import '../../../globals/yaxis.libsonnet'; + +{ + new(type):: lineGraph.new( + title=std.format('%s count', type), + yAxis1=yAxis.new( + format='opm', + ) + ) + .addTarget( + prometheus.target( + std.format('increase(git_upload_pack_request_count_%s_total{instance="$instance",replica="$replica"}[2m])/2', type), + legendFormat=type, + ) + ) +}