diff --git a/infrastructure/kustomization.yaml b/infrastructure/kustomization.yaml index 8cd1c6def59428563ec7f93898b75e5a04873f81..133fa85356b4e97ae29f3d8c44bc7ec96c537c41 100644 --- a/infrastructure/kustomization.yaml +++ b/infrastructure/kustomization.yaml @@ -11,7 +11,6 @@ resources: - nginx-system - longhorn - monitoring - - loki - flux-system - k8up - postgres diff --git a/infrastructure/loki/README.md b/infrastructure/loki/README.md deleted file mode 100644 index bc94e93bf496ae3d360dc47b4d6a15d4447383f6..0000000000000000000000000000000000000000 --- a/infrastructure/loki/README.md +++ /dev/null @@ -1,12 +0,0 @@ -Loki -=== - -Keeping all logs centralised. - - -Links ---- - -- [Docs](https://grafana.com/docs/loki/latest/) -- [Helm Chart](https://artifacthub.io/packages/helm/grafana/loki-stack) -- [Source Code](https://github.com/grafana/loki) diff --git a/infrastructure/loki/dashboards/loki-logs-quick.json b/infrastructure/loki/dashboards/loki-logs-quick.json deleted file mode 100644 index 7afc4521c3085e33fcc8f7fdc9b530a56d97012a..0000000000000000000000000000000000000000 --- a/infrastructure/loki/dashboards/loki-logs-quick.json +++ /dev/null @@ -1,940 +0,0 @@ -{ - "__inputs": [], - "__elements": {}, - "__requires": [ - { - "type": "panel", - "id": "gauge", - "name": "Gauge", - "version": "" - }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "9.1.6" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph (old)", - "version": "" - }, - { - "type": "panel", - "id": "logs", - "name": "Logs", - "version": "" - }, - { - "type": "datasource", - "id": "loki", - "name": "Loki", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "piechart", - "name": "Pie chart", - "version": "" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - } - ], - "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": "Universal and flexible dashboard for logging", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": 12611, - "graphTooltip": 0, - "id": null, - "links": [], - "liveNow": false, - "panels": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "description": "Total Count of log lines in the specified time range", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "color": "rgb(31, 255, 7)", - "text": "0" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(31, 255, 7)", - "value": null - }, - { - "color": "rgb(31, 255, 7)", - "value": 10 - }, - { - "color": "rgb(31, 255, 7)", - "value": 50 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 12, - "x": 0, - "y": 0 - }, - "id": 11, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "sum(count_over_time(({container=\"$container\", stream=~\"$stream\", pod=~\"$pod\"})[$__interval]))", - "hide": false, - "queryType": "range", - "refId": "A" - } - ], - "title": "Total Count of logs", - "type": "stat" - }, - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "description": "Total Count: of $searchable_pattern in the specified time range", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "color": "rgb(222, 15, 43)", - "text": "0" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "rgb(222, 15, 43)", - "value": null - }, - { - "color": "rgb(222, 15, 43)", - "value": 10 - }, - { - "color": "rgb(222, 15, 43)", - "value": 50 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 12, - "x": 12, - "y": 0 - }, - "id": 6, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "sum" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "sum(count_over_time(({container=\"$container\", stream=~\"$stream\", pod=~\"$pod\"} |~ \"(?i)$searchable_pattern\")[$__interval]))", - "hide": false, - "queryType": "range", - "refId": "A" - } - ], - "title": "Total Count: of $searchable_pattern", - "type": "stat" - }, - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "description": "Live logs is a like 'tail -f' in a real time", - "gridPos": { - "h": 9, - "w": 24, - "x": 0, - "y": 3 - }, - "id": 2, - "options": { - "dedupStrategy": "none", - "enableLogDetails": true, - "prettifyLogMessage": false, - "showCommonLabels": false, - "showLabels": true, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": false - }, - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "{container=\"$container\", pod=~\"$pod\", stream=~\"$stream\"} |~ \"(?i)$searchable_pattern\" ", - "hide": false, - "queryType": "range", - "refId": "A" - } - ], - "title": "Live logs", - "type": "logs" - }, - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [] - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 7, - "x": 0, - "y": 12 - }, - "id": 19, - "links": [], - "maxDataPoints": 100, - "options": { - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "pieType": "pie", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "7.0.4", - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "sum(count_over_time(({container=\"$container\", pod=~\"$pod\"})[$__interval])) by (stream)", - "hide": false, - "queryType": "range", - "refId": "A" - } - ], - "title": "Total count of stderr / stdout pie", - "type": "piechart" - }, - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - } - }, - "mappings": [] - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 12, - "x": 7, - "y": 12 - }, - "id": 20, - "interval": "1m", - "links": [], - "maxDataPoints": "", - "options": { - "legend": { - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "pieType": "pie", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "6.4.3", - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "sum(count_over_time(({container=\"$container\", pod=~\"$pod\", stream=~\"$stream\"} |~ \"(?i)$searchable_pattern\")[$__interval])) by (pod)", - "queryType": "range", - "refId": "A" - } - ], - "title": "Matched word: \"$searchable_pattern\" donut", - "type": "piechart" - }, - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "match": "null", - "result": { - "color": "#299c46", - "text": "0" - } - }, - "type": "special" - } - ], - "max": 100, - "min": 0, - "noValue": "0", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "rgba(237, 129, 40, 0.89)", - "value": 10 - }, - { - "color": "#C4162A", - "value": 50 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 5, - "x": 19, - "y": 12 - }, - "id": 9, - "links": [], - "maxDataPoints": 100, - "options": { - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": false - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "sum(count_over_time(({container=\"$container\", stream=~\"$stream\", pod=~\"$pod\"} |~ \"(?i)$searchable_pattern\")[$__interval])) * 100 / sum(count_over_time(({container=\"$container\", stream=~\"$stream\", pod=~\"$pod\"})[$__interval]))", - "hide": false, - "queryType": "range", - "refId": "A" - } - ], - "title": "\"$searchable_pattern\" Percentage for specified time", - "type": "gauge" - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "decimals": 0, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 1, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 19 - }, - "hiddenSeries": false, - "id": 18, - "interval": "1m", - "legend": { - "alignAsTable": true, - "avg": false, - "current": true, - "hideEmpty": false, - "hideZero": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sort": "current", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 3, - "links": [], - "maxDataPoints": "", - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.1.6", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "sum(count_over_time(({container=\"$container\", pod=~\"$pod\", stream=~\"$stream\"} |~ \"(?i)$searchable_pattern\")[$__interval])) by (pod)", - "queryType": "range", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Matched word: \"$searchable_pattern\" historical", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:425", - "decimals": 0, - "format": "short", - "label": "Count", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:426", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 1, - "fillGradient": 10, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 19 - }, - "hiddenSeries": false, - "id": 10, - "legend": { - "alignAsTable": true, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "maxDataPoints": 100, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.1.6", - "pointradius": 0.5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "sum(rate(({container=\"$container\", stream=~\"$stream\", pod=~\"$pod\"} |~ \"(?i)$searchable_pattern\")[30s])) by (pod)", - "hide": false, - "queryType": "range", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "\"$searchable_pattern\" Rate per Pod", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:2804", - "format": "short", - "logBase": 10, - "show": true - }, - { - "$$hashKey": "object:2805", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "fieldConfig": { - "defaults": { - "links": [], - "unit": "none" - }, - "overrides": [] - }, - "fill": 2, - "fillGradient": 4, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 28 - }, - "hiddenSeries": false, - "id": 7, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "maxDataPoints": 100, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.1.6", - "pointradius": 2, - "points": true, - "renderer": "flot", - "seriesOverrides": [ - { - "$$hashKey": "object:154", - "alias": "{stream=\"stderr\"} stderr", - "color": "#C4162A", - "legend": false, - "linewidth": 2 - }, - { - "$$hashKey": "object:220", - "alias": "{stream=\"stdout\"} stdout", - "color": "#56A64B", - "legend": false, - "linewidth": 2 - } - ], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "editorMode": "code", - "expr": "sum(count_over_time(({container=\"$container\", pod=~\"$pod\"})[$__interval])) by (stream)", - "hide": false, - "queryType": "range", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Count of stderr / stdout historical", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:188", - "format": "none", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:189", - "format": "short", - "label": "", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - } - ], - "refresh": "30s", - "schemaVersion": 37, - "style": "dark", - "tags": [ - "Loki", - "logging" - ], - "templating": { - "list": [ - { - "current": {}, - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "definition": "label_values({container=~\".+\"}, container)", - "hide": 0, - "includeAll": false, - "label": "Service", - "multi": false, - "name": "container", - "options": [], - "query": "label_values({container=~\".+\"}, container)", - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": {}, - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "definition": "label_values({container=\"$container\"}, pod)", - "hide": 0, - "includeAll": true, - "label": "Pod", - "multi": false, - "name": "pod", - "options": [], - "query": "label_values({container=\"$container\"}, pod)", - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": {}, - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "definition": "label_values({container=\"$container\"}, stream)", - "hide": 0, - "includeAll": true, - "label": "Stream", - "multi": false, - "name": "stream", - "options": [], - "query": "label_values({container=\"$container\"}, stream)", - "refresh": 2, - "regex": "", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": false, - "text": "error", - "value": "error" - }, - "hide": 0, - "label": "Search (case insensitive)", - "name": "searchable_pattern", - "options": [ - { - "selected": true, - "text": "", - "value": "" - } - ], - "query": "", - "skipUrlSync": false, - "type": "textbox" - } - ] - }, - "time": { - "from": "now-15m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Logging Dashboard via Loki", - "uid": "fRIvzUZMzz", - "version": 1, - "weekStart": "" -} diff --git a/infrastructure/loki/dashboards/troubleshoot-namespace.json b/infrastructure/loki/dashboards/troubleshoot-namespace.json deleted file mode 100644 index 21ee898f8d30418e217ba32e694382a0a236bc51..0000000000000000000000000000000000000000 --- a/infrastructure/loki/dashboards/troubleshoot-namespace.json +++ /dev/null @@ -1,3032 +0,0 @@ -{ - "__inputs": [ - { - "name": "DS_PROMETHEUS", - "label": "DS_PROMETHEUS", - "description": "", - "type": "datasource", - "pluginId": "prometheus", - "pluginName": "Prometheus" - } - ], - "__elements": {}, - "__requires": [ - { - "type": "panel", - "id": "bargauge", - "name": "Bar gauge", - "version": "" - }, - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "9.1.6" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph (old)", - "version": "" - }, - { - "type": "panel", - "id": "logs", - "name": "Logs", - "version": "" - }, - { - "type": "datasource", - "id": "loki", - "name": "Loki", - "version": "1.0.0" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "1.0.0" - }, - { - "type": "panel", - "id": "stat", - "name": "Stat", - "version": "" - }, - { - "type": "panel", - "id": "table", - "name": "Table", - "version": "" - } - ], - "annotations": { - "list": [ - { - "$$hashKey": "object:1522", - "builtIn": 1, - "datasource": { - "type": "datasource", - "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": "Simple and fast Troubleshooting Dashboard for kubernetes ", - "editable": true, - "fiscalYearStartMonth": 0, - "gnetId": 15196, - "graphTooltip": 0, - "id": null, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 41, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "refId": "A" - } - ], - "title": "Namespace $namespace details", - "type": "row" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get nodes\n-\n\nFor more details use dashboards:\n- \n- Default / Nodes", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "#d44a3a", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 0, - "y": 1 - }, - "id": 126, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "count(kube_node_info)", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Total nodes", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get namespace\n-", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 3, - "y": 1 - }, - "id": 130, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "none", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "count(kube_namespace_created)", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Namespaces", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get pod \n-", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "#d44a3a", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 6, - "y": 1 - }, - "id": 91, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "editorMode": "code", - "expr": "sum(kube_pod_info{namespace=\"$namespace\"})", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "", - "hide": true, - "refId": "B" - } - ], - "title": "Total pods", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get pods |grep Running\n-", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 9, - "y": 1 - }, - "id": 44, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "count(kube_pod_container_status_ready{namespace=\"$namespace\"} !=0 ) or vector(0)", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "{{pod}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "", - "hide": true, - "refId": "B" - } - ], - "title": "Ready pods", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get pods |grep -v Running", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "dark-red", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 12, - "y": 1 - }, - "id": 45, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "count(kube_pod_container_status_waiting{namespace=\"$namespace\"} !=0 ) or vector(0)", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "{{pod}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "", - "hide": true, - "refId": "B" - } - ], - "title": "Waiting pods/container", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "dark-yellow", - "value": 1 - }, - { - "color": "dark-red", - "value": 3 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 15, - "y": 1 - }, - "id": 42, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "count(kube_pod_container_status_terminated{namespace=\"$namespace\"} !=0 ) or vector(0)", - "hide": false, - "instant": false, - "legendFormat": "{{pod}}", - "refId": "A" - } - ], - "title": "Terminated pods", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get nodes (filter by Age)\n-", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 18, - "y": 1 - }, - "id": 132, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "value" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "sum(time() - kube_service_created{namespace=\"default\",service=\"kubernetes\"})", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Cluster Age", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "similar to: kubectl get deployments\n-", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "#d44a3a", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 0, - "y": 4 - }, - "id": 53, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "count(kube_deployment_created{namespace=\"$namespace\"})", - "hide": false, - "instant": false, - "legendFormat": "{{deployment}}", - "refId": "A" - } - ], - "title": "Deployments", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get configmap\n-", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "#d44a3a", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 3, - "y": 4 - }, - "id": 127, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "count(kube_configmap_created{namespace=\"$namespace\"})", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "ConfigMaps", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get ingress\n-", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 6, - "y": 4 - }, - "id": 128, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "count(kube_ingress_created{namespace=\"$namespace\"})", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Ingress", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to: kubectl get secrets\n-", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "rgb(31, 120, 193)", - "mode": "fixed" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 9, - "y": 4 - }, - "id": 129, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "count(kube_secret_created{namespace=\"$namespace\"})", - "hide": false, - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Secrets", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Show Persisten Volumes\n-\n\nFor more details use dashboard\n-\n- Default / kubernetes / Persistent Volumes", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "color": "#37872D", - "text": "0" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 12, - "y": 4 - }, - "id": 52, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "none", - "graphMode": "area", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "count(kube_persistentvolumeclaim_info{namespace=\"$namespace\"}) ", - "hide": false, - "instant": false, - "legendFormat": "{{pod}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "", - "hide": true, - "refId": "B" - } - ], - "title": "PVCs", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "match": "null", - "result": { - "color": "#37872D", - "text": "0" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "#d44a3a" - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 15, - "y": 4 - }, - "id": 107, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ] - }, - "graphMode": "area", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": true - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "count(kube_persistentvolume_status_phase{job=\"kube-state-metrics\",phase=\"Pending\",namespace=\"$namespace\"} != 0)", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "PVCs Pending", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "match": "null", - "result": { - "color": "#37872D", - "text": "0" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "dark-red", - "value": 1 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 3, - "x": 18, - "y": 4 - }, - "id": 106, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ] - }, - "graphMode": "area", - "justifyMode": "center", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": true - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "count(kube_persistentvolume_status_phase{job=\"kube-state-metrics\",phase=\"Failed\",namespace=\"$namespace\"} != 0) ", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "PVCs Failed", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to run: kubectl -n $namespace get pod -o wide\n-\n-\n\nFor more detail use dashboards: \n- \n- Default / Kubernetes / Compute Resources / Workload\n- Default / Logs by App \n- Default / Data and Info\n\n", - "fieldConfig": { - "defaults": { - "custom": { - "displayMode": "color-text", - "filterable": true, - "inspect": false - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "text", - "value": null - } - ] - }, - "unit": "decbytes" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Status" - }, - "properties": [ - { - "id": "mappings", - "value": [ - { - "options": { - "0": { - "index": 1, - "text": "Down" - }, - "1": { - "index": 0, - "text": "Up" - } - }, - "type": "value" - }, - { - "options": { - "match": "null", - "result": { - "color": "dark-purple", - "index": 2, - "text": "N/A" - } - }, - "type": "special" - } - ] - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red", - "value": null - }, - { - "color": "dark-green", - "value": 1 - } - ] - } - }, - { - "id": "custom.displayMode", - "value": "color-background" - }, - { - "id": "custom.width", - "value": 82 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Age" - }, - "properties": [ - { - "id": "custom.width", - "value": 87 - }, - { - "id": "unit", - "value": "s" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "pod_ip" - }, - "properties": [ - { - "id": "custom.width", - "value": 136 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "pod" - }, - "properties": [ - { - "id": "custom.width", - "value": 833 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "node" - }, - "properties": [ - { - "id": "custom.width", - "value": 235 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Restarts" - }, - "properties": [ - { - "id": "unit", - "value": "none" - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "dark-green", - "value": null - }, - { - "color": "dark-yellow", - "value": 4 - }, - { - "color": "red", - "value": 6 - } - ] - } - }, - { - "id": "custom.displayMode", - "value": "color-text" - }, - { - "id": "custom.width", - "value": 89 - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 23, - "x": 0, - "y": 7 - }, - "id": 104, - "links": [], - "options": { - "angular": { - "columns": [], - "fontSize": "100%", - "options": {}, - "showHeader": true, - "sort": { - "col": 0, - "desc": true - }, - "styles": [ - { - "alias": "Time", - "align": "auto", - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "pattern": "Time", - "type": "hidden" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "decimals": 2, - "pattern": "/pod.*/", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "node", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "__name__", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "/created.*/", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "/prom.*/", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "/job/", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "service", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "instance", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "endpoint", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "uid", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "", - "thresholds": [], - "type": "number", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "namespace", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "Value", - "thresholds": [], - "type": "string", - "unit": "short", - "valueMaps": [] - } - ], - "transform": "table" - }, - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "frameIndex": 0, - "showHeader": true, - "sortBy": [ - { - "desc": true, - "displayName": "Restarts" - } - ] - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "kube_pod_container_status_ready{namespace=\"$namespace\"}", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "kube_pod_container_status_restarts_total{namespace=\"$namespace\"}", - "format": "table", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "kube_pod_info{namespace=\"$namespace\"}", - "format": "table", - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "time() - kube_pod_start_time{namespace=\"$namespace\"}", - "format": "table", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "D" - } - ], - "title": "pods running in $namespace", - "transformations": [ - { - "id": "filterFieldsByName", - "options": { - "include": { - "names": [ - "pod", - "Value #A", - "host_ip", - "node", - "pod_ip", - "Value #D", - "Value #B" - ] - } - } - }, - { - "id": "seriesToColumns", - "options": { - "byField": "pod" - } - }, - { - "id": "organize", - "options": { - "excludeByName": { - "host_ip": true - }, - "indexByName": { - "Value #A": 2, - "Value #B": 3, - "Value #D": 1, - "host_ip": 5, - "node": 6, - "pod": 0, - "pod_ip": 4 - }, - "renameByName": { - "Value #A": "Status", - "Value #B": "Restarts", - "Value #C": "Age", - "Value #D": "Age" - } - } - } - ], - "transparent": true, - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "The CrashLoopBackOff:\n-\n\n* Insufficient resources—lack of resources prevents the container from loading\n* Locked file—a file was already locked by another container\n* Locked database—the database is being used and locked by other pods\n* Failed reference—reference to scripts or binaries that are not present on the container\n* Setup error—an issue with the init-container setup in Kubernetes\n* Config loading error—a server cannot load the configuration file\n* Misconfigurations—a general file system misconfiguration\n* Connection issues—DNS or kube-DNS is not able to connect to a third-party service\n* Deploying failed services—an attempt to deploy services/applications that have already failed (e.g. due to a lack of access to other services)\n\nThe ImagePullBackOff:\n-----------------------------------\n\nmeans that a Pod couldn’t start because Kubernetes could not pull a container image. The ‘BackOff’ part indicates that Kubernetes will keep trying to pull the image, with an increasing back-off delay. \n- check if image exist\n- check if image tag is correct\n- check if you have the secret to pull image from private registry\n- check if the value \"imagePullSecrets\" is right configured in your deployment (use GIT repo to check it)\n\n-\n\nFor more details use dashboards: \n-\n- Default / Logs by App\n- Default / Data and Info", - "fieldConfig": { - "defaults": { - "color": { - "fixedColor": "light-blue", - "mode": "fixed" - }, - "custom": { - "align": "left", - "displayMode": "auto", - "filterable": true, - "inspect": false - }, - "mappings": [ - { - "options": { - "CrashLoopBackOff": { - "color": "dark-red", - "index": 2 - }, - "ImagePullBackOff": { - "color": "dark-orange", - "index": 1 - } - }, - "type": "value" - }, - { - "options": { - "match": "null", - "result": { - "color": "semi-dark-purple", - "index": 0, - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "reason" - }, - "properties": [ - { - "id": "custom.width", - "value": 254 - }, - { - "id": "custom.displayMode", - "value": "color-background" - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "pod" - }, - "properties": [ - { - "id": "custom.width", - "value": 523 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Value" - }, - "properties": [ - { - "id": "custom.width", - "value": 49 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "__name__" - }, - "properties": [ - { - "id": "custom.width", - "value": 76 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "uid" - }, - "properties": [ - { - "id": "custom.width", - "value": 89 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "namespace" - }, - "properties": [ - { - "id": "custom.width", - "value": 108 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "container" - }, - "properties": [ - { - "id": "custom.width", - "value": 227 - } - ] - } - ] - }, - "gridPos": { - "h": 5, - "w": 23, - "x": 0, - "y": 15 - }, - "id": 131, - "links": [], - "maxDataPoints": 100, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "kube_pod_container_status_waiting_reason{namespace=\"$namespace\"}", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "POD Status waiting reason", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": { - "Time": true, - "Value": true, - "__name__": true, - "job": true, - "uid": true - }, - "indexByName": { - "Time": 0, - "Value": 9, - "__name__": 1, - "container": 4, - "instance": 6, - "job": 7, - "namespace": 2, - "pod": 3, - "reason": 5, - "uid": 8 - }, - "renameByName": {} - } - } - ], - "transparent": true, - "type": "table" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to run: kubectl get pv \n-\n\n-\n\nFor more detail use dashboard: \n-\n- Default / Kubernetes / Persistent Volumes", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [ - { - "options": { - "match": "null", - "result": { - "color": "#37872D", - "text": "0" - } - }, - "type": "special" - } - ], - "max": 1, - "min": 0, - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "#299c46", - "value": null - }, - { - "color": "#37872D", - "value": 0 - }, - { - "color": "#d44a3a" - } - ] - }, - "unit": "percentunit" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 7, - "x": 0, - "y": 20 - }, - "id": 105, - "links": [], - "maxDataPoints": 100, - "options": { - "displayMode": "lcd", - "minVizHeight": 10, - "minVizWidth": 0, - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "showUnfilled": true, - "text": {} - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "kubelet_volume_stats_available_bytes{job=\"kubelet\",metrics_path=\"/metrics\",namespace=\"$namespace\"}\n / kubelet_volume_stats_capacity_bytes{job=\"kubelet\",metrics_path=\"/metrics\",namespace=\"$namespace\"}\n ", - "format": "time_series", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "{{persistentvolumeclaim}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "", - "hide": true, - "refId": "B" - } - ], - "title": "PVCs available capacity in namespacee $namespace", - "type": "bargauge" - }, - { - "aliasColors": { - "ReadOnly::k8s-aboutmckinsey-intranet-aboutmckinsey-prod-pvc-0::intranet-aboutmckinsey-prod-85c4d8fcd6-cq4vv": "dark-red", - "Total": "dark-red" - }, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "fieldConfig": { - "defaults": { - "links": [] - }, - "overrides": [] - }, - "fill": 0, - "fillGradient": 0, - "gridPos": { - "h": 6, - "w": 8, - "x": 7, - "y": 20 - }, - "hiddenSeries": false, - "id": 50, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "9.1.6", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "(kube_persistentvolumeclaim_access_mode{namespace=\"$namespace\"})", - "format": "time_series", - "hide": false, - "interval": "", - "legendFormat": "{{access_mode}}::{{persistentvolumeclaim}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "expr": "kube_persistentvolumeclaim_status_phase{namespace=\"$namespace\",phase=\"Bound\"}", - "legendFormat": "Bound::{{persistentvolumeclaim}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "PersistentVolumeClaim status in namespace $namespace", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:1197", - "format": "none", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:1198", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "description": "Similar to run: kubectl get ingress\n-", - "fieldConfig": { - "defaults": { - "custom": { - "displayMode": "auto", - "filterable": false, - "inspect": false - }, - "mappings": [], - "noValue": "--", - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "dark-green", - "value": null - } - ] - }, - "unit": "none" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "pod" - }, - "properties": [ - { - "id": "custom.width", - "value": 241 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "host_ip" - }, - "properties": [ - { - "id": "custom.width", - "value": 104 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "pod_ip" - }, - "properties": [ - { - "id": "custom.width", - "value": 111 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "node" - }, - "properties": [ - { - "id": "custom.width", - "value": 202 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Memory usage" - }, - "properties": [ - { - "id": "custom.width", - "value": 131 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "Status" - }, - "properties": [ - { - "id": "custom.width", - "value": 65 - }, - { - "id": "mappings", - "value": [ - { - "options": { - "0": { - "text": "Down" - }, - "1": { - "text": "Up" - } - }, - "type": "value" - } - ] - }, - { - "id": "thresholds", - "value": { - "mode": "absolute", - "steps": [ - { - "color": "dark-red", - "value": null - }, - { - "color": "dark-green", - "value": 1 - } - ] - } - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "host" - }, - "properties": [ - { - "id": "custom.width", - "value": 391 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "ingress" - }, - "properties": [ - { - "id": "custom.width", - "value": 266 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "service" - }, - "properties": [ - { - "id": "custom.width", - "value": 252 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "path" - }, - "properties": [ - { - "id": "custom.width", - "value": 117 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "service_name" - }, - "properties": [ - { - "id": "custom.width", - "value": 254 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "service_port" - }, - "properties": [ - { - "id": "custom.width", - "value": 106 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "service name" - }, - "properties": [ - { - "id": "custom.width", - "value": 381 - } - ] - }, - { - "matcher": { - "id": "byName", - "options": "port" - }, - "properties": [ - { - "id": "custom.width", - "value": 82 - } - ] - } - ] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 15, - "y": 20 - }, - "id": 125, - "links": [], - "options": { - "angular": { - "columns": [], - "fontSize": "100%", - "options": {}, - "showHeader": true, - "sort": { - "col": 0, - "desc": true - }, - "styles": [ - { - "alias": "Time", - "align": "auto", - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "pattern": "Time", - "type": "hidden" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "decimals": 2, - "pattern": "/pod.*/", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "node", - "thresholds": [], - "type": "string", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "__name__", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "/created.*/", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "/prom.*/", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "/job/", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "service", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "instance", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "endpoint", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "uid", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "", - "thresholds": [], - "type": "number", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "namespace", - "thresholds": [], - "type": "hidden", - "unit": "short" - }, - { - "alias": "", - "align": "auto", - "colors": [ - "rgba(245, 54, 54, 0.9)", - "rgba(237, 129, 40, 0.89)", - "rgba(50, 172, 45, 0.97)" - ], - "dateFormat": "YYYY-MM-DD HH:mm:ss", - "decimals": 2, - "mappingType": 1, - "pattern": "Value", - "thresholds": [], - "type": "string", - "unit": "short", - "valueMaps": [] - } - ], - "transform": "table" - }, - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "frameIndex": 0, - "showHeader": true, - "sortBy": [] - }, - "pluginVersion": "9.1.6", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "exemplar": true, - "expr": "kube_ingress_path{namespace=\"$namespace\"}", - "format": "table", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "Ingress in $namespace namespace", - "transformations": [ - { - "id": "organize", - "options": { - "excludeByName": {}, - "indexByName": {}, - "renameByName": { - "service_name": "service name", - "service_port": "port" - } - } - }, - { - "id": "filterFieldsByName", - "options": { - "include": { - "names": [ - "host", - "path", - "service name", - "port" - ] - } - } - } - ], - "type": "table" - }, - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "description": "Similar to: kubectl logs pod \n- \n-\n\nFor more info use dashboards\n-\n- Default / Logs by App\n\n", - "gridPos": { - "h": 6, - "w": 23, - "x": 0, - "y": 26 - }, - "id": 134, - "options": { - "dedupStrategy": "none", - "enableLogDetails": true, - "prettifyLogMessage": false, - "showCommonLabels": false, - "showLabels": true, - "showTime": false, - "sortOrder": "Descending", - "wrapLogMessage": true - }, - "targets": [ - { - "datasource": { - "type": "loki", - "uid": "loki-system" - }, - "expr": "{stream=~\"stderr\", namespace=\"$namespace\", container=\"$container_error\"}", - "instant": false, - "maxLines": 100, - "range": true, - "refId": "A" - } - ], - "title": "Last 100 error logs from container: $container_error", - "type": "logs" - } - ], - "refresh": false, - "schemaVersion": 37, - "style": "dark", - "tags": [ - "loki", - "logging" - ], - "templating": { - "list": [ - { - "allValue": "", - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "definition": "label_values(kube_node_created,node)", - "hide": 0, - "includeAll": true, - "multi": true, - "name": "node", - "options": [], - "query": { - "query": "label_values(kube_node_created,node)", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "", - "skipUrlSync": false, - "sort": 5, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "definition": "query_result(kube_namespace_labels)", - "hide": 0, - "includeAll": false, - "multi": false, - "name": "namespace", - "options": [], - "query": { - "query": "query_result(kube_namespace_labels)", - "refId": "Prometheus-namespace-Variable-Query" - }, - "refresh": 1, - "regex": "/.*namespace=\"([^\"]*).*/", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": {}, - "datasource": { - "type": "prometheus", - "uid": "${DS_PROMETHEUS}" - }, - "definition": "kube_pod_container_info{namespace=\"$namespace\"}", - "hide": 0, - "includeAll": false, - "label": "container_error", - "multi": false, - "name": "container_error", - "options": [], - "query": { - "query": "kube_pod_container_info{namespace=\"$namespace\"}", - "refId": "StandardVariableQuery" - }, - "refresh": 1, - "regex": "/.*container=\"([^\"]*).*/", - "skipUrlSync": false, - "sort": 0, - "tagValuesQuery": "", - "tagsQuery": "", - "type": "query", - "useTags": false - }, - { - "current": { - "selected": true, - "text": "5m", - "value": "5m" - }, - "hide": 0, - "includeAll": false, - "label": "duration", - "multi": false, - "name": "duration", - "options": [ - { - "selected": true, - "text": "5m", - "value": "5m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "2h", - "value": "2h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "2d", - "value": "2d" - }, - { - "selected": false, - "text": "5d", - "value": "5d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "5m,10m,30m,1h,2h,6h,12h,1d,2d,5d,14d,30d", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "now-5m", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ] - }, - "timezone": "", - "title": "Troubleshooting Kubernetes (simple and fast view)", - "uid": "N9uZBy8Wz", - "version": 3, - "weekStart": "" -} diff --git a/infrastructure/loki/kustomization.yaml b/infrastructure/loki/kustomization.yaml deleted file mode 100644 index 3ceda0fc8769c2f5579a04ae37a160a2837a7478..0000000000000000000000000000000000000000 --- a/infrastructure/loki/kustomization.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: loki-system -resources: - - namespace.yaml - - repository.yaml - - loki.yaml - - promtail.yaml - - ../../shared/networkpolicies/allow-from-monitoring.yaml - - ../../shared/networkpolicies/allow-from-same-namespace.yaml -patchesStrategicMerge: - - networkpolicy.yaml -configMapGenerator: - - name: loki-system-grafana-dashboards - files: - - ./dashboards/loki-logs-quick.json - - ./dashboards/troubleshoot-namespace.json - options: - labels: - grafana_dashboard: loki-system diff --git a/infrastructure/loki/loki.yaml b/infrastructure/loki/loki.yaml deleted file mode 100644 index 55bb100203e3f17c71adaa21ba83620d80ee5809..0000000000000000000000000000000000000000 --- a/infrastructure/loki/loki.yaml +++ /dev/null @@ -1,180 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: loki - namespace: loki-system -spec: - releaseName: loki - chart: - spec: - chart: loki - sourceRef: - kind: HelmRepository - name: grafana - namespace: loki-system - version: 3.10.0 - interval: 5m - upgrade: - remediation: - retries: -1 - crds: CreateReplace - install: - remediation: - retries: -1 - crds: CreateReplace - valuesFrom: - - kind: ConfigMap - name: loki-base-values - valuesKey: values.yaml - - kind: Secret - name: loki-override-values - valuesKey: values-overrides.yaml - optional: true ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: loki-base-values - namespace: loki-system -data: - values.yaml: | - loki: - auth_enabled: false - commonConfig: - replication_factor: 1 - storage: - type: s3 - s3: - endpoint: loki-minio.loki-system.svc.cluster.local:9000 - insecure: true - accessKeyId: loki - secretAccessKey: supersecret - s3ForcePathStyle: true - compactor: - shared_store: s3 - compaction_interval: 10m - retention_enabled: true - retention_delete_delay: 2h - retention_delete_worker_count: 150 - limits_config: - retention_period: 14d - read: - replicas: 2 - write: - replicas: 2 - ruler: - enabled: false - monitoring: - enabled: true - selfMonitoring: - grafanaAgent: - installOperator: false - networkPolicy: - enabled: false - minio: - enabled: true - mode: standalone - rootUser: loki - rootPassword: supersecret - persistence: - size: 50Gi - networkPolicy: - enabled: true ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: allow-from-grafana -spec: - policyTypes: - - Ingress - ingress: - - from: - - namespaceSelector: - matchLabels: - monitoring.shivering-isles.com/network-access-required: "true" - podSelector: - matchLabels: - app.kubernetes.io/name: grafana - podSelector: - matchLabels: - app.kubernetes.io/component: gateway - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: allow-ingress-to-loki -spec: - ingress: - - from: - - namespaceSelector: - matchLabels: - ingress.shivering-isles.com/network-access-required: "true" - ports: - - port: http - protocol: TCP - podSelector: - matchExpressions: - - key: app.kubernetes.io/component - operator: In - values: - - gateway - matchLabels: - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - policyTypes: - - Ingress ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: allow-loki-metrics - namespace: loki-system -spec: - ingress: - - ports: - - port: http-metrics - protocol: TCP - podSelector: - matchLabels: - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - policyTypes: - - Ingress ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: allow-loki-minio - namespace: loki-system -spec: - ingress: - - ports: - - port: 9000 - protocol: TCP - podSelector: - matchLabels: - release: loki - policyTypes: - - Ingress ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: datasource-loki - namespace: loki-system - labels: - grafana_datasource: "1" -data: - loki-stack-datasource.yaml: |- - apiVersion: 1 - datasources: - - name: Loki - type: loki - access: proxy - uid: loki-system - url: http://loki-gateway.loki-system.svc.cluster.local - version: 1 - isDefault: false diff --git a/infrastructure/loki/namespace.yaml b/infrastructure/loki/namespace.yaml deleted file mode 100644 index 50dcee84aed9057e26af6fa50eb9895eaa0f324b..0000000000000000000000000000000000000000 --- a/infrastructure/loki/namespace.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: loki-system - labels: - kyverno.shivering-isles.com/class: "system" - pod-security.kubernetes.io/enforce: privileged - pod-security.kubernetes.io/audit: privileged - pod-security.kubernetes.io/warn: privileged - pod-security.kubernetes.io/audit-version: v1.23 - pod-security.kubernetes.io/enforce-version: v1.23 - pod-security.kubernetes.io/warn-version: v1.23 diff --git a/infrastructure/loki/networkpolicy.yaml b/infrastructure/loki/networkpolicy.yaml deleted file mode 100644 index ac6be27a3d659b793e2132c2a8572cdd4f4a2de6..0000000000000000000000000000000000000000 --- a/infrastructure/loki/networkpolicy.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: allow-from-monitoring -spec: - podSelector: - matchLabels: - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki diff --git a/infrastructure/loki/promtail.yaml b/infrastructure/loki/promtail.yaml deleted file mode 100644 index 635888842194317e0dab3a894a7a22b3637b0ffd..0000000000000000000000000000000000000000 --- a/infrastructure/loki/promtail.yaml +++ /dev/null @@ -1,105 +0,0 @@ -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: promtail - namespace: loki-system -spec: - releaseName: promtail - chart: - spec: - chart: promtail - sourceRef: - kind: HelmRepository - name: grafana - namespace: loki-system - version: 6.8.2 - interval: 5m - upgrade: - remediation: - retries: -1 - crds: CreateReplace - install: - remediation: - retries: -1 - crds: CreateReplace - valuesFrom: - - kind: ConfigMap - name: promtail-base-values - valuesKey: values.yaml - - kind: Secret - name: promtail-override-values - valuesKey: values-overrides.yaml - optional: true ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: promtail-base-values - namespace: loki-system -data: - values.yaml: | - serviceMonitor: - enabled: true - networkPolicy: - enabled: false - # Required for journald collection - containerSecurityContext: - privileged: true - capabilities: null - allowPrivilegeEscalation: true - config: - snippets: - extraScrapeConfigs: | - # Add an additional scrape config for journald - - job_name: journal - journal: - path: /var/log/journal - max_age: 12h - labels: - job: systemd-journal - relabel_configs: - - source_labels: - - __journal__hostname - target_label: hostname - - # example label values: kubelet.service, containerd.service - - source_labels: - - __journal__systemd_unit - target_label: unit - - # example label values: debug, notice, info, warning, error - - source_labels: - - __journal_priority_keyword - target_label: level - - # Mount journal directory and machine-id file into promtail pods - extraVolumes: - - name: journal - hostPath: - path: /var/log/journal - - name: machine-id - hostPath: - path: /etc/machine-id - - extraVolumeMounts: - - name: journal - mountPath: /var/log/journal - readOnly: true - - name: machine-id - mountPath: /etc/machine-id - readOnly: true ---- ---- -apiVersion: networking.k8s.io/v1 -kind: NetworkPolicy -metadata: - name: allow-from-monitoring-promtail -spec: - ingress: - - ports: - - port: http-metrics - protocol: TCP - podSelector: - matchLabels: - app.kubernetes.io/instance: promtail - app.kubernetes.io/name: promtail diff --git a/infrastructure/loki/repository.yaml b/infrastructure/loki/repository.yaml deleted file mode 100644 index 0fb22c30c06c5717a510f4a12186bf99e24c2807..0000000000000000000000000000000000000000 --- a/infrastructure/loki/repository.yaml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: grafana - namespace: loki-system -spec: - interval: 30m - url: https://grafana.github.io/helm-charts