diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-multi-cluster.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-multi-cluster.json new file mode 100644 index 000000000..201e5046b --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-multi-cluster.json @@ -0,0 +1,1028 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "otel" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumes node CPU idle time is available.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "1 - (sum(rate(k8s_node_cpu_time_seconds_total{state=\"idle\"}[5m])) / sum(rate(k8s_node_cpu_time_seconds_total[5m])))", + "instant": true, + "refId": "A" + } + ], + "title": "CPU Utilisation", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Allocatable CPU not enabled; showing total requests.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 2, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_cpu_request)", + "instant": true, + "refId": "A" + } + ], + "title": "CPU Requests", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Allocatable CPU not enabled; showing total limits.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cores" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 3, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_cpu_limit)", + "instant": true, + "refId": "A" + } + ], + "title": "CPU Limits", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumes usage plus available approximates node memory total.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 4, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_node_memory_usage_bytes) / (sum(k8s_node_memory_usage_bytes) + sum(k8s_node_memory_available_bytes))", + "instant": true, + "refId": "A" + } + ], + "title": "Memory Utilisation", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Allocatable memory not enabled; showing total requests.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 16, + "y": 0 + }, + "id": 5, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_request_bytes)", + "instant": true, + "refId": "A" + } + ], + "title": "Memory Requests", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Allocatable memory not enabled; showing total limits.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 3, + "w": 4, + "x": 20, + "y": 0 + }, + "id": 6, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_limit_bytes)", + "instant": true, + "refId": "A" + } + ], + "title": "Memory Limits", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Uses OTel pod CPU time rate.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 3 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(k8s_pod_cpu_time_seconds_total[5m])) by (k8s_cluster_name)", + "legendFormat": "{{k8s_cluster_name}}", + "range": true, + "refId": "A" + } + ], + "title": "CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Usage is pod CPU time rate; requests and limits are container gauges.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Cluster" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down", + "url": "/d/efa86fd1d0c121a26444b636a3f509a8/kubernetes-compute-resources-cluster?${datasource:queryparam}&var-cluster=${__data.fields.Cluster}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 10 + }, + "id": 8, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(k8s_pod_cpu_time_seconds_total[5m])) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_container_cpu_request) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(k8s_pod_cpu_time_seconds_total[5m])) by (k8s_cluster_name) / sum(k8s_container_cpu_request) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_container_cpu_limit) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(k8s_pod_cpu_time_seconds_total[5m])) by (k8s_cluster_name) / sum(k8s_container_cpu_limit) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "E" + } + ], + "title": "CPU Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "cluster", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "cluster": 5 + }, + "renameByName": { + "Value #A": "CPU Usage", + "Value #B": "CPU Requests", + "Value #C": "CPU Requests %", + "Value #D": "CPU Limits", + "Value #E": "CPU Limits %", + "cluster": "Cluster" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "RSS without cache unavailable; using pod memory usage.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 17 + }, + "id": 9, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_pod_memory_usage_bytes) by (k8s_cluster_name)", + "legendFormat": "{{k8s_cluster_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Usage is pod memory usage; requests and limits are container gauges.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Cluster" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down", + "url": "/d/efa86fd1d0c121a26444b636a3f509a8/kubernetes-compute-resources-cluster?${datasource:queryparam}&var-cluster=${__data.fields.Cluster}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 24 + }, + "id": 10, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_pod_memory_usage_bytes) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_container_memory_request_bytes) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_pod_memory_usage_bytes) by (k8s_cluster_name) / sum(k8s_container_memory_request_bytes) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_container_memory_limit_bytes) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_pod_memory_usage_bytes) by (k8s_cluster_name) / sum(k8s_container_memory_limit_bytes) by (k8s_cluster_name)", + "format": "table", + "instant": true, + "refId": "E" + } + ], + "title": "Memory Requests by Cluster", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "cluster", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "cluster": 5 + }, + "renameByName": { + "Value #A": "Memory Usage", + "Value #B": "Memory Requests", + "Value #C": "Memory Requests %", + "Value #D": "Memory Limits", + "Value #E": "Memory Limits %", + "cluster": "Cluster" + } + } + } + ], + "type": "table" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Compute Resources / Multi-Cluster - OTEL", + "version": 6 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-namespace-workloads.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-namespace-workloads.json new file mode 100644 index 000000000..7ae7ebb63 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-namespace-workloads.json @@ -0,0 +1,1586 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "otel" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Namespace requests/limits replace quota.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "B" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "fill": "dash" + } + }, + { + "id": "custom.lineWidth", + "value": 2 + }, + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "C" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "fill": "dash" + } + }, + { + "id": "custom.lineWidth", + "value": 2 + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"}[$__rate_interval]))", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_cpu_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "legendFormat": "requests", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_cpu_limit{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "legendFormat": "limits", + "refId": "C" + } + ], + "title": "CPU Usage by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Pod view replaces workload owner recording rule.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod Ready" + }, + "properties": [ + { + "id": "unit", + "value": "none" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 2, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "min by (k8s_pod_name) (k8s_container_ready{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_container_cpu_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"}[$__rate_interval])) / sum by (k8s_pod_name) (k8s_container_cpu_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_container_cpu_limit{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"}[$__rate_interval])) / sum by (k8s_pod_name) (k8s_container_cpu_limit{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "F" + } + ], + "title": "CPU by Pod", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true + }, + "indexByName": { + "Value #A": 1, + "Value #B": 2, + "Value #C": 3, + "Value #D": 4, + "Value #E": 5, + "Value #F": 6, + "k8s_pod_name": 0 + }, + "renameByName": { + "Value #A": "Pod Ready", + "Value #B": "CPU Usage", + "Value #C": "CPU Requests", + "Value #D": "CPU Requests %", + "Value #E": "CPU Limits", + "Value #F": "CPU Limits %", + "k8s_pod_name": "Pod" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Namespace requests/limits replace quota.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "B" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "fill": "dash" + } + }, + { + "id": "custom.lineWidth", + "value": 2 + }, + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "C" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "fill": "dash" + } + }, + { + "id": "custom.lineWidth", + "value": 2 + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_pod_memory_working_set_bytes{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "legendFormat": "requests", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_limit{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "legendFormat": "limits", + "refId": "C" + } + ], + "title": "Memory Usage by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Pod view replaces workload owner recording rule.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod Ready" + }, + "properties": [ + { + "id": "unit", + "value": "none" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 4, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "min by (k8s_pod_name) (k8s_container_ready{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_pod_memory_working_set_bytes{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_container_memory_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_pod_memory_working_set_bytes{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"}) / sum by (k8s_pod_name) (k8s_container_memory_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_container_memory_limit{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_pod_memory_working_set_bytes{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"}) / sum by (k8s_pod_name) (k8s_container_memory_limit{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"})", + "format": "table", + "instant": true, + "refId": "F" + } + ], + "title": "Memory by Pod", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true + }, + "indexByName": { + "Value #A": 1, + "Value #B": 2, + "Value #C": 3, + "Value #D": 4, + "Value #E": 5, + "Value #F": 6, + "k8s_pod_name": 0 + }, + "renameByName": { + "Value #A": "Pod Ready", + "Value #B": "Memory Usage", + "Value #C": "Memory Requests", + "Value #D": "Memory Requests %", + "Value #E": "Memory Limits", + "Value #F": "Memory Limits %", + "k8s_pod_name": "Pod" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Network errors replace dropped packets.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Bandwidth/" + }, + "properties": [ + { + "id": "unit", + "value": "bps" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Packets/" + }, + "properties": [ + { + "id": "unit", + "value": "pps" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 5, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_packets_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_packets_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_errors_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_errors_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "F" + } + ], + "title": "Current Network Usage by Pod", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true + }, + "indexByName": { + "Value #A": 1, + "Value #B": 2, + "Value #C": 3, + "Value #D": 4, + "Value #E": 5, + "Value #F": 6, + "k8s_pod_name": 0 + }, + "renameByName": { + "Value #A": "Current Receive Bandwidth", + "Value #B": "Current Transmit Bandwidth", + "Value #C": "Rate of Received Packets", + "Value #D": "Rate of Transmitted Packets", + "Value #E": "Rate of Receive Errors", + "Value #F": "Rate of Transmit Errors", + "k8s_pod_name": "Pod" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 35 + }, + "id": 6, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Receive Bandwidth by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 35 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Transmit Bandwidth by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Average across pod interfaces.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 42 + }, + "id": 8, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "avg by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Average Interface Receive Bandwidth by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Average across pod interfaces.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 42 + }, + "id": 9, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "avg by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Average Interface Transmit Bandwidth by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Uses network errors as closest metric.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 49 + }, + "id": 12, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_errors_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Rate of Receive Errors by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Uses network errors as closest metric.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 49 + }, + "id": 13, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_errors_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Rate of Transmit Errors by Pod", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_pod_cpu_time_seconds_total, cluster)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "label": "namespace", + "name": "namespace", + "options": [], + "query": "label_values(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\"}, k8s_namespace_name)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Compute Resources / Namespace (Workloads) - OTEL", + "version": 3 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-node-pods.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-node-pods.json new file mode 100644 index 000000000..4cfcdc2da --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-node-pods.json @@ -0,0 +1,1102 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes-mixin" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "max capacity" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.stacking", + "value": { + "mode": "none" + } + }, + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": true, + "viz": false + } + }, + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "max allocatable" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "super-light-red", + "mode": "fixed" + } + }, + { + "id": "custom.stacking", + "value": { + "mode": "none" + } + }, + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": true, + "viz": false + } + }, + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + }, + { + "id": "custom.fillOpacity", + "value": 0 + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum(k8s_node_cpu_capacity{k8s_node_name=~\"$node\"})", + "hide": false, + "legendFormat": "max capacity", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum(k8s_node_allocatable_cpu{k8s_node_name=~\"$node\"})", + "hide": false, + "legendFormat": "max allocatable", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{k8s_node_name=~\"$node\"}[5m]))", + "hide": false, + "legendFormat": "{{k8s_pod_name}}", + "range": true, + "refId": "C" + } + ], + "title": "CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/6581e46e4e5c7ba40a07646395ef7b23/k8s-resources-pod?${datasource:queryparam}&var-cluster=$cluster&var-namespace=$namespace&var-pod=${__data.fields.Pod}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 6 + }, + "id": 2, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{k8s_node_name=~\"$node\"}[5m]))", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_container_cpu_request{k8s_node_name=~\"$node\"})", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{k8s_node_name=~\"$node\"}[5m])) / (sum by(k8s_pod_name) (k8s_container_cpu_request{k8s_node_name=~\"$node\"}))", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_container_cpu_limit{k8s_node_name=~\"$node\"})", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{k8s_node_name=~\"$node\"}[5m])) / (sum by(k8s_pod_name) (k8s_container_cpu_limit{k8s_node_name=~\"$node\"}))", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "E" + } + ], + "title": "CPU Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "includeByName": {}, + "indexByName": {}, + "orderByMode": "manual", + "renameByName": { + "Value #A": "CPU Usage", + "Value #B": "CPU Requests", + "Value #C": "CPU Requests %", + "Value #D": "CPU Limits", + "Value #E": "CPU Limits %", + "k8s_pod_name": "Pod" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "max capacity" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.stacking", + "value": { + "mode": "none" + } + }, + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": true, + "viz": false + } + }, + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "max allocatable" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "super-light-red", + "mode": "fixed" + } + }, + { + "id": "custom.stacking", + "value": { + "mode": "none" + } + }, + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": true, + "viz": false + } + }, + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + }, + { + "id": "custom.fillOpacity", + "value": 0 + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 12 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum(k8s_node_memory_capacity_bytes{k8s_node_name=~\"$node\"})", + "legendFormat": "max capacity", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum(k8s_node_allocatable_memory_bytes{k8s_node_name=~\"$node\"})", + "legendFormat": "max allocatable", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_pod_memory_usage_bytes{k8s_node_name=~\"$node\"})", + "hide": false, + "legendFormat": "{{k8s_pod_name}}", + "range": true, + "refId": "C" + } + ], + "title": "Memory Usage (total)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "max capacity" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + }, + { + "id": "custom.stacking", + "value": { + "mode": "none" + } + }, + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": true, + "viz": false + } + }, + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "max allocatable" + }, + "properties": [ + { + "id": "color", + "value": { + "fixedColor": "super-light-red", + "mode": "fixed" + } + }, + { + "id": "custom.stacking", + "value": { + "mode": "none" + } + }, + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": true, + "viz": false + } + }, + { + "id": "custom.lineStyle", + "value": { + "dash": [ + 10, + 10 + ], + "fill": "dash" + } + }, + { + "id": "custom.fillOpacity", + "value": 0 + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 18 + }, + "id": 4, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum(k8s_node_memory_capacity_bytes{k8s_node_name=~\"$node\"})", + "legendFormat": "max capacity", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum(k8s_node_allocatable_memory_bytes{k8s_node_name=~\"$node\"})", + "legendFormat": "max allocatable", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_pod_memory_working_set_bytes{k8s_node_name=~\"$node\"})", + "legendFormat": "{{k8s_pod_name}}", + "range": true, + "refId": "C" + } + ], + "title": "Memory Usage (working set)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/6581e46e4e5c7ba40a07646395ef7b23/k8s-resources-pod?${datasource:queryparam}&var-cluster=$cluster&var-namespace=$namespace&var-pod=${__data.fields.Pod}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 24, + "x": 0, + "y": 24 + }, + "id": 5, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_pod_memory_usage_bytes{k8s_node_name=~\"$node\"})", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_container_memory_request_bytes{k8s_node_name=~\"$node\"})", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_pod_memory_usage_bytes{k8s_node_name=~\"$node\"}) / (sum by(k8s_pod_name) (k8s_container_memory_request_bytes{k8s_node_name=~\"$node\"}))", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_container_memory_limit_bytes{k8s_node_name=~\"$node\"})", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_pod_memory_usage_bytes{k8s_node_name=~\"$node\"}) / (sum by(k8s_pod_name) (k8s_container_memory_limit_bytes{k8s_node_name=~\"$node\"}))", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_pod_memory_working_set_bytes{k8s_node_name=~\"$node\"})", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_pod_memory_rss_bytes{k8s_node_name=~\"$node\"})", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "builder", + "expr": "sum by(k8s_pod_name) (k8s_pod_memory_usage_bytes{k8s_node_name=~\"$node\"}) - (sum by(k8s_pod_name) (k8s_pod_memory_working_set_bytes{k8s_node_name=~\"$node\"}))", + "format": "table", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "H" + } + ], + "title": "Memory Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "Time 8": true + }, + "renameByName": { + "Value #A": "Memory Usage", + "Value #B": "Memory Requests", + "Value #C": "Memory Requests %", + "Value #D": "Memory Limits", + "Value #E": "Memory Limits %", + "Value #F": "Memory Working Set", + "Value #G": "Memory RSS", + "Value #H": "Memory Reclaimable", + "k8s_pod_name": "Pod" + } + } + } + ], + "type": "table" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "kubernetes-mixin" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(k8s_pod_cpu_time_seconds_total,k8s_node_name)", + "label": "Node", + "multi": true, + "name": "node", + "options": [], + "query": { + "qryType": 1, + "query": "label_values(k8s_pod_cpu_time_seconds_total,k8s_node_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 2, + "type": "query" + } + ] +}, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Compute Resources / Node (Pods) - OTEL", + "uid": "200ac8fdbfbb74b39aff88118e4d1c2c2", + "version": 16 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-pod.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-pod.json new file mode 100644 index 000000000..feaf98f83 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-pod.json @@ -0,0 +1,2099 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes-mixin" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "B" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "fill": "dash" + } + }, + { + "id": "custom.lineWidth", + "value": 2 + }, + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "C" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "fill": "dash" + } + }, + { + "id": "custom.lineWidth", + "value": 2 + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(k8s_container_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}[$__rate_interval])) by (k8s_container_name)", + "legendFormat": "{{k8s_container_name}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_container_cpu_request{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"})", + "legendFormat": "requests", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_container_cpu_limit{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"})", + "legendFormat": "limits", + "range": true, + "refId": "C" + } + ], + "title": "CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: throttle metric unavailable; showing usage/limit.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "thresholds", + "axisLabel": "", + "axisPlacement": "auto", + "axisSoftMax": 1, + "axisSoftMin": 0, + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "dashed+area" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "A" + }, + "properties": [ + { + "id": "thresholds", + "value": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 0.25 + } + ] + } + }, + { + "id": "color", + "value": { + "mode": "thresholds", + "seriesBy": "lastNotNull" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 2, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_container_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}[$__rate_interval])) by (k8s_container_name) / sum(k8s_container_cpu_limit{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "legendFormat": "{{k8s_container_name}}", + "refId": "A" + } + ], + "title": "CPU Limit Utilization", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 3, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_container_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}[$__rate_interval])) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_cpu_request{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_container_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}[$__rate_interval])) by (k8s_container_name) / sum(k8s_container_cpu_request{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_cpu_limit{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_container_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}[$__rate_interval])) by (k8s_container_name) / sum(k8s_container_cpu_limit{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "E" + } + ], + "title": "CPU Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_container_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "container": 5 + }, + "renameByName": { + "Value #A": "CPU Usage", + "Value #B": "CPU Requests", + "Value #C": "CPU Requests %", + "Value #D": "CPU Limits", + "Value #E": "CPU Limits %", + "container": "Container", + "k8s_container_name": "Container" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byFrameRefID", + "options": "B" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "fill": "dash" + } + }, + { + "id": "custom.lineWidth", + "value": 2 + }, + { + "id": "color", + "value": { + "fixedColor": "red", + "mode": "fixed" + } + } + ] + }, + { + "matcher": { + "id": "byFrameRefID", + "options": "C" + }, + "properties": [ + { + "id": "custom.lineStyle", + "value": { + "fill": "dash" + } + }, + { + "id": "custom.lineWidth", + "value": 2 + }, + { + "id": "color", + "value": { + "fixedColor": "orange", + "mode": "fixed" + } + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 4, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_working_set_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "legendFormat": "{{k8s_container_name}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_request_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"})", + "legendFormat": "requests", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_limit_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"})", + "legendFormat": "limits", + "refId": "C" + } + ], + "title": "Memory Usage (WSS)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: RSS/cache/swap unavailable; using working set only.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 5, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_container_memory_working_set_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_request_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_working_set_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name) / sum(k8s_container_memory_request_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_limit_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_working_set_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name) / sum(k8s_container_memory_limit_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "E" + } + ], + "title": "Memory Quota", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_container_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Value #A": 6, + "Value #B": 7, + "Value #C": 8, + "Value #D": 9, + "Value #E": 10, + "k8s_container_name": 5 + }, + "renameByName": { + "Value #A": "Memory Usage", + "Value #B": "Memory Requests", + "Value #C": "Memory Requests %", + "Value #D": "Memory Limits", + "Value #E": "Memory Limits %", + "container": "Container", + "k8s_container_name": "Container" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 35 + }, + "id": 6, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\", direction=\"receive\"}[$__rate_interval])) by (k8s_pod_name)", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Receive Bandwidth", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 35 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\", direction=\"transmit\"}[$__rate_interval])) by (k8s_pod_name)", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Transmit Bandwidth", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: packet counters unavailable; showing receive errors.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 42 + }, + "id": 8, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\", direction=\"receive\"}[$__rate_interval])) by (k8s_pod_name)", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Receive Errors", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: packet counters unavailable; showing transmit errors.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 42 + }, + "id": 9, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\", direction=\"transmit\"}[$__rate_interval])) by (k8s_pod_name)", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Transmit Errors", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: IO drop metrics unavailable; showing filesystem usage.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 49 + }, + "id": 10, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_pod_filesystem_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\"}) by (k8s_pod_name)", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Pod Filesystem Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: IO drop metrics unavailable; showing usage/capacity.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 49 + }, + "id": 11, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_pod_filesystem_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\"}) by (k8s_pod_name) / sum(k8s_pod_filesystem_capacity_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\"}) by (k8s_pod_name)", + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Pod Filesystem Utilization", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: IO counters unavailable; showing available bytes.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 56 + }, + "id": 12, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_pod_filesystem_available_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\"}) by (k8s_pod_name)", + "legendFormat": "Available", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_pod_filesystem_capacity_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"$pod\"}) by (k8s_pod_name)", + "legendFormat": "Capacity", + "refId": "B" + } + ], + "title": "Filesystem Available (Pod)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: throughput unavailable; showing container filesystem usage.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 56 + }, + "id": 13, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(k8s_container_filesystem_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "legendFormat": "{{k8s_container_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Filesystem Usage (Containers)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: IOPS unavailable; showing usage/capacity.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 63 + }, + "id": 14, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_filesystem_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name) / sum(k8s_container_filesystem_capacity_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "legendFormat": "{{k8s_container_name}}", + "refId": "A" + } + ], + "title": "Filesystem Utilization (Containers)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: throughput unavailable; showing available bytes.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 63 + }, + "id": 15, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_filesystem_available_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "legendFormat": "{{k8s_container_name}}", + "refId": "A" + } + ], + "title": "Filesystem Available (Containers)", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: IO metrics unavailable; showing filesystem gauges.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Usage %/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Usage|Available|Capacity/" + }, + "properties": [ + { + "id": "unit", + "value": "bytes" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 70 + }, + "id": 16, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_filesystem_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_filesystem_available_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_filesystem_capacity_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_filesystem_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name) / sum(k8s_container_filesystem_capacity_bytes{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=\"$pod\"}) by (k8s_container_name)", + "format": "table", + "instant": true, + "refId": "D" + } + ], + "title": "Current Filesystem Usage", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_container_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Value #A": 5, + "Value #B": 6, + "Value #C": 7, + "Value #D": 8, + "k8s_container_name": 4 + }, + "renameByName": { + "Value #A": "Usage", + "Value #B": "Available", + "Value #C": "Capacity", + "Value #D": "Usage %", + "container": "Container", + "k8s_container_name": "Container" + } + } + } + ], + "type": "table" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_container_cpu_request, k8s_cluster_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "label": "namespace", + "name": "namespace", + "options": [], + "query": "label_values(k8s_container_cpu_request{k8s_cluster_name=\"$cluster\"}, k8s_namespace_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "label": "pod", + "name": "pod", + "options": [], + "query": "label_values(k8s_container_cpu_request{k8s_cluster_name=\"$cluster\", k8s_namespace_name=\"$namespace\"}, k8s_pod_name)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Compute Resources / Pod - OTEL", + "version": 3 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-workload.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-workload.json new file mode 100644 index 000000000..f15d96a90 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-compute-resources-workload.json @@ -0,0 +1,1495 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "otel" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Workload derived from pod name prefix.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"}[$__rate_interval]))", + "legendFormat": "__auto", + "refId": "A" + } + ], + "title": "CPU Usage by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Pod view replaces workload owner rule.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/6581e46e4e5c7ba40a07646395ef7b23/k8s-resources-pod?${datasource:queryparam}&var-cluster=$cluster&var-namespace=$namespace&var-pod=${__data.fields.Pod}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 7 + }, + "id": 2, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "min by (k8s_pod_name) (k8s_container_ready{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_container_cpu_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"}[$__rate_interval])) / sum by (k8s_pod_name) (k8s_container_cpu_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_container_cpu_limit{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "E" + } + ], + "title": "CPU by Pod", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true + }, + "indexByName": { + "Value #A": 1, + "Value #B": 2, + "Value #C": 3, + "Value #D": 4, + "Value #E": 5, + "Value #F": 6, + "k8s_pod_name": 0 + }, + "renameByName": { + "Value #A": "Pod Ready", + "Value #B": "CPU Usage", + "Value #C": "CPU Requests", + "Value #D": "CPU Requests %", + "Value #E": "CPU Limits", + "Value #F": "CPU Limits %", + "k8s_pod_name": "Pod" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Workload derived from pod name prefix.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_pod_memory_working_set_bytes{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "legendFormat": "__auto", + "refId": "A" + } + ], + "title": "Memory Usage by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Pod view replaces workload owner rule.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/%/" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/6581e46e4e5c7ba40a07646395ef7b23/k8s-resources-pod?${datasource:queryparam}&var-cluster=$cluster&var-namespace=$namespace&var-pod=${__data.fields.Pod}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 21 + }, + "id": 4, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "min by (k8s_pod_name) (k8s_container_ready{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_pod_memory_working_set_bytes{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_container_memory_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_pod_memory_working_set_bytes{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"}) / sum by (k8s_pod_name) (k8s_container_memory_request{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (k8s_container_memory_limit{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\"})", + "format": "table", + "instant": true, + "refId": "E" + } + ], + "title": "Memory by Pod", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true + }, + "indexByName": { + "Value #A": 1, + "Value #B": 2, + "Value #C": 3, + "Value #D": 4, + "Value #E": 5, + "Value #F": 6, + "k8s_pod_name": 0 + }, + "renameByName": { + "Value #A": "Pod Ready", + "Value #B": "Memory Usage", + "Value #C": "Memory Requests", + "Value #D": "Memory Requests %", + "Value #E": "Memory Limits", + "Value #F": "Memory Limits %", + "k8s_pod_name": "Pod" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Errors replace dropped packets.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Bandwidth/" + }, + "properties": [ + { + "id": "unit", + "value": "bps" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Packets/" + }, + "properties": [ + { + "id": "unit", + "value": "pps" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down to pods", + "url": "/d/6581e46e4e5c7ba40a07646395ef7b23/k8s-resources-pod?${datasource:queryparam}&var-cluster=$cluster&var-namespace=$namespace&var-pod=${__data.fields.Pod}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 28 + }, + "id": 5, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_packets_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_packets_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_errors_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_errors_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "F" + } + ], + "title": "Current Network Usage by Pod", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_pod_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true + }, + "indexByName": { + "Value #A": 1, + "Value #B": 2, + "Value #C": 3, + "Value #D": 4, + "Value #E": 5, + "Value #F": 6, + "k8s_pod_name": 0 + }, + "renameByName": { + "Value #A": "Current Receive Bandwidth", + "Value #B": "Current Transmit Bandwidth", + "Value #C": "Rate of Received Packets", + "Value #D": "Rate of Transmitted Packets", + "Value #E": "Rate of Receive Errors", + "Value #F": "Rate of Transmit Errors", + "k8s_pod_name": "Pod" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 35 + }, + "id": 6, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "__auto", + "refId": "A" + } + ], + "title": "Receive Bandwidth by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 35 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "__auto", + "refId": "A" + } + ], + "title": "Transmit Bandwidth by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Average across pod interfaces.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 42 + }, + "id": 8, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "avg by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "__auto", + "refId": "A" + } + ], + "title": "Average Interface Receive Bandwidth by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Average across pod interfaces.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 42 + }, + "id": 9, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "avg by (k8s_pod_name) (8 * rate(k8s_pod_network_io_bytes_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "__auto", + "refId": "A" + } + ], + "title": "Average Interface Transmit Bandwidth by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Uses network errors as closest metric.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 49 + }, + "id": 12, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_errors_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "__auto", + "refId": "A" + } + ], + "title": "Rate of Receive Errors by Pod", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Uses network errors as closest metric.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 49 + }, + "id": 13, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_pod_name) (rate(k8s_pod_network_errors_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\", k8s_pod_name=~\"${workload}.*\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "__auto", + "refId": "A" + } + ], + "title": "Rate of Transmit Errors by Pod", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_pod_cpu_time_seconds_total, cluster)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "label": "namespace", + "name": "namespace", + "options": [], + "query": "label_values(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\"}, k8s_namespace_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "allValue": ".*", + "current": { + "text": "$__all", + "value": "$__all" + }, + "hide": 2, + "includeAll": true, + "label": "workload_type", + "name": "type", + "options": [ + { + "selected": false, + "text": "derived", + "value": "derived" + } + ], + "query": "derived", + "type": "custom" + }, + { + "allValue": ".*", + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "includeAll": true, + "label": "workload", + "name": "workload", + "options": [], + "query": "label_values(k8s_pod_cpu_time_seconds_total{cluster=\"$cluster\", k8s_namespace_name=\"$namespace\"}, k8s_pod_name)", + "refresh": 2, + "regex": "/^(.*?)(?:-[a-f0-9]{8,10}-[a-z0-9]{5}|-[a-z0-9]{5,})?$/", + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Compute Resources / Workload - OTEL", + "version": 2 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-kubelet.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-kubelet.json new file mode 100644 index 000000000..6d7677ae5 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-kubelet.json @@ -0,0 +1,2336 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes-mixin" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: count nodes from OTel node CPU series.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "count(count by (k8s_node_name) (k8s_node_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}))", + "instant": true, + "refId": "A" + } + ], + "title": "Running Nodes", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: count pods from OTel pod memory series.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 4, + "y": 0 + }, + "id": 2, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "count(count by (k8s_namespace_name, k8s_pod_name) (k8s_pod_memory_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}))", + "instant": true, + "refId": "A" + } + ], + "title": "Running Pods", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: count containers from OTel container memory series.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 8, + "y": 0 + }, + "id": 3, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "count(count by (container_id) (k8s_container_memory_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}))", + "instant": true, + "refId": "A" + } + ], + "title": "Running Containers", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: count volumes from k8s.volume.capacity.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 12, + "y": 0 + }, + "id": 4, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "count(k8s_volume_capacity_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"})", + "instant": true, + "refId": "A" + } + ], + "title": "Volumes with Capacity", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: count volumes from k8s.volume.available.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 16, + "y": 0 + }, + "id": 5, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "count(k8s_volume_available_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"})", + "instant": true, + "refId": "A" + } + ], + "title": "Volumes with Available Space", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: using OTel container restarts gauge.", + "fieldConfig": { + "defaults": { + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 4, + "x": 20, + "y": 0 + }, + "id": 6, + "interval": "1m", + "options": { + "colorMode": "none", + "graphMode": "area", + "justifyMode": "auto", + "orientation": "auto", + "percentChangeColorMode": "standard", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showPercentChange": false, + "textMode": "auto", + "wideLayout": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_restarts{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"})", + "instant": true, + "refId": "A" + } + ], + "title": "Container Restarts", + "type": "stat" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces kubelet runtime ops with node CPU time rate.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 7 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_node_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\", state!=\"idle\"}[$__rate_interval])) by (k8s_node_name)", + "legendFormat": "{{k8s_node_name}}", + "refId": "A" + } + ], + "title": "Node CPU Usage Rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces kubelet errors with node memory usage.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 7 + }, + "id": 8, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_node_memory_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name)", + "legendFormat": "{{k8s_node_name}}", + "refId": "A" + } + ], + "title": "Node Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces kubelet duration with pod CPU time rate.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 9, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_pod_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}[$__rate_interval])) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_node_name}} {{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Pod CPU Usage Rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces pod start rate with container restarts per pod.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 21 + }, + "id": 10, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_restarts{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_node_name}} {{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Pod Restart Count", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces pod start duration with pod memory usage.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 21 + }, + "id": 11, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_pod_memory_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_node_name}} {{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Pod Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces storage rate with container CPU requests.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 28 + }, + "id": 12, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_cpu_request{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_node_name}} {{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Container CPU Requests", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces storage errors with container CPU limits.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 28 + }, + "id": 13, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_cpu_limit{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_node_name}} {{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Container CPU Limits", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces storage duration with volume capacity.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 35 + }, + "id": 14, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_volume_capacity_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name, k8s_volume_type)", + "legendFormat": "{{k8s_node_name}} {{k8s_namespace_name}}/{{k8s_pod_name}} {{k8s_volume_type}}", + "refId": "A" + } + ], + "title": "Volume Capacity", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces cgroup rate with container memory requests.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 42 + }, + "id": 15, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_request{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Container Memory Requests", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces cgroup quantile with container memory limits.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 42 + }, + "id": 16, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_limit{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Container Memory Limits", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces PLEG rate with container CPU time rate.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 49 + }, + "id": 17, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_container_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}[$__rate_interval])) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Container CPU Usage Rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces PLEG interval with volume available bytes.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 49 + }, + "id": 18, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_volume_available_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name, k8s_volume_type)", + "legendFormat": "{{k8s_node_name}} {{k8s_namespace_name}}/{{k8s_pod_name}} {{k8s_volume_type}}", + "refId": "A" + } + ], + "title": "Volume Available", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: derived as capacity minus available.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 56 + }, + "id": 19, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum((k8s_volume_capacity_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"} - k8s_volume_available_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"})) by (k8s_node_name, k8s_namespace_name, k8s_pod_name, k8s_volume_type)", + "legendFormat": "{{k8s_node_name}} {{k8s_namespace_name}}/{{k8s_pod_name}} {{k8s_volume_type}}", + "refId": "A" + } + ], + "title": "Volume Used", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces RPC rate with OTel container ready gauge.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 63 + }, + "id": 20, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_ready{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_namespace_name}}/{{k8s_pod_name}} ready", + "refId": "A" + } + ], + "title": "Containers Ready", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces request duration with container memory usage.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 70 + }, + "id": 21, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_memory_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name, k8s_namespace_name, k8s_pod_name)", + "legendFormat": "{{k8s_namespace_name}}/{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Container Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces kubelet process memory with OTel node memory.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 77 + }, + "id": 22, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_node_memory_usage_bytes{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name)", + "legendFormat": "{{k8s_node_name}}", + "refId": "A" + } + ], + "title": "Node Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces kubelet process CPU with OTel node CPU time rate.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 77 + }, + "id": 23, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(rate(k8s_node_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\", state!=\"idle\"}[$__rate_interval])) by (k8s_node_name)", + "legendFormat": "{{k8s_node_name}}", + "refId": "A" + } + ], + "title": "Node CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Assumption: replaces goroutines with ready containers.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 77 + }, + "id": 24, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum(k8s_container_ready{k8s_cluster_name=\"$cluster\", k8s_node_name=~\"$instance\"}) by (k8s_node_name)", + "legendFormat": "{{k8s_node_name}}", + "refId": "A" + } + ], + "title": "Containers Ready", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_node_cpu_time_seconds_total, k8s_cluster_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "includeAll": true, + "label": "instance", + "name": "instance", + "options": [], + "query": "label_values(k8s_node_cpu_time_seconds_total{k8s_cluster_name=\"$cluster\"}, k8s_node_name)", + "refresh": 2, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Kubelet - OTEL", + "version": 2 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-networking-cluster.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-networking-cluster.json new file mode 100644 index 000000000..dea827d47 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-networking-cluster.json @@ -0,0 +1,1198 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "otel-native", + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "{{k8s_namespace_name}}", + "refId": "A" + } + ], + "title": "Current Rate of Bits Received", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "{{k8s_namespace_name}}", + "refId": "A" + } + ], + "title": "Current Rate of Bits Transmitted", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Bits/" + }, + "properties": [ + { + "id": "unit", + "value": "bps" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Packets/" + }, + "properties": [ + { + "id": "unit", + "value": "pps" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Namespace" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down", + "url": "/d/8b7a8b326d7a6f1f04244066368c67af/kubernetes-networking-namespace-pods?${datasource:queryparam}&var-cluster=${cluster}&var-namespace=${__data.fields.Namespace}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 9 + }, + "id": 3, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "avg by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "avg by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"receive\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"transmit\"}[$__rate_interval]))", + "format": "table", + "instant": true, + "refId": "H" + } + ], + "title": "Current Status", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "k8s_namespace_name", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "Time 8": true, + "Value #G": true, + "Value #H": true + }, + "includeByName": {}, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Time 6": 5, + "Time 7": 6, + "Time 8": 7, + "Value #A": 9, + "Value #B": 10, + "Value #C": 11, + "Value #D": 12, + "Value #E": 13, + "Value #F": 14, + "Value #G": 15, + "Value #H": 16, + "k8s_namespace_name": 8 + }, + "renameByName": { + "Value #A": "Rx Bits", + "Value #B": "Tx Bits", + "Value #C": "Rx Bits (Avg)", + "Value #D": "Tx Bits (Avg)", + "Value #E": "Rx Packets", + "Value #F": "Tx Packets", + "Value #G": "Rx Packets Dropped", + "Value #H": "Tx Packets Dropped", + "k8s_namespace_name": "Namespace" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 18 + }, + "id": 4, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "avg by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "{{k8s_namespace_name}}", + "refId": "A" + } + ], + "title": "Average Rate of Bits Received", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 18 + }, + "id": 5, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "avg by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "{{k8s_namespace_name}}", + "refId": "A" + } + ], + "title": "Average Rate of Bits Transmitted", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 27 + }, + "id": 6, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "{{k8s_namespace_name}}", + "refId": "A" + } + ], + "title": "Receive Bandwidth", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 27 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "{{k8s_namespace_name}}", + "refId": "A" + } + ], + "title": "Transmit Bandwidth", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Approximation using native OTel pod network error counters because dedicated dropped-packet counters are not implied by the provided OTel config.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 36 + }, + "id": 10, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum by (k8s_namespace_name) (rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"receive\"}[$__rate_interval]))", + "legendFormat": "{{k8s_namespace_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Rate of Received Packets Dropped", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Approximation using native OTel pod network error counters because dedicated dropped-packet counters are not implied by the provided OTel config.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 36 + }, + "id": 11, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sum by (k8s_namespace_name) (rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\", k8s_namespace_name!=\"\", direction=\"transmit\"}[$__rate_interval]))", + "legendFormat": "{{k8s_namespace_name}}", + "refId": "A" + } + ], + "title": "Rate of Transmitted Packets Dropped", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "Approximation using native OTel transmit error counters divided by all network error counters because TCP SYN retransmit counters are not implied by the provided OTel config.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 45 + }, + "id": 13, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sum(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\", direction=\"transmit\"}[$__rate_interval])) / clamp_min(sum(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\"}[$__rate_interval])), 1)", + "legendFormat": "cluster", + "range": true, + "refId": "A" + } + ], + "title": "Rate of TCP SYN Retransmits out of all retransmits", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_pod_network_io_bytes_total, k8s_cluster_name)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Networking / Cluster - OTEL", + "uid": "ff635a025bcfea7bc3dd4f508990a3e92", + "version": 5 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-networking-namespace-workload.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-networking-namespace-workload.json new file mode 100644 index 000000000..c744eccb2 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-networking-namespace-workload.json @@ -0,0 +1,1167 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "otel-native", + "kubernetes" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "displayMode": "basic", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showUnfilled": false, + "sizing": "auto", + "valueMode": "color" + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "legendFormat": "{{workload}}", + "range": true, + "refId": "A" + } + ], + "title": "Current Rate of Bits Received", + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "fixedColor": "green", + "mode": "fixed" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 2, + "interval": "1m", + "options": { + "displayMode": "basic", + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "maxVizHeight": 300, + "minVizHeight": 16, + "minVizWidth": 8, + "namePlacement": "auto", + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showUnfilled": false, + "sizing": "auto", + "valueMode": "color" + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "legendFormat": "{{workload}}", + "range": true, + "refId": "A" + } + ], + "title": "Current Rate of Bits Transmitted", + "type": "bargauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Bits/" + }, + "properties": [ + { + "id": "unit", + "value": "bps" + } + ] + }, + { + "matcher": { + "id": "byRegexp", + "options": "/Packets/" + }, + "properties": [ + { + "id": "unit", + "value": "pps" + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Workload" + }, + "properties": [ + { + "id": "links", + "value": [ + { + "title": "Drill down", + "url": "/d/728bf77cc1166d2f3133bf25846876cc/kubernetes-networking-workload?${datasource:queryparam}&var-cluster=${cluster}&var-namespace=${namespace}&var-type=${__data.fields.Type}&var-workload=${__data.fields.Workload}" + } + ] + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 24, + "x": 0, + "y": 9 + }, + "id": 3, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "format": "table", + "instant": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "format": "table", + "instant": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(avg by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "format": "table", + "instant": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(avg by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "format": "table", + "instant": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_deployment_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_statefulset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_daemonset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_job_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_cronjob_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "format": "table", + "instant": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_deployment_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_statefulset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_daemonset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_job_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_packets_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_cronjob_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "format": "table", + "instant": true, + "refId": "F" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_deployment_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_statefulset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_daemonset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_job_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_cronjob_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "format": "table", + "instant": true, + "refId": "G" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_deployment_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_statefulset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_daemonset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_job_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_cronjob_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "format": "table", + "instant": true, + "refId": "H" + } + ], + "title": "Current Status", + "transformations": [ + { + "id": "joinByField", + "options": { + "byField": "workload", + "mode": "outer" + } + }, + { + "id": "organize", + "options": { + "excludeByName": { + "Time": true, + "Time 1": true, + "Time 2": true, + "Time 3": true, + "Time 4": true, + "Time 5": true, + "Time 6": true, + "Time 7": true, + "Time 8": true, + "workload_type 2": true, + "workload_type 3": true, + "workload_type 4": true, + "workload_type 5": true, + "workload_type 6": true, + "workload_type 7": true, + "workload_type 8": true + }, + "indexByName": { + "Time 1": 0, + "Time 2": 1, + "Time 3": 2, + "Time 4": 3, + "Time 5": 4, + "Time 6": 5, + "Time 7": 6, + "Time 8": 7, + "Value #A": 10, + "Value #B": 11, + "Value #C": 12, + "Value #D": 13, + "Value #E": 14, + "Value #F": 15, + "Value #G": 16, + "Value #H": 17, + "workload": 8, + "workload_type 1": 9, + "workload_type 2": 18, + "workload_type 3": 19, + "workload_type 4": 20, + "workload_type 5": 21, + "workload_type 6": 22, + "workload_type 7": 23, + "workload_type 8": 24 + }, + "renameByName": { + "Value #A": "Rx Bits", + "Value #B": "Tx Bits", + "Value #C": "Rx Bits (Avg)", + "Value #D": "Tx Bits (Avg)", + "Value #E": "Rx Packets", + "Value #F": "Tx Packets", + "Value #G": "Rx Packets Dropped", + "Value #H": "Tx Packets Dropped", + "workload": "Workload", + "workload_type 1": "Type" + } + } + } + ], + "type": "table" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 18 + }, + "id": 4, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "legendFormat": "{{workload}}", + "range": true, + "refId": "A" + } + ], + "title": "Receive Bandwidth", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 18 + }, + "id": 5, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "legendFormat": "{{workload}}", + "range": true, + "refId": "A" + } + ], + "title": "Transmit Bandwidth", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 27 + }, + "id": 6, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sort_desc(avg by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "legendFormat": "{{workload}}", + "range": true, + "refId": "A" + } + ], + "title": "Average Container Bandwidth by Workload: Received", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 27 + }, + "id": 7, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sort_desc(avg by (workload, workload_type) (label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_deployment_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_statefulset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_daemonset_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_job_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace((8 * rate(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_cronjob_name!=\"\"}[$__rate_interval])), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "legendFormat": "{{workload}}", + "range": true, + "refId": "A" + } + ], + "title": "Average Container Bandwidth by Workload: Transmitted", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 36 + }, + "id": 10, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_deployment_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_statefulset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_daemonset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_job_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"receive\",k8s_cronjob_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "legendFormat": "{{workload}}", + "range": true, + "refId": "A" + } + ], + "title": "Rate of Received Packets Dropped", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "pps" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 36 + }, + "id": 11, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "sort_desc(sum by (workload, workload_type) (label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_deployment_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_deployment_name\", \"(.*)\"), \"workload_type\", \"deployment\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_statefulset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_statefulset_name\", \"(.*)\"), \"workload_type\", \"statefulset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_daemonset_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_daemonset_name\", \"(.*)\"), \"workload_type\", \"daemonset\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_job_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_job_name\", \"(.*)\"), \"workload_type\", \"job\", \"__name__\", \".*\") or label_replace(label_replace(rate(k8s_pod_network_errors_total{k8s_cluster_name=\"$cluster\",k8s_namespace_name=\"$namespace\",direction=\"transmit\",k8s_cronjob_name!=\"\"}[$__rate_interval]), \"workload\", \"$1\", \"k8s_cronjob_name\", \"(.*)\"), \"workload_type\", \"cronjob\", \"__name__\", \".*\")))", + "legendFormat": "{{workload}}", + "range": true, + "refId": "A" + } + ], + "title": "Rate of Transmitted Packets Dropped", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_pod_network_io_bytes_total, k8s_cluster_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "label": "namespace", + "name": "namespace", + "options": [], + "query": "label_values(k8s_pod_network_io_bytes_total{k8s_cluster_name=\"$cluster\"}, k8s_namespace_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "current": { + "text": "$__all", + "value": "$__all" + }, + "includeAll": true, + "label": "workload_type", + "name": "type", + "options": [ + { + "selected": false, + "text": "deployment", + "value": "deployment" + }, + { + "selected": false, + "text": "statefulset", + "value": "statefulset" + }, + { + "selected": false, + "text": "daemonset", + "value": "daemonset" + }, + { + "selected": false, + "text": "job", + "value": "job" + }, + { + "selected": false, + "text": "cronjob", + "value": "cronjob" + } + ], + "query": "deployment,statefulset,daemonset,job,cronjob", + "type": "custom" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Networking / Namespace (Workload) - OTEL", + "uid": "bbb2a765a623ae38130206c7d94a160f2", + "version": 13 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-persistent-volumes-all-nodes.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-persistent-volumes-all-nodes.json new file mode 100644 index 000000000..dda437169 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-persistent-volumes-all-nodes.json @@ -0,0 +1,480 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes-mixin" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 18, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "(\n max by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_capacity_bytes{k8s_namespace_name=~\"$namespace\"})\n -\n max by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_available_bytes{k8s_namespace_name=~\"$namespace\"})\n)\n", + "legendFormat": "{{k8s_namespace_name}}/{{k8s_persistentvolumeclaim_name}} Used Space", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "max by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_available_bytes{k8s_namespace_name=~\"$namespace\"})\n", + "legendFormat": "{{k8s_namespace_name}}/{{k8s_persistentvolumeclaim_name}} Free Space", + "range": true, + "refId": "B" + } + ], + "title": "Volume Space Usage by Claim", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "orange", + "value": 80 + }, + { + "color": "red", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 0 + }, + "id": 2, + "interval": "1m", + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "sizing": "auto" + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "max(\n(\n max by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_capacity_bytes{k8s_namespace_name=~\"$namespace\"})\n -\n max by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_available_bytes{k8s_namespace_name=~\"$namespace\"})\n)\n/\nmax by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_capacity_bytes{k8s_namespace_name=~\"$namespace\"})\n* 100\n)\n", + "instant": true, + "refId": "A" + } + ], + "title": "Highest Volume Space Usage", + "type": "gauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 18, + "x": 0, + "y": 7 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "max by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_inodes_used_ratio{k8s_namespace_name=~\"$namespace\"})", + "hide": false, + "legendFormat": "{{k8s_namespace_name}}/{{k8s_persistentvolumeclaim_name}} Used inodes", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "(\n max by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_inodes_ratio{k8s_namespace_name=~\"$namespace\"})\n -\n max by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_inodes_used_ratio{k8s_namespace_name=~\"$namespace\"})\n)\n", + "hide": false, + "legendFormat": "{{k8s_namespace_name}}/{{k8s_persistentvolumeclaim_name}} Free inodes", + "range": true, + "refId": "B" + } + ], + "title": "Volume Inodes Usage by Claim", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "orange", + "value": 80 + }, + { + "color": "red", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 7 + }, + "id": 4, + "interval": "1m", + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "sizing": "auto" + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "max(\nmax by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_inodes_used_ratio{k8s_namespace_name=~\"$namespace\"})\n/\nmax by (k8s_namespace_name, k8s_persistentvolumeclaim_name) (k8s_volume_inodes_ratio{k8s_namespace_name=~\"$namespace\"})\n* 100\n)\n", + "instant": true, + "refId": "A" + } + ], + "title": "Highest Volume Inodes Usage", + "type": "gauge" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_volume_capacity_bytes{}, k8s_cluster_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "label": "Namespace", + "name": "namespace", + "options": [], + "query": "label_values(k8s_volume_capacity_bytes{k8s_cluster_name=\"$cluster\"}, k8s_namespace_name)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Persistent Volumes / All Nodes - OTEL", + "version": 10 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-persistent-volumes.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-persistent-volumes.json new file mode 100644 index 000000000..d0571a667 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/kubernetes-persistent-volumes.json @@ -0,0 +1,505 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 0, + "links": [ + { + "asDropdown": true, + "includeVars": true, + "keepTime": true, + "tags": [ + "kubernetes-mixin" + ], + "targetBlank": false, + "title": "Kubernetes", + "type": "dashboards" + } + ], + "panels": [ + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 18, + "x": 0, + "y": 0 + }, + "id": 1, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "(\n max without(instance, node, host_name, job, k8s_node_name) (k8s_volume_capacity_bytes{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"})\n -\n max without(instance, node, host_name, job, k8s_node_name) (k8s_volume_available_bytes{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"})\n)\n", + "hide": false, + "legendFormat": "{{k8s_pod_name}} - Used Space", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "max without(instance, node, host_name, job, k8s_node_name) (k8s_volume_available_bytes{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"})\n", + "hide": false, + "legendFormat": "{{k8s_pod_name}} - Free Space", + "range": true, + "refId": "B" + } + ], + "title": "Volume Space Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "orange", + "value": 80 + }, + { + "color": "red", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 0 + }, + "id": 2, + "interval": "1m", + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "sizing": "auto" + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "max without(instance, node, host_name, job, k8s_node_name) (\n(\n k8s_volume_capacity_bytes{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"}\n -\n k8s_volume_available_bytes{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"}\n)\n/\nk8s_volume_capacity_bytes{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"}\n* 100\n)\n", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Volume Space Usage", + "type": "gauge" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 18, + "x": 0, + "y": 7 + }, + "id": 3, + "interval": "1m", + "options": { + "legend": { + "asTable": true, + "calcs": [ + "lastNotNull" + ], + "displayMode": "table", + "placement": "right", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "max without(instance, node, host_name, job, k8s_node_name) (k8s_volume_inodes_used_ratio{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"})", + "legendFormat": "Used inodes {{k8s_pod_name}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "(\n max without(instance, node, host_name, job, k8s_node_name) (k8s_volume_inodes_ratio{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"})\n -\n max without(instance, node, host_name, job, k8s_node_name) (k8s_volume_inodes_used_ratio{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"})\n)\n", + "legendFormat": "Free inodes {{k8s_pod_name}}", + "range": true, + "refId": "B" + } + ], + "title": "Volume inodes Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "datasource", + "uid": "-- Mixed --" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "orange", + "value": 80 + }, + { + "color": "red", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 7 + }, + "id": 4, + "interval": "1m", + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "sizing": "auto" + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "editorMode": "code", + "expr": "max without(instance, node, host_name, job, k8s_node_name) (\nk8s_volume_inodes_used_ratio{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"}\n/\nk8s_volume_inodes_ratio{k8s_namespace_name=\"$namespace\", k8s_persistentvolumeclaim_name=\"$volume\"}\n* 100\n)\n", + "instant": true, + "legendFormat": "{{k8s_pod_name}}", + "refId": "A" + } + ], + "title": "Volume inodes Usage", + "type": "gauge" + } + ], + "preload": false, + "refresh": "10s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "default", + "value": "default" + }, + "label": "Data source", + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "regex": "", + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "label": "cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_volume_capacity_bytes{}, k8s_cluster_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(k8s_volume_capacity_bytes,k8s_namespace_name)", + "label": "Namespace", + "name": "namespace", + "options": [], + "query": { + "qryType": 1, + "query": "label_values(k8s_volume_capacity_bytes,k8s_namespace_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "current": { + "text": "", + "value": "" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "definition": "label_values(k8s_volume_capacity_bytes{k8s_namespace_name=\"$namespace\"},k8s_persistentvolumeclaim_name)", + "label": "PersistentVolumeClaim", + "name": "volume", + "options": [], + "query": { + "qryType": 1, + "query": "label_values(k8s_volume_capacity_bytes{k8s_namespace_name=\"$namespace\"},k8s_persistentvolumeclaim_name)", + "refId": "PrometheusVariableQueryEditor-VariableQuery" + }, + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Kubernetes / Persistent Volumes - OTEL", + "version": 13 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-nodes.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-nodes.json new file mode 100644 index 000000000..b39d121e8 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-nodes.json @@ -0,0 +1,1110 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 1, + "id": 0, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "panels": [], + "title": "CPU", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "max": 1, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "(\n 1 - (\n sum without (state) (\n rate(k8s_node_cpu_time_seconds_total{k8s_node_name=\"$instance\", cluster=~\"$cluster\", state=~\"idle|iowait|steal\"}[$__rate_interval])\n )\n /\n ignoring(cpu) group_left\n count without (cpu, state) (\n k8s_node_cpu_time_seconds_total{k8s_node_name=\"$instance\", cluster=~\"$cluster\", state=\"idle\"}\n )\n )\n)", + "intervalFactor": 5, + "legendFormat": "{{cpu}}", + "range": true, + "refId": "A" + } + ], + "title": "CPU Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumes kubeletstats node CPU time is available; load average unavailable.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 1 + }, + "id": 3, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "sum(rate(k8s_node_cpu_time_seconds_total{k8s_node_name=\"$instance\", cluster=~\"$cluster\", state!~\"idle|iowait|steal\"}[$__rate_interval]))", + "legendFormat": "used cores", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "sum(rate(k8s_node_cpu_time_seconds_total{k8s_node_name=\"$instance\", cluster=~\"$cluster\", state=~\"idle|iowait|steal\"}[$__rate_interval]))", + "legendFormat": "idle cores", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "count(count by (cpu) (k8s_node_cpu_time_seconds_total{k8s_node_name=\"$instance\", cluster=~\"$cluster\", state=\"idle\"}))", + "legendFormat": "logical cores", + "refId": "C" + } + ], + "title": "CPU Core Usage", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 8 + }, + "id": 4, + "panels": [], + "title": "Memory", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 18, + "x": 0, + "y": 9 + }, + "id": 5, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "k8s_node_memory_usage_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"}", + "legendFormat": "memory used", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "k8s_node_memory_available_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"}", + "legendFormat": "memory available", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "(k8s_node_memory_usage_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"} + k8s_node_memory_available_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"})", + "legendFormat": "memory total", + "refId": "C" + } + ], + "title": "Memory Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "mappings": [], + "max": 100, + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "rgba(50, 172, 45, 0.97)", + "value": 0 + }, + { + "color": "rgba(237, 129, 40, 0.89)", + "value": 80 + }, + { + "color": "rgba(245, 54, 54, 0.9)", + "value": 90 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 6, + "x": 18, + "y": 9 + }, + "id": 6, + "options": { + "minVizHeight": 75, + "minVizWidth": 75, + "orientation": "auto", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "showThresholdLabels": false, + "showThresholdMarkers": true, + "sizing": "auto" + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "100 *\n(\n k8s_node_memory_usage_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"}\n /\n (\n k8s_node_memory_usage_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"}\n +\n k8s_node_memory_available_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"}\n )\n)", + "refId": "A" + } + ], + "title": "Memory Usage", + "type": "gauge" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 7, + "panels": [], + "title": "Disk", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Uses kubeletstats volume gauges as closest node disk view.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 17 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "sum by (k8s_namespace_name, k8s_pod_name) ((k8s_volume_capacity_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"} - k8s_volume_available_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"}))", + "intervalFactor": 1, + "legendFormat": "{{k8s_namespace_name}}/{{k8s_pod_name}} used", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "sum by (k8s_namespace_name, k8s_pod_name) (k8s_volume_available_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"})", + "intervalFactor": 1, + "legendFormat": "{{k8s_namespace_name}}/{{k8s_pod_name}} available", + "refId": "B" + } + ], + "title": "Volume Usage", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Uses kubeletstats volume gauges; mountpoint details unavailable.", + "fieldConfig": { + "defaults": { + "custom": { + "align": "auto", + "cellOptions": { + "type": "auto" + }, + "footer": { + "reducers": [] + }, + "inspect": false + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "yellow", + "value": 0.8 + }, + { + "color": "red", + "value": 0.9 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [ + { + "matcher": { + "id": "byName", + "options": "Namespace" + }, + "properties": [ + { + "id": "custom.width", + "value": 140 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Pod" + }, + "properties": [ + { + "id": "custom.width", + "value": 220 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Size" + }, + "properties": [ + { + "id": "custom.width", + "value": 93 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Used" + }, + "properties": [ + { + "id": "custom.width", + "value": 72 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Available" + }, + "properties": [ + { + "id": "custom.width", + "value": 88 + } + ] + }, + { + "matcher": { + "id": "byName", + "options": "Used, %" + }, + "properties": [ + { + "id": "unit", + "value": "percentunit" + }, + { + "id": "custom.cellOptions", + "value": { + "type": "gauge" + } + }, + { + "id": "max", + "value": 1 + }, + { + "id": "min", + "value": 0 + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 17 + }, + "id": 9, + "options": { + "cellHeight": "sm", + "showHeader": true + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "max by (k8s_namespace_name, k8s_pod_name) (k8s_volume_capacity_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"})", + "format": "table", + "instant": true, + "legendFormat": "", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "max by (k8s_namespace_name, k8s_pod_name) (k8s_volume_available_bytes{k8s_node_name=\"$instance\", cluster=~\"$cluster\"})", + "format": "table", + "instant": true, + "legendFormat": "", + "refId": "B" + } + ], + "title": "Volume Space Usage", + "transformations": [ + { + "id": "groupBy", + "options": { + "fields": { + "Value #A": { + "aggregations": [ + "lastNotNull" + ], + "operation": "aggregate" + }, + "Value #B": { + "aggregations": [ + "lastNotNull" + ], + "operation": "aggregate" + }, + "k8s_namespace_name": { + "aggregations": [], + "operation": "groupby" + }, + "k8s_pod_name": { + "aggregations": [], + "operation": "groupby" + } + } + } + }, + { + "id": "merge" + }, + { + "id": "calculateField", + "options": { + "alias": "Used", + "binary": { + "left": "Value #A (lastNotNull)", + "operator": "-", + "reducer": "sum", + "right": "Value #B (lastNotNull)" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "calculateField", + "options": { + "alias": "Used, %", + "binary": { + "left": "Used", + "operator": "/", + "reducer": "sum", + "right": "Value #A (lastNotNull)" + }, + "mode": "binary", + "reduce": { + "reducer": "sum" + } + } + }, + { + "id": "organize", + "options": { + "excludeByName": {}, + "indexByName": {}, + "renameByName": { + "Value #A (lastNotNull)": "Size", + "Value #B (lastNotNull)": "Available", + "k8s_namespace_name": "Namespace", + "k8s_pod_name": "Pod" + } + } + }, + { + "id": "sortBy", + "options": { + "fields": {}, + "sort": [ + { + "field": "Namespace" + }, + { + "field": "Pod" + } + ] + } + } + ], + "type": "table" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 24 + }, + "id": 10, + "panels": [], + "title": "Network", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Network received (bits/s)", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 25 + }, + "id": 11, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "rate(k8s_node_network_io_bytes_total{k8s_node_name=\"$instance\", cluster=~\"$cluster\", interface!=\"lo\", direction=\"receive\"}[$__rate_interval]) * 8", + "intervalFactor": 1, + "legendFormat": "{{interface}}", + "refId": "A" + } + ], + "title": "Network Received", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Network transmitted (bits/s)", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "bps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 25 + }, + "id": 12, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "rate(k8s_node_network_io_bytes_total{k8s_node_name=\"$instance\", cluster=~\"$cluster\", interface!=\"lo\", direction=\"transmit\"}[$__rate_interval]) * 8", + "intervalFactor": 1, + "legendFormat": "{{interface}}", + "refId": "A" + } + ], + "title": "Network Transmitted", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "30s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "Prometheus", + "value": "prometheus" + }, + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "includeAll": true, + "label": "Cluster", + "name": "cluster", + "options": [], + "query": "label_values(k8s_node_cpu_time_seconds_total, cluster)", + "refresh": 2, + "type": "query" + }, + { + "current": { + "text": "sltest-worker-qmcsm-d4zn2", + "value": "sltest-worker-qmcsm-d4zn2" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "label": "Node", + "name": "instance", + "options": [], + "query": "label_values(k8s_node_cpu_time_seconds_total{cluster=~\"$cluster\"}, k8s_node_name)", + "refresh": 2, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Node Exporter / Nodes - OTEL", + "version": 2 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-use-method-cluster.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-use-method-cluster.json new file mode 100644 index 000000000..a38cf6847 --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-use-method-cluster.json @@ -0,0 +1,1087 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 1, + "id": 0, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "panels": [], + "title": "CPU", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "rate(k8s_node_cpu_time_seconds_total{}[5m])\r\n/\r\non(k8s_node_name)\r\nk8s_node_allocatable_cpu{}", + "legendFormat": "{{k8s_node_name}}", + "range": true, + "refId": "A" + } + ], + "title": "CPU Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: requested/allocatable CPU as saturation proxy.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 1 + }, + "id": 3, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by (k8s_node_name) (\r\n k8s_container_cpu_request{}\r\n)\r\n/\r\non(k8s_node_name)\r\nk8s_node_allocatable_cpu{}", + "legendFormat": "{{k8s_node_name}}", + "range": true, + "refId": "A" + } + ], + "title": "CPU Saturation (Load1 per CPU)", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 8 + }, + "id": 4, + "panels": [], + "title": "Memory", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: usage divided by usage plus available.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 9 + }, + "id": 5, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "k8s_node_memory_usage_bytes{}\r\n/\r\non(k8s_node_name)\r\n(\r\n k8s_node_memory_usage_bytes{}\r\n +\r\n k8s_node_memory_available_bytes{}\r\n)", + "legendFormat": "{{k8s_node_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Memory Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 6, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by (k8s_node_name) (\r\n k8s_container_memory_request_bytes{}\r\n)\r\n/\r\non(k8s_node_name)\r\nk8s_node_allocatable_memory_bytes{}", + "legendFormat": "{{k8s_node_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Memory Request Saturation (per Node)", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 7, + "panels": [], + "title": "Network", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: summed node network bytes across cluster.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Transmit/" + }, + "properties": [ + { + "id": "custom.transform", + "value": "negative-Y" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 17 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by (k8s_node_name) (\r\n rate(system_network_io_bytes_total{\r\n direction=\"receive\",\r\n }[5m])\r\n)", + "legendFormat": "{{k8s_node_name}} Receive ", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by (k8s_node_name) (\r\n rate(system_network_io_bytes_total{\r\n direction=\"transmit\",\r\n }[5m])\r\n)", + "legendFormat": "{{k8s_node_name}} Transmit ", + "range": true, + "refId": "B" + } + ], + "title": "Network Utilisation (Bytes Receive/Transmit)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: errors used because drop metrics are not implied.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Transmit/" + }, + "properties": [ + { + "id": "custom.transform", + "value": "negative-Y" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 17 + }, + "id": 9, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum(rate(system_network_dropped_total{direction=\"receive\"}[5m]))", + "legendFormat": "Receive", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum(rate(system_network_dropped_total{direction=\"transmit\"}[5m]))", + "legendFormat": "Transmit", + "range": true, + "refId": "B" + } + ], + "title": "Network Saturation (Errors Receive/Transmit)", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 24 + }, + "id": 10, + "panels": [], + "title": "Disk IO", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 25 + }, + "id": 11, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "avg by (k8s_node_name) (\r\n rate(system_disk_io_time_seconds_total{}[5m])\r\n)", + "legendFormat": "{{k8s_node_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Disk IO Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: weighted disk IO time used for saturation.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 25 + }, + "id": 12, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "avg by (k8s_node_name) (\r\n rate(system_disk_weighted_io_time_seconds_total{}[5m])\r\n)", + "legendFormat": "{{k8s_node_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Disk IO Saturation", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 32 + }, + "id": 13, + "panels": [], + "title": "Disk Space", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: filesystem usage from capacity and available.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 33 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum by (k8s_node_name) (\r\n k8s_node_filesystem_capacity_bytes{}\r\n -\r\n k8s_node_filesystem_available_bytes{}\r\n)\r\n/\r\non(k8s_node_name)\r\nsum by (k8s_node_name) (\r\n k8s_node_filesystem_capacity_bytes{}\r\n)", + "legendFormat": "{{k8s_node_name}}", + "range": true, + "refId": "A" + } + ], + "title": "Disk Space Utilisation", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "30s", + "schemaVersion": 42, + "tags": [ + "otel" + ], + "templating": { + "list": [ + { + "current": { + "text": "Prometheus", + "value": "prometheus" + }, + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "includeAll": true, + "name": "cluster", + "options": [], + "query": "label_values(k8s_node_cpu_time_seconds_total, k8s_cluster_name)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Node Exporter / USE Method / Cluster - OTEL", + "uid": "otel-node-exporter-use-method-cluster", + "version": 34 +} \ No newline at end of file diff --git a/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-use-method-node.json b/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-use-method-node.json new file mode 100644 index 000000000..4f8d6ae8d --- /dev/null +++ b/charts/opentelemetry-demo/grafana/provisioning/dashboards/node-exporter-use-method-node.json @@ -0,0 +1,1092 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "grafana", + "uid": "-- Grafana --" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 1, + "id": 0, + "links": [], + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 1, + "panels": [], + "title": "CPU", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 1 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "avg by (k8s_node_name) (\r\n rate(k8s_node_cpu_time_seconds_total{k8s_node_name=~\"$instance\"}[5m])\r\n)", + "legendFormat": "Utilisation", + "range": true, + "refId": "A" + } + ], + "title": "CPU Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: requested/allocatable CPU as saturation proxy.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 1 + }, + "id": 3, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "builder", + "expr": "sum(k8s_container_cpu_request{k8s_node_name=~\"$instance\"}) / (avg(k8s_node_allocatable_cpu{k8s_node_name=~\"$instance\"}))", + "legendFormat": "Saturation", + "range": true, + "refId": "A" + } + ], + "title": "CPU Saturation (Load1 per CPU)", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 8 + }, + "id": 4, + "panels": [], + "title": "Memory", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 9 + }, + "id": 5, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "builder", + "expr": "avg(k8s_node_memory_usage_bytes{k8s_node_name=~\"$instance\"}) / (avg(k8s_node_memory_usage_bytes{k8s_node_name=~\"$instance\"}) + (avg(k8s_node_memory_available_bytes{k8s_cluster_name=~\"$cluster\", k8s_node_name=~\"$instance\"})))", + "legendFormat": "Utilisation", + "range": true, + "refId": "A" + } + ], + "title": "Memory Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: requested/allocatable memory as saturation proxy.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "rds" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 9 + }, + "id": 6, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "builder", + "expr": "sum(k8s_container_memory_request_bytes{k8s_node_name=~\"$instance\"}) / (avg(k8s_node_allocatable_memory_bytes{k8s_node_name=~\"$instance\"}))", + "legendFormat": "Major page Faults", + "range": true, + "refId": "A" + } + ], + "title": "Memory Saturation (Major Page Faults)", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 7, + "panels": [], + "title": "Network", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Transmit/" + }, + "properties": [ + { + "id": "custom.transform", + "value": "negative-Y" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 17 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "sum(rate(system_network_io_bytes_total{k8s_cluster_name=~\"$cluster\",k8s_node_name=~\"$instance\",direction=\"receive\"}[5m]))", + "legendFormat": "Receive", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "expr": "sum(rate(system_network_io_bytes_total{k8s_cluster_name=~\"$cluster\",k8s_node_name=~\"$instance\",direction=\"transmit\"}[5m]))", + "legendFormat": "Transmit", + "refId": "B" + } + ], + "title": "Network Utilisation (Bytes Receive/Transmit)", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 1 + } + ] + }, + "unit": "pps" + }, + "overrides": [ + { + "matcher": { + "id": "byRegexp", + "options": "/Transmit/" + }, + "properties": [ + { + "id": "custom.transform", + "value": "negative-Y" + } + ] + } + ] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 17 + }, + "id": 9, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "builder", + "expr": "sum(rate(system_network_dropped_total{k8s_node_name=~\"$instance\", direction=\"receive\"}[5m]))", + "legendFormat": "Receive", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "builder", + "expr": "sum(rate(system_network_dropped_total{k8s_node_name=~\"$instance\", direction=\"transmit\"}[5m]))", + "legendFormat": "Transmit", + "range": true, + "refId": "B" + } + ], + "title": "Network Saturation (Drops Receive/Transmit)", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 24 + }, + "id": 10, + "panels": [], + "title": "Disk IO", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: filesystem usage replaces disk IO utilisation.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 25 + }, + "id": 11, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "avg by (k8s_node_name) (\n rate(system_disk_io_time_seconds_total{\n k8s_node_name=~\"$instance\"\n }[5m])\n)", + "legendFormat": "Utilisation", + "range": true, + "refId": "A" + } + ], + "title": "Disk IO Utilisation", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "description": "Assumption: ephemeral storage requests/capacity as IO saturation proxy.", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 25 + }, + "id": 12, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sum(k8s_container_ephemeralstorage_request_bytes{k8s_node_name=~\"$instance\"}) / avg(k8s_node_filesystem_capacity_bytes{k8s_node_name=~\"$instance\"})", + "legendFormat": "Saturation", + "range": true, + "refId": "A" + } + ], + "title": "Disk IO Saturation", + "type": "timeseries" + }, + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 32 + }, + "id": 13, + "panels": [], + "title": "Disk Space", + "type": "row" + }, + { + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisBorderShow": false, + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "barWidthFactor": 0.6, + "drawStyle": "line", + "fillOpacity": 100, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "showValues": false, + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": 0 + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 24, + "x": 0, + "y": 33 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": false + }, + "tooltip": { + "hideZeros": false, + "mode": "multi", + "sort": "desc" + } + }, + "pluginVersion": "12.3.1", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "$datasource" + }, + "editorMode": "code", + "expr": "sort_desc(1 -\n (\n k8s_node_filesystem_available_bytes{k8s_node_name=~\"$instance\"}\n /\n k8s_node_filesystem_capacity_bytes{k8s_node_name=~\"$instance\"}\n )\n)", + "legendFormat": "Utilisation", + "range": true, + "refId": "A" + } + ], + "title": "Disk Space Utilisation", + "type": "timeseries" + } + ], + "preload": false, + "refresh": "30s", + "schemaVersion": 42, + "tags": [ + "node-exporter-mixin" + ], + "templating": { + "list": [ + { + "current": { + "text": "Prometheus", + "value": "prometheus" + }, + "name": "datasource", + "options": [], + "query": "prometheus", + "refresh": 1, + "type": "datasource" + }, + { + "allValue": ".*", + "current": { + "text": "All", + "value": "$__all" + }, + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "hide": 2, + "includeAll": true, + "name": "cluster", + "options": [], + "query": "label_values(k8s_node_cpu_time_seconds_total, k8s_cluster_name)", + "refresh": 2, + "sort": 1, + "type": "query" + }, + { + "allValue": ".*", + "datasource": { + "type": "prometheus", + "uid": "${datasource}" + }, + "includeAll": false, + "name": "instance", + "options": [], + "query": "label_values(k8s_node_cpu_time_seconds_total{k8s_cluster_name=~\"$cluster\"}, k8s_node_name)", + "refresh": 2, + "sort": 1, + "type": "query" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": {}, + "timezone": "utc", + "title": "Node Exporter / USE Method / Node - OTEL", + "uid": "fac67cfbe174d3ef53eb473d73d9212f", + "version": 22 +} \ No newline at end of file