From 84b57bb4db87fb5cba6d2fe0054ec110934a7156 Mon Sep 17 00:00:00 2001 From: Felix Albrigtsen Date: Mon, 23 Jan 2023 14:48:21 +0100 Subject: [PATCH] Provision go dashboard for gogs --- .../metrics/dashboards/go-processes.json | 1009 +++++++++++++++++ hosts/ildkule/services/metrics/grafana.nix | 6 + 2 files changed, 1015 insertions(+) create mode 100644 hosts/ildkule/services/metrics/dashboards/go-processes.json diff --git a/hosts/ildkule/services/metrics/dashboards/go-processes.json b/hosts/ildkule/services/metrics/dashboards/go-processes.json new file mode 100644 index 0000000..f283ad3 --- /dev/null +++ b/hosts/ildkule/services/metrics/dashboards/go-processes.json @@ -0,0 +1,1009 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "description": "Process status published by Go Prometheus client library, e.g. memory used, fds open, GC details", + "editable": true, + "fiscalYearStartMonth": 0, + "gnetId": 240, + "graphTooltip": 0, + "id": 10, + "links": [], + "liveNow": false, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 0 + }, + "hiddenSeries": false, + "id": 1, + "isNew": true, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "resident", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "process_resident_memory_bytes{job=\"$job\"}", + "intervalFactor": 2, + "legendFormat": "resident", + "metric": "process_resident_memory_bytes", + "refId": "A", + "step": 4 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "process_virtual_memory_bytes{job=\"$job\"}", + "intervalFactor": 2, + "legendFormat": "virtual", + "metric": "process_virtual_memory_bytes", + "refId": "B", + "step": 4 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "process memory", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 0 + }, + "hiddenSeries": false, + "id": 4, + "isNew": true, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "resident", + "yaxis": 1 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "rate(process_resident_memory_bytes{job=\"$job\"}[$interval])", + "intervalFactor": 2, + "legendFormat": "resident", + "metric": "process_resident_memory_bytes", + "refId": "A", + "step": 4 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "deriv(process_virtual_memory_bytes{job=\"$job\"}[$interval])", + "intervalFactor": 2, + "legendFormat": "virtual", + "metric": "process_virtual_memory_bytes", + "refId": "B", + "step": 4 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "process memory deriv", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 7 + }, + "hiddenSeries": false, + "id": 2, + "isNew": true, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "alloc rate", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "go_memstats_alloc_bytes{job=\"$job\"}", + "intervalFactor": 2, + "legendFormat": "bytes allocated", + "metric": "go_memstats_alloc_bytes", + "refId": "A", + "step": 4 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "rate(go_memstats_alloc_bytes_total{job=\"$job\"}[30s])", + "intervalFactor": 2, + "legendFormat": "alloc rate", + "metric": "go_memstats_alloc_bytes_total", + "refId": "B", + "step": 4 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "go_memstats_stack_inuse_bytes{job=\"$job\"}", + "intervalFactor": 2, + "legendFormat": "stack inuse", + "metric": "go_memstats_stack_inuse_bytes", + "refId": "C", + "step": 4 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "go_memstats_heap_inuse_bytes{job=\"$job\"}", + "hide": false, + "intervalFactor": 2, + "legendFormat": "heap inuse", + "metric": "go_memstats_heap_inuse_bytes", + "refId": "D", + "step": 4 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "go memstats", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "logBase": 1, + "show": true + }, + { + "format": "Bps", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 7 + }, + "hiddenSeries": false, + "id": 5, + "isNew": true, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "alloc rate", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "deriv(go_memstats_alloc_bytes{job=\"$job\"}[$interval])", + "intervalFactor": 2, + "legendFormat": "bytes allocated", + "metric": "go_memstats_alloc_bytes", + "refId": "A", + "step": 4 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "rate(go_memstats_alloc_bytes_total{job=\"$job\"}[$interval])", + "intervalFactor": 2, + "legendFormat": "alloc rate", + "metric": "go_memstats_alloc_bytes_total", + "refId": "B", + "step": 4 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "deriv(go_memstats_stack_inuse_bytes{job=\"$job\"}[$interval])", + "intervalFactor": 2, + "legendFormat": "stack inuse", + "metric": "go_memstats_stack_inuse_bytes", + "refId": "C", + "step": 4 + }, + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "deriv(go_memstats_heap_inuse_bytes{job=\"$job\"}[$interval])", + "hide": false, + "intervalFactor": 2, + "legendFormat": "heap inuse", + "metric": "go_memstats_heap_inuse_bytes", + "refId": "D", + "step": 4 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "go memstats deriv", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "logBase": 1, + "show": true + }, + { + "format": "Bps", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 14 + }, + "hiddenSeries": false, + "id": 3, + "isNew": true, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "process_open_fds{job=\"$job\"}", + "intervalFactor": 2, + "legendFormat": "{{job}}", + "metric": "process_open_fds", + "refId": "A", + "step": 4 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "open fds", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 14 + }, + "hiddenSeries": false, + "id": 6, + "isNew": true, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "deriv(process_open_fds{job=\"$job\"}[$interval])", + "intervalFactor": 2, + "metric": "process_open_fds", + "refId": "A", + "step": 4 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "open fds deriv", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 21 + }, + "hiddenSeries": false, + "id": 7, + "isNew": true, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "go_goroutines{job=\"$job\"}", + "intervalFactor": 2, + "legendFormat": "{{job}}", + "metric": "go_goroutines", + "refId": "A", + "step": 4 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "Goroutines", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "editable": true, + "error": false, + "fill": 1, + "fillGradient": 0, + "grid": {}, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 21 + }, + "hiddenSeries": false, + "id": 8, + "isNew": true, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "9.3.1", + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "expr": "go_gc_duration_seconds{job=\"$job\"}", + "intervalFactor": 2, + "legendFormat": "{{quantile}}", + "metric": "go_gc_duration_seconds", + "refId": "A", + "step": 4 + } + ], + "thresholds": [], + "timeRegions": [], + "title": "GC duration quantiles", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } + } + ], + "refresh": "30s", + "schemaVersion": 37, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": "git-gogs", + "value": "git-gogs" + }, + "datasource": { + "type": "prometheus", + "uid": "PA1A88E29D1C12E08" + }, + "definition": "", + "hide": 0, + "includeAll": false, + "multi": false, + "name": "job", + "options": [], + "query": { + "query": "label_values(go_memstats_alloc_bytes,job)", + "refId": "Ildkule Prometheus-job-Variable-Query" + }, + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "type": "query" + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": true, + "text": "5m", + "value": "5m" + }, + "hide": 0, + "includeAll": false, + "multi": false, + "name": "interval", + "options": [ + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": true, + "text": "5m", + "value": "5m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + } + ], + "query": "1m,5m,10m,30m,1h", + "queryValue": "", + "refresh": 0, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "Go Processes (gogs)", + "uid": "Ad2EnbTVk", + "version": 4, + "weekStart": "" +} diff --git a/hosts/ildkule/services/metrics/grafana.nix b/hosts/ildkule/services/metrics/grafana.nix index 21afe65..bcb68b9 100644 --- a/hosts/ildkule/services/metrics/grafana.nix +++ b/hosts/ildkule/services/metrics/grafana.nix @@ -70,6 +70,12 @@ in { url = "https://grafana.com/api/dashboards/9628/revisions/7/download"; options.path = dashboards/postgres.json; } + { + name = "Go Processes (gogs)"; + type = "file"; + url = "https://grafana.com/api/dashboards/240/revisions/3/download"; + options.path = dashboards/go-processes.json; + } ]; };