From 238038b6780f7d2b517d61b1f4bcef69aa535d8b Mon Sep 17 00:00:00 2001 From: gardener-robot-ci-1 Date: Mon, 13 Jul 2020 12:23:12 +0000 Subject: [PATCH] Prepare Next Dev Cycle v1.2.0-dev --- VERSION | 2 +- charts/images.yaml | 4 +- charts/internal/cilium-monitoring/Chart.yaml | 4 + .../cilium-monitoring/charts/util-templates | 1 + .../cilium-monitoring/cilium-dashboard.json | 5669 +++++++++++++++++ .../cilium-operator-dashboard.json | 305 + .../cilium-monitoring/hubble-dashboard.json | 1405 ++++ .../cilium-monitoring/templates/_helpers.tpl | 18 + .../templates/cilium-monitoring-config.yaml | 95 + charts/internal/cilium-monitoring/values.yaml | 69 + .../agent/templates/podsecuritypolicy.yaml | 27 +- .../hubble-relay/templates/deployment.yaml | 12 +- .../operator/templates/podsecuritypolicy.yaml | 25 +- charts/internal/cilium/charts/utils-templates | 1 + charts/internal/cilium/values.yaml | 14 +- .../charts => }/utils-templates/Chart.yaml | 0 .../charts => }/utils-templates/README.md | 0 .../utils-templates/templates/_versions.tpl | 0 example/controller-registration.yaml | 4 +- pkg/charts/utils.go | 4 +- pkg/cilium/types.go | 6 + pkg/controller/actuator.go | 17 +- pkg/controller/actuator_delete.go | 6 + pkg/controller/actuator_reconcile.go | 33 +- .../gardener/pkg/utils/chart/chart.go | 192 + vendor/modules.txt | 1 + 26 files changed, 7873 insertions(+), 41 deletions(-) create mode 100644 charts/internal/cilium-monitoring/Chart.yaml create mode 120000 charts/internal/cilium-monitoring/charts/util-templates create mode 100644 charts/internal/cilium-monitoring/cilium-dashboard.json create mode 100644 charts/internal/cilium-monitoring/cilium-operator-dashboard.json create mode 100644 charts/internal/cilium-monitoring/hubble-dashboard.json create mode 100644 charts/internal/cilium-monitoring/templates/_helpers.tpl create mode 100644 charts/internal/cilium-monitoring/templates/cilium-monitoring-config.yaml create mode 100644 charts/internal/cilium-monitoring/values.yaml create mode 120000 charts/internal/cilium/charts/utils-templates rename charts/{internal/cilium/charts => }/utils-templates/Chart.yaml (100%) rename charts/{internal/cilium/charts => }/utils-templates/README.md (100%) rename charts/{internal/cilium/charts => }/utils-templates/templates/_versions.tpl (100%) create mode 100644 vendor/github.com/gardener/gardener/pkg/utils/chart/chart.go diff --git a/VERSION b/VERSION index 795460fce..6c67523f8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v1.1.0 +v1.2.0-dev diff --git a/charts/images.yaml b/charts/images.yaml index 73c7d1631..79e4ef12c 100644 --- a/charts/images.yaml +++ b/charts/images.yaml @@ -17,8 +17,8 @@ images: tag: v2.0.7 - name: cilium-nodeinit sourceRepository: github.com/cilium/cilium - repository: gcr.io/google-containers/startup-script - tag: v1 + repository: docker.io/cilium/startup-script + tag: v3 - name: hubble-ui sourceRepository: github.com/cilium/hubble-ui repository: quay.io/cilium/hubble-ui diff --git a/charts/internal/cilium-monitoring/Chart.yaml b/charts/internal/cilium-monitoring/Chart.yaml new file mode 100644 index 000000000..fce8b8e0f --- /dev/null +++ b/charts/internal/cilium-monitoring/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: A Helm chart for Cilium Monitoring +name: cilium-monitoring +version: 0.1.0 diff --git a/charts/internal/cilium-monitoring/charts/util-templates b/charts/internal/cilium-monitoring/charts/util-templates new file mode 120000 index 000000000..04caed65e --- /dev/null +++ b/charts/internal/cilium-monitoring/charts/util-templates @@ -0,0 +1 @@ +../../../utils-templates \ No newline at end of file diff --git a/charts/internal/cilium-monitoring/cilium-dashboard.json b/charts/internal/cilium-monitoring/cilium-dashboard.json new file mode 100644 index 000000000..556176ad6 --- /dev/null +++ b/charts/internal/cilium-monitoring/cilium-dashboard.json @@ -0,0 +1,5669 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "description": "Dashboard for Cilium (https://cilium.io/) metrics", + "editable": true, + "gnetId": null, + "graphTooltip": 1, + "id": 18, + "iteration": 1598279295848, + "links": [], + "panels": [ + { + "aliasColors": { + "error": "#890f02", + "warning": "#c15c17" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 0 + }, + "hiddenSeries": false, + "id": 76, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "error", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_errors_warnings_total{k8s_app=\"cilium\"}[2m])) by (pod, level) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{level}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Errors & Warnings", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "avg": "#cffaff" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 0 + }, + "hiddenSeries": false, + "id": 96, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "max", + "fillBelowTo": "min", + "lines": false + }, + { + "alias": "min", + "lines": false + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "min(irate(cilium_process_cpu_seconds_total{k8s_app=\"cilium\"}[2m])) by (pod) * 100", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "min", + "refId": "A" + }, + { + "expr": "avg(irate(cilium_process_cpu_seconds_total{k8s_app=\"cilium\"}[2m])) by (pod) * 100", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "avg", + "refId": "B" + }, + { + "expr": "max(irate(cilium_process_cpu_seconds_total{k8s_app=\"cilium\"}[2m])) by (pod) * 100", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "max", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU Usage per node", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 5 + }, + "id": 161, + "panels": [], + "title": "Generic", + "type": "row" + }, + { + "aliasColors": { + "AVG_virtual_memory_bytes": "#508642", + "Average Virtual Memory": "#f9d9f9", + "MAX_virtual_memory_bytes": "#e5ac0e", + "Max Virtual Memory": "#584477" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 8, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 26, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Max Virtual Memory", + "fillBelowTo": "Min Virtual Memory", + "lines": false + }, + { + "alias": "Min Virtual Memory", + "lines": false + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "min(cilium_process_virtual_memory_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Min Virtual Memory", + "refId": "A" + }, + { + "expr": "avg(cilium_process_virtual_memory_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Average Virtual Memory", + "refId": "B" + }, + { + "expr": "max(cilium_process_virtual_memory_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Max Virtual Memory", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Virtual Memory Bytes", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "MAX_resident_memory_bytes_max": "#e5ac0e" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 8, + "x": 8, + "y": 6 + }, + "hiddenSeries": false, + "id": 24, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(cilium_process_resident_memory_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "AVG_resident_memory_bytes", + "refId": "C" + }, + { + "expr": "max(cilium_process_resident_memory_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "MAX_resident_memory_bytes_max", + "refId": "D" + }, + { + "expr": "min(cilium_process_resident_memory_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "MIN_resident_memory_bytes_min", + "refId": "E" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Resident memory status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "all nodes": "#e5a8e2" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 8, + "x": 16, + "y": 6 + }, + "hiddenSeries": false, + "id": 98, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "all nodes", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(cilium_process_open_fds{k8s_app=\"cilium\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "all nodes", + "refId": "A" + }, + { + "expr": "min(cilium_process_open_fds{k8s_app=\"cilium\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "min/node", + "refId": "B" + }, + { + "expr": "avg(cilium_process_open_fds{k8s_app=\"cilium\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "avg/node", + "refId": "C" + }, + { + "expr": "max(cilium_process_open_fds{k8s_app=\"cilium\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "max/node", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Open file descriptors", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "MAX_resident_memory_bytes_max": "#e5ac0e" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "BPF memory usage in the entire system including components not managed by Cilium.", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 8, + "x": 8, + "y": 11 + }, + "hiddenSeries": false, + "id": 178, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(cilium_bpf_maps_virtual_memory_max_bytes{k8s_app=\"cilium\"} + cilium_bpf_progs_virtual_memory_max_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "AVG_bpf_memory_bytes_avg", + "refId": "C" + }, + { + "expr": "max(cilium_bpf_maps_virtual_memory_max_bytes{k8s_app=\"cilium\"} + cilium_bpf_progs_virtual_memory_max_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "MAX_bpf_memory_bytes_max", + "refId": "D" + }, + { + "expr": "min(cilium_bpf_maps_virtual_memory_max_bytes{k8s_app=\"cilium\"} + cilium_bpf_progs_virtual_memory_max_bytes{k8s_app=\"cilium\"})", + "format": "time_series", + "hide": false, + "instant": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "MIN_bpf_memory_bytes_min", + "refId": "E" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "System-wide BPF memory usage", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 155, + "panels": [], + "title": "API", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 17 + }, + "hiddenSeries": false, + "id": 152, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_agent_api_process_time_seconds_sum{k8s_app=\"cilium\"}[2m])/rate(cilium_agent_api_process_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{method}} {{path}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "API call latency (average node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 17 + }, + "hiddenSeries": false, + "id": 153, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(rate(cilium_agent_api_process_time_seconds_sum{k8s_app=\"cilium\"}[2m])/rate(cilium_agent_api_process_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{method}} {{path}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "API call latency (max node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 23 + }, + "hiddenSeries": false, + "id": 156, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_agent_api_process_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{method}} {{path}} ", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# API calls (average node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 23 + }, + "hiddenSeries": false, + "id": 157, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(rate(cilium_agent_api_process_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{method}} {{path}} ", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "# API calls (max node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 29 + }, + "hiddenSeries": false, + "id": 159, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_agent_api_process_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path, return_code)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{return_code}} ({{method}} {{path}} )", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "API return codes (average node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 29 + }, + "hiddenSeries": false, + "id": 158, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_agent_api_process_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path, return_code)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{return_code}} ({{method}} {{path}} )", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "API return codes (sum all nodes)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 35 + }, + "id": 72, + "panels": [], + "title": "Cilium", + "type": "row" + }, + { + "content": "", + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 36 + }, + "id": 144, + "links": [], + "mode": "markdown", + "title": "BPF", + "type": "text" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 8, + "x": 0, + "y": 37 + }, + "hiddenSeries": false, + "id": 142, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "hideEmpty": false, + "hideZero": true, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "topk(5, avg(rate(cilium_bpf_map_ops_total{k8s_app=\"cilium\"}[5m])) by (pod, mapName, operation))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{mapName}} {{operation}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "map ops (average node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 8, + "x": 8, + "y": 37 + }, + "hiddenSeries": false, + "id": 147, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "hideEmpty": false, + "hideZero": true, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "topk(5, max(rate(cilium_bpf_map_ops_total{k8s_app=\"cilium\"}[5m])) by (pod, mapName, operation))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{mapName}} {{operation}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "map ops (max node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 37 + }, + "hiddenSeries": false, + "id": 143, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_bpf_map_ops_total{k8s_app=\"cilium\",outcome=\"fail\"}[5m])) by (pod, mapName, operation)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{mapName}} {{operation}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "map ops (sum failures)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "content": "", + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 43 + }, + "id": 47, + "links": [], + "mode": "markdown", + "title": "Cilium network information", + "type": "text" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 44 + }, + "hiddenSeries": false, + "id": 81, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_forward_count_total{k8s_app=\"cilium\"}[2m])) by (pod, direction)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{direction}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Forwarded Packets", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 12, + "y": 44 + }, + "hiddenSeries": false, + "id": 111, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "EGRESS", + "yaxis": 1 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_forward_bytes_total{k8s_app=\"cilium\"}[2m])) by (pod, direction) * 8", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{direction}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Forwarded Traffic", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "Alive ipv4": "#0a50a1", + "Alive ipv4 non-TCP": "#f9d9f9", + "Alive ipv6": "#614d93", + "Alive ipv6 TCP": "#806eb7", + "Alive ipv6 non-TCP": "#614d93", + "Alive CT entries ipv6": "#badff4", + "Deleted CT entries ipv4": "#bf1b00", + "Deleted ipv4": "#890f02", + "Deleted ipv4 non-TCP": "#890f02", + "Deleted ipv6": "#bf1b00", + "L7 denied request": "#890f02", + "L7 forwarded request": "#7eb26d", + "avg": "#e0f9d7", + "deleted": "#6ed0e0", + "deleted max": "#447ebc", + "max": "#629e51", + "min": "#629e51" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 50 + }, + "hiddenSeries": false, + "id": 56, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "deleted", + "yaxis": 2 + }, + { + "alias": "max", + "fillBelowTo": "min", + "lines": false + }, + { + "alias": "min", + "lines": false + }, + { + "alias": "deleted max", + "yaxis": 2 + }, + { + "alias": "deleted min", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "min(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"alive\", family=\"ipv4\", protocol=\"TCP\"}) by (family,status)", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "min", + "refId": "A" + }, + { + "expr": "avg(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"alive\", family=\"ipv4\", protocol=\"TCP\"}) by (family,status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "avg", + "refId": "B" + }, + { + "expr": "max(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"alive\", family=\"ipv4\", protocol=\"TCP\"}) by (family,status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "max", + "refId": "C" + }, + { + "expr": "avg(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"deleted\", family=\"ipv4\", protocol=\"TCP\"}) by (family,status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "deleted", + "refId": "D" + }, + { + "expr": "max(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"deleted\", family=\"ipv4\", protocol=\"TCP\"}) by (family,status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "deleted max", + "refId": "E" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "IPv4 Conntrack TCP", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "dump_interrupts conntrack ipv4": "#ea6460", + "dump_interrupts conntrack ipv6": "#58140c" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 50 + }, + "hiddenSeries": false, + "id": 79, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(cilium_datapath_errors_total{k8s_app=\"cilium\"}) by (pod, area, family, name)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{name}} {{area}} {{family}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Datapath Errors", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 55 + }, + "hiddenSeries": false, + "id": 89, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "avg(cilium_unreachable_health_endpoints) by (pod)", + "yaxis": 2 + }, + { + "alias": "average unreachable health endpoints", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(cilium_unreachable_nodes{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unreachable nodes", + "refId": "A" + }, + { + "expr": "sum(cilium_unreachable_health_endpoints{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "unreachable health endpoints", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Connectivity Health", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "Alive ipv4": "#0a50a1", + "Alive ipv4 non-TCP": "#f9d9f9", + "Alive ipv6": "#614d93", + "Alive ipv6 TCP": "#806eb7", + "Alive ipv6 non-TCP": "#614d93", + "Alive CT entries ipv6": "#badff4", + "Deleted CT entries ipv4": "#bf1b00", + "Deleted ipv4": "#890f02", + "Deleted ipv4 non-TCP": "#890f02", + "Deleted ipv6": "#bf1b00", + "L7 denied request": "#890f02", + "L7 forwarded request": "#7eb26d", + "avg": "#e0f9d7", + "deleted": "#6ed0e0", + "deleted max": "#447ebc", + "max": "#629e51", + "min": "#629e51" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 56 + }, + "hiddenSeries": false, + "id": 129, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "deleted", + "yaxis": 2 + }, + { + "alias": "max", + "fillBelowTo": "min", + "lines": false + }, + { + "alias": "min", + "lines": false + }, + { + "alias": "deleted max", + "yaxis": 2 + }, + { + "alias": "deleted min", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "min(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"alive\", family=\"ipv4\", protocol=\"non-TCP\"}) by (family,status)", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "min", + "refId": "A" + }, + { + "expr": "avg(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"alive\", family=\"ipv4\", protocol=\"non-TCP\"}) by (family,status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "avg", + "refId": "B" + }, + { + "expr": "max(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"alive\", family=\"ipv4\", protocol=\"non-TCP\"}) by (family,status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "max", + "refId": "C" + }, + { + "expr": "avg(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"deleted\", family=\"ipv4\", protocol=\"non-TCP\"}) by (family,status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "deleted", + "refId": "D" + }, + { + "expr": "max(cilium_datapath_conntrack_gc_entries{k8s_app=\"cilium\", status=\"deleted\", family=\"ipv4\", protocol=\"non-TCP\"}) by (family,status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "deleted max", + "refId": "E" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "IPv4 Conntrack Non-TCP", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "Avg": "#cca300", + "Max": "rgb(167, 150, 111)" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 60 + }, + "hiddenSeries": false, + "id": 93, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Max", + "fillBelowTo": "Min", + "lines": false + }, + { + "alias": "Min", + "lines": false + }, + { + "alias": "add k8s", + "yaxis": 2 + }, + { + "alias": "delete k8s", + "yaxis": 2 + }, + { + "alias": "update k8s", + "yaxis": 2 + }, + { + "alias": "add local-node", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_nodes_all_events_received_total{k8s_app=\"cilium\"}[2m])) by (pod, eventType, source) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{eventType}} {{source}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Node Events", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "ipv4": "#5195ce", + "ipv6": "#6d1f62" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "decimals": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 62 + }, + "hiddenSeries": false, + "id": 87, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "max": true, + "min": true, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(cilium_ip_addresses{k8s_app=\"cilium\"}) by (pod, family)\n", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{family}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Allocated Addresses", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "Average Nodes": "#eab839", + "Max Nodes": "#c15c17" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 65 + }, + "hiddenSeries": false, + "id": 91, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Max Nodes", + "fillBelowTo": "Min Nodes", + "lines": false + }, + { + "alias": "Min Nodes", + "lines": false + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(cilium_nodes_all_num{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Average Nodes", + "refId": "A" + }, + { + "expr": "min(cilium_nodes_all_num{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Min Nodes", + "refId": "B" + }, + { + "expr": "max(cilium_nodes_all_num{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Max Nodes", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Nodes", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 67 + }, + "hiddenSeries": false, + "id": 39, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_drop_count_total{direction=\"EGRESS\", k8s_app=\"cilium\"}[2m])) by (reason)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{reason}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Dropped Egress Packets", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 72 + }, + "hiddenSeries": false, + "id": 113, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_drop_bytes_total{direction=\"EGRESS\", k8s_app=\"cilium\"}[2m])) by (reason) * 8", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{reason}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Dropped Egress Traffic", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "content": "", + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 77 + }, + "id": 28, + "links": [], + "mode": "markdown", + "title": "Policy", + "type": "text" + }, + { + "aliasColors": { + "L7 denied request": "#ea6460", + "L7 forwarded request": "#7eb26d", + "denied": "#bf1b00" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 78 + }, + "hiddenSeries": false, + "id": 53, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "L7 denied request", + "yaxis": 2 + }, + { + "alias": "denied", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_policy_l7_denied_total{k8s_app=\"cilium\"}[2m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "denied", + "refId": "A" + }, + { + "expr": "sum(rate(cilium_policy_l7_forwarded_total{k8s_app=\"cilium\"}[2m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "forwarded", + "refId": "B" + }, + { + "expr": "sum(rate(cilium_policy_l7_received_total{k8s_app=\"cilium\"}[2m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "received", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "L7 forwarded request", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "reqps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 78 + }, + "hiddenSeries": false, + "id": 37, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_drop_count_total{direction=\"INGRESS\", k8s_app=\"cilium\"}[5m])) by (reason)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{reason}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Cilium drops Ingress", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "both": "#7eb26d", + "egress": "#e5ac0e", + "ingress": "#e0752d", + "none": "#bf1b00" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 83 + }, + "hiddenSeries": false, + "id": 33, + "legend": { + "alignAsTable": false, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": null, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(cilium_policy_endpoint_enforcement_status{k8s_app=\"cilium\"}) by (enforcement)", + "format": "time_series", + "hide": false, + "instant": true, + "interval": "1s", + "intervalFactor": 1, + "legendFormat": "{{enforcement}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Endpoints policy enforcement status", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "series", + "name": null, + "show": true, + "values": [ + "total" + ] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 83 + }, + "hiddenSeries": false, + "id": 114, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_drop_bytes_total{direction=\"INGRESS\", k8s_app=\"cilium\"}[2m])) by (reason) * 8", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{reason}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Dropped Ingress Traffic", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "max": "#f2c96d", + "policy errors": "#bf1b00", + "policy import errors": "#bf1b00" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 88 + }, + "hiddenSeries": false, + "id": 85, + "legend": { + "alignAsTable": false, + "avg": false, + "current": true, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "policy errors", + "yaxis": 2 + }, + { + "alias": "max", + "fillBelowTo": "min", + "lines": false + }, + { + "alias": "min", + "lines": false + }, + { + "alias": "policy import errors", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "min(cilium_policy_count{k8s_app=\"cilium\"}) by(pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "min", + "refId": "A" + }, + { + "expr": "avg(cilium_policy_count{k8s_app=\"cilium\"}) by(pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "avg", + "refId": "B" + }, + { + "expr": "max(cilium_policy_count{k8s_app=\"cilium\"}) by(pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "max", + "refId": "C" + }, + { + "expr": "sum(cilium_policy_import_errors{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "policy import errors", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Policies Per Node", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "average duration": "#d683ce", + "folds": "#614d93", + "max duration": "#614d93", + "max trigger": "#967302", + "min duration": "#584477", + "min trigger": "#fceaca" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 2, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 88 + }, + "hiddenSeries": false, + "id": 102, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "max", + "fillBelowTo": "min trigger", + "lines": false + }, + { + "alias": "min trigger", + "lines": false + }, + { + "alias": "folds", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "min(rate(cilium_triggers_policy_update_total{k8s_app=\"cilium\"}[2m])) by (pod) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "min trigger", + "refId": "A" + }, + { + "expr": "avg(rate(cilium_triggers_policy_update_total{k8s_app=\"cilium\"}[2m])) by (pod) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "average trigger", + "refId": "B" + }, + { + "expr": "max(rate(cilium_triggers_policy_update_total{k8s_app=\"cilium\"}[2m])) by (pod) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "max trigger", + "refId": "C" + }, + { + "expr": "max(rate(cilium_triggers_policy_update_folds{k8s_app=\"cilium\"}[2m])) by (pod) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "folds", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Policy Trigger Runs", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "avg": "#f9d9f9", + "max": "#806eb7", + "min": "#806eb7" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 6, + "y": 93 + }, + "hiddenSeries": false, + "id": 117, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "max", + "fillBelowTo": "min", + "lines": false + }, + { + "alias": "min", + "lines": false + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "min(cilium_policy_max_revision{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "min", + "refId": "A" + }, + { + "expr": "avg(cilium_policy_max_revision{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "avg", + "refId": "B" + }, + { + "expr": "max(cilium_policy_max_revision{k8s_app=\"cilium\"}) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "max", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Policy Revision", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "content": "", + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 98 + }, + "id": 73, + "links": [], + "mode": "markdown", + "title": "Endpoints", + "type": "text" + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "decimals": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 99 + }, + "hiddenSeries": false, + "id": 55, + "legend": { + "alignAsTable": false, + "avg": true, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "avg(histogram_quantile(0.90, rate(cilium_endpoint_regeneration_time_stats_seconds_bucket{k8s_app=\"cilium\", scope!=\"buildDuration\"}[5m]))) by (scope)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{scope}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Endpoint regeneration time (90th percentile)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "decimals": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 99 + }, + "hiddenSeries": false, + "id": 115, + "legend": { + "alignAsTable": false, + "avg": true, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "avg(histogram_quantile(0.99, rate(cilium_endpoint_regeneration_time_stats_seconds_bucket{k8s_app=\"cilium\", scope!=\"buildDuration\"}[5m]))) by (scope)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{scope}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Endpoint regeneration time (99th percentile)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "fail": "#bf1b00", + "fail/min": "#890f02", + "success": "#447ebc", + "success/min": "#3f6833" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 3, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 108 + }, + "hiddenSeries": false, + "id": 49, + "legend": { + "avg": true, + "current": false, + "max": true, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 2, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "fail", + "yaxis": 2 + }, + { + "alias": "success" + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_endpoint_regenerations{k8s_app=\"cilium\"}[30s])) by(outcome)", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "{{outcome}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Endpoint regenerations", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "disconnecting": "#614d93", + "ready": "rgba(81, 220, 95, 0.52)", + "waiting-to-regenerate": "#0a50a1" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 108 + }, + "hiddenSeries": false, + "id": 51, + "legend": { + "alignAsTable": false, + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 2, + "links": [], + "nullPointMode": "connected", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(cilium_endpoint_state{k8s_app=\"cilium\"}) by (endpoint_state)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{endpoint_state}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Cilium endpoint state", + "tooltip": { + "shared": false, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "content": "", + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 113 + }, + "id": 74, + "links": [], + "mode": "markdown", + "title": "Controllers", + "type": "text" + }, + { + "aliasColors": { + "Failed": "#bf1b00", + "Failing": "#890f02", + "Runs": "#5195ce" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 3, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 114 + }, + "hiddenSeries": false, + "id": 70, + "legend": { + "alignAsTable": false, + "avg": true, + "current": false, + "max": true, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "Failing", + "yaxis": 1 + }, + { + "alias": "Failed", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_controllers_runs_total{k8s_app=\"cilium\"}[2m])) by (pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Runs", + "refId": "A" + }, + { + "expr": "sum(cilium_controllers_failing{k8s_app=\"cilium\"}) by(pod)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "Failed", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Controllers", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "duration failure": "#890f02", + "duration success": "#508642", + "failure": "#890f02", + "runs failure": "#890f02", + "runs success": "#7eb26d", + "success": "#508642" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 114 + }, + "hiddenSeries": false, + "id": 68, + "legend": { + "alignAsTable": false, + "avg": true, + "current": false, + "hideEmpty": false, + "max": true, + "min": true, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "repeat": null, + "repeatDirection": "h", + "seriesOverrides": [ + { + "alias": "success", + "yaxis": 1 + }, + { + "alias": "failure", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_controllers_runs_duration_seconds_sum{k8s_app=\"cilium\"}[2m])) by (pod, status) / sum(rate(cilium_controllers_runs_duration_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, status)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{status}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Controller Durations", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "s", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "content": "", + "datasource": null, + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 119 + }, + "id": 60, + "links": [], + "mode": "markdown", + "title": "Kubernetes integration", + "type": "text" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 120 + }, + "hiddenSeries": false, + "id": 163, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_k8s_client_api_latency_time_seconds_sum{k8s_app=\"cilium\"}[2m])/rate(cilium_k8s_client_api_latency_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{method}} {{path}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "apiserver latency (average node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 120 + }, + "hiddenSeries": false, + "id": 165, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "max(rate(cilium_k8s_client_api_latency_time_seconds_sum{k8s_app=\"cilium\"}[2m])/rate(cilium_k8s_client_api_latency_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{method}} {{path}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "apiserver latency (max node)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 127 + }, + "hiddenSeries": false, + "id": 168, + "legend": { + "alignAsTable": true, + "avg": true, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_k8s_client_api_latency_time_seconds_count{k8s_app=\"cilium\"}[2m])) by (pod, method, path)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{method}} {{path}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "apiserver #calls (sum all nodes)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 127 + }, + "hiddenSeries": false, + "id": 166, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_k8s_client_api_calls_counter{k8s_app=\"cilium\"}[2m])) by (pod, method, return_code)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{method}} {{return_code}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "apiserver calls (sum all nodes)", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 6, + "w": 12, + "x": 0, + "y": 135 + }, + "hiddenSeries": false, + "id": 172, + "legend": { + "alignAsTable": false, + "avg": true, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_kubernetes_events_received_total{k8s_app=\"cilium\", equal=\"true\", valid=\"true\"}[5m])) by (pod, scope, action)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{action}} {{scope}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Valid, Unnecessary K8s Events Received", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 135 + }, + "hiddenSeries": false, + "id": 120, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_kubernetes_events_total{k8s_app=\"cilium\", scope=\"Endpoint\"}[2m])) by (pod, action) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{action}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Endpoints Events", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 141 + }, + "hiddenSeries": false, + "id": 175, + "legend": { + "avg": true, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(cilium_kubernetes_events_received_total{k8s_app=\"cilium\", equal=\"false\", valid=\"true\"}[5m])) by (pod, scope, action, valid)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{action}} {{scope}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Valid, Necessary K8s Events Received", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "create avg": "#70dbed", + "delete avg": "#e24d42", + "update avg": "#e0f9d7" + }, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 142 + }, + "hiddenSeries": false, + "id": 109, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_kubernetes_events_total{k8s_app=\"cilium\", scope=\"Pod\"}[2m])) by (pod, action) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{action}} avg", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Pod Events", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 0, + "y": 149 + }, + "hiddenSeries": false, + "id": 118, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_kubernetes_events_total{k8s_app=\"cilium\", scope=\"Service\"}[2m])) by (pod, action) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{action}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Service Events", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 12, + "x": 12, + "y": 149 + }, + "hiddenSeries": false, + "id": 121, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "avg(rate(cilium_kubernetes_events_total{k8s_app=\"cilium\", scope=\"Namespace\"}[2m])) by (pod, action) * 60", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{action}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Namespace Events", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "opm", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": false, + "schemaVersion": 25, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": "cilium.*", + "current": { + "selected": false, + "text": "All", + "value": "$__all" + }, + "datasource": "prometheus", + "definition": "label_values(kube_pod_info{pod=~\"^cilium-[a-z|A-Z|0-9]+$\"},pod)", + "hide": 0, + "includeAll": true, + "label": null, + "multi": false, + "name": "pod", + "options": [], + "query": "label_values(kube_pod_info{pod=~\"^cilium-[a-z|A-Z|0-9]+$\"},pod)", + "refresh": 2, + "regex": "", + "skipUrlSync": false, + "sort": 1, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "2m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "utc", + "title": "Cilium Metrics", + "uid": "vtuWtdumz", + "version": 1 +} \ No newline at end of file diff --git a/charts/internal/cilium-monitoring/cilium-operator-dashboard.json b/charts/internal/cilium-monitoring/cilium-operator-dashboard.json new file mode 100644 index 000000000..99deadbac --- /dev/null +++ b/charts/internal/cilium-monitoring/cilium-operator-dashboard.json @@ -0,0 +1,305 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "id": 4, + "links": [], + "panels": [ + { + "aliasColors": { + "avg": "#cffaff" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 0, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 0 + }, + "hiddenSeries": false, + "id": 24, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "max", + "fillBelowTo": "min", + "lines": false + }, + { + "alias": "min", + "lines": false + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "min(irate(cilium_operator_process_cpu_seconds_total{io_cilium_app=\"operator\"}[2m])) by (pod) * 100", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "min", + "refId": "A" + }, + { + "expr": "avg(irate(cilium_operator_process_cpu_seconds_total{io_cilium_app=\"operator\"}[2m])) by (pod) * 100", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "avg", + "refId": "B" + }, + { + "expr": "max(irate(cilium_operator_process_cpu_seconds_total{io_cilium_app=\"operator\"}[2m])) by (pod) * 100", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "max", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "CPU Usage per node", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": { + "MAX_resident_memory_bytes_max": "#e5ac0e" + }, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 8 + }, + "hiddenSeries": false, + "id": 26, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "paceLength": 10, + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(cilium_operator_process_resident_memory_bytes{io_cilium_app=\"operator\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "AVG_resident_memory_bytes", + "refId": "C" + }, + { + "expr": "max(cilium_operator_process_resident_memory_bytes{io_cilium_app=\"operator\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "MAX_resident_memory_bytes_max", + "refId": "D" + }, + { + "expr": "min(cilium_operator_process_resident_memory_bytes{io_cilium_app=\"operator\"})", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "MIN_resident_memory_bytes_min", + "refId": "E" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Resident memory status", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": false, + "schemaVersion": 25, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "2m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Cilium Operator", + "uid": "1GC0TT4Wz", + "version": 1 +} \ No newline at end of file diff --git a/charts/internal/cilium-monitoring/hubble-dashboard.json b/charts/internal/cilium-monitoring/hubble-dashboard.json new file mode 100644 index 000000000..4c07455aa --- /dev/null +++ b/charts/internal/cilium-monitoring/hubble-dashboard.json @@ -0,0 +1,1405 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "id": 8, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 14, + "panels": [], + "title": "General Processing", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Min / Max / Avg total number of flows processed ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 1 + }, + "hiddenSeries": false, + "id": 12, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "max", + "fillBelowTo": "avg", + "lines": false + }, + { + "alias": "avg", + "fill": 0, + "fillBelowTo": "min" + }, + { + "alias": "min", + "lines": false + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "avg(sum(rate(hubble_flows_processed_total[2m])) by (pod))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "avg", + "refId": "A" + }, + { + "expr": "min(sum(rate(hubble_flows_processed_total[2m])) by (pod))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "min", + "refId": "B" + }, + { + "expr": "max(sum(rate(hubble_flows_processed_total[2m])) by (pod))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "max", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Flows processed Per Node", + "tooltip": { + "shared": true, + "sort": 1, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Total number of flows divided by type (e.g., drop / trace).", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 1 + }, + "hiddenSeries": false, + "id": 32, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_flows_processed_total[2m])) by (pod, type)", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{type}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Flows Types", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "L7 flow distribution by subtype.", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 6 + }, + "hiddenSeries": false, + "id": 59, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_flows_processed_total{type=\"L7\"}[2m])) by (pod, subtype)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{subtype}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "L7 Flow Distribution", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Flow distribution traces by subtype (overlay, stack, or endpoint).", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 6 + }, + "hiddenSeries": false, + "id": 60, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_flows_processed_total{type=\"Trace\"}[2m])) by (pod, subtype)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{subtype}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Trace Flow Distribution", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 11 + }, + "id": 16, + "panels": [], + "title": "Network", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Forwarded vs Dropped flows. ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 12 + }, + "hiddenSeries": false, + "id": 33, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_flows_processed_total[2m])) by (pod, verdict)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{verdict}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Forwarded vs Dropped", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Total drops per reason for dropping. ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 12 + }, + "hiddenSeries": false, + "id": 8, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_drop_total[2m])) by (pod, reason)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{reason}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Drop Reason", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Port distribution per protocol. ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 17 + }, + "hiddenSeries": false, + "id": 34, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": true, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum (rate(hubble_port_distribution_total[2m])) by (pod, protocol)", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{protocol}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Protocol Usage", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Top 10 used protocols. ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 17 + }, + "hiddenSeries": false, + "id": 18, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "current", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "topk(10, sum (rate(hubble_port_distribution_total{port!=\"0\"}[2m])) by (pod, port, protocol))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{port}}/{{protocol}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Top 10 Port Distribution", + "tooltip": { + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "TCP total messages per type (e.g., SYN, SYN-ACK, FIN,...) ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 22 + }, + "hiddenSeries": false, + "id": 10, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "fin", + "yaxis": 1 + }, + { + "alias": "FIN", + "yaxis": 2 + }, + { + "alias": "RST", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_tcp_flags_total{family=\"IPv4\"}[2m])) by (pod, flag)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{flag}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "TCPv4", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "alert": { + "conditions": [ + { + "evaluator": { + "params": [ + 0.2 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "B", + "5m", + "now" + ] + }, + "reducer": { + "params": [], + "type": "avg" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "5m", + "frequency": "2m", + "handler": 1, + "name": "Missing TCP SYN-ACK", + "noDataState": "no_data", + "notifications": [] + }, + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": " Total number of unacknowledged SYNs. ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 22 + }, + "hiddenSeries": false, + "id": 62, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "fin", + "yaxis": 1 + }, + { + "alias": "FIN", + "yaxis": 2 + }, + { + "alias": "RST", + "yaxis": 2 + } + ], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_tcp_flags_total{family=\"IPv4\", flag=\"SYN\"}[2m])) by (pod) - sum(rate(hubble_tcp_flags_total{family=\"IPv4\", flag=\"SYN-ACK\"}[2m])) by (pod)", + "format": "time_series", + "hide": false, + "intervalFactor": 1, + "legendFormat": "Missing SYN-ACK", + "refId": "B" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 0.2 + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Missing TCPv4 SYN-ACKs", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Total number of ICMP messages per type. ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 0, + "y": 27 + }, + "hiddenSeries": false, + "id": 31, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_icmp_total{family=\"IPv4\"}[2m])) by (pod, type)", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "{{type}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "ICMPv4", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "alert": { + "conditions": [ + { + "evaluator": { + "params": [ + 0.1 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "B", + "5m", + "now" + ] + }, + "reducer": { + "params": [], + "type": "avg" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "5m", + "frequency": "2m", + "handler": 1, + "name": "Missing ICMPv4 Echo-Reply alert", + "noDataState": "no_data", + "notifications": [] + }, + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "prometheus", + "description": "Total number of outstanding Echo requests (missing echo replies). ", + "fieldConfig": { + "defaults": { + "custom": {} + }, + "overrides": [] + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 5, + "w": 12, + "x": 12, + "y": 27 + }, + "hiddenSeries": false, + "id": 64, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(hubble_icmp_total{family=\"IPv4\", type=\"EchoRequest\"}[2m])) by (pod) - sum(rate(hubble_icmp_total{family=\"IPv4\", type=\"EchoReply\"}[2m])) by (pod)", + "format": "time_series", + "hide": false, + "intervalFactor": 1, + "legendFormat": "Missing ICMP Echo-Reply", + "refId": "B" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "fill": true, + "line": true, + "op": "gt", + "value": 0.1 + } + ], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "Missing ICMPv4 Echo-Reply", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "pps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + } + ], + "refresh": "30s", + "schemaVersion": 25, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-6h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "2m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Hubble", + "uid": "5HftnJAWz", + "version": 1 +} \ No newline at end of file diff --git a/charts/internal/cilium-monitoring/templates/_helpers.tpl b/charts/internal/cilium-monitoring/templates/_helpers.tpl new file mode 100644 index 000000000..cf9c99d0b --- /dev/null +++ b/charts/internal/cilium-monitoring/templates/_helpers.tpl @@ -0,0 +1,18 @@ +{{- define "prometheus.tls-config.kube-cert-auth" -}} +ca_file: /etc/prometheus/seed/ca.crt +cert_file: /etc/prometheus/seed/prometheus.crt +key_file: /etc/prometheus/seed/prometheus.key +{{- end -}} + +{{- define "prometheus.tls-config.kube-cert-auth-insecure" -}} +insecure_skip_verify: true +cert_file: /etc/prometheus/seed/prometheus.crt +key_file: /etc/prometheus/seed/prometheus.key +{{- end -}} + + +{{- define "prometheus.keep-metrics.metric-relabel-config" -}} +- source_labels: [ __name__ ] + regex: ^({{ . | join "|" }})$ + action: keep +{{- end -}} diff --git a/charts/internal/cilium-monitoring/templates/cilium-monitoring-config.yaml b/charts/internal/cilium-monitoring/templates/cilium-monitoring-config.yaml new file mode 100644 index 000000000..1a385aef3 --- /dev/null +++ b/charts/internal/cilium-monitoring/templates/cilium-monitoring-config.yaml @@ -0,0 +1,95 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: cilium-monitoring-config + namespace: {{ .Release.Namespace }} + labels: + extensions.gardener.cloud/configuration: monitoring +data: + scrape_config: | + - job_name: 'cilium-agent-metrics' + scheme: https + tls_config: + # This is needed because the kubelets' certificates are not are generated + # for a specific pod IP +{{ include "prometheus.tls-config.kube-cert-auth-insecure" . | indent 8 }} + kubernetes_sd_configs: + - role: endpoints + api_server: https://kube-apiserver:443 + tls_config: +{{ include "prometheus.tls-config.kube-cert-auth" . | indent 10 }} + relabel_configs: + - source_labels: [__meta_kubernetes_pod_label_k8s_app,__meta_kubernetes_service_annotation_prometheus_io_scrape] + regex: cilium;true + action: keep + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) + - target_label: __address__ + replacement: kube-apiserver:443 + - source_labels: [__meta_kubernetes_pod_name] + regex: (.+) + target_label: __metrics_path__ + replacement: /api/v1/namespaces/kube-system/pods/${1}:9090/proxy/metrics + metric_relabel_configs: +{{ include "prometheus.keep-metrics.metric-relabel-config" .Values.allowedMetrics.ciliumAgent | indent 6 }} + + - job_name: 'hubble-metrics' + scheme: https + tls_config: + # This is needed because the kubelets' certificates are not are generated + # for a specific pod IP +{{ include "prometheus.tls-config.kube-cert-auth-insecure" . | indent 8 }} + kubernetes_sd_configs: + - role: endpoints + api_server: https://kube-apiserver:443 + tls_config: +{{ include "prometheus.tls-config.kube-cert-auth" . | indent 10 }} + relabel_configs: + - source_labels: [__meta_kubernetes_pod_label_k8s_app,__meta_kubernetes_service_annotation_prometheus_io_scrape] + regex: cilium;true + action: keep + - target_label: __address__ + replacement: kube-apiserver:443 + - source_labels: [__meta_kubernetes_pod_name] + regex: (.+) + target_label: __metrics_path__ + replacement: /api/v1/namespaces/kube-system/pods/${1}:9091/proxy/metrics + metric_relabel_configs: +{{ include "prometheus.keep-metrics.metric-relabel-config" .Values.allowedMetrics.hubble | indent 6 }} + + - job_name: 'cilium-operator-metrics' + scheme: https + tls_config: +{{ include "prometheus.tls-config.kube-cert-auth-insecure" . | indent 8 }} + kubernetes_sd_configs: + - role: pod + api_server: https://kube-apiserver:443 + tls_config: +{{ include "prometheus.tls-config.kube-cert-auth" . | indent 10 }} + relabel_configs: + - source_labels: [__meta_kubernetes_pod_label_io_cilium_app,__meta_kubernetes_pod_annotation_prometheus_io_scrape] + regex: operator;true + action: keep + - action: labelmap + regex: __meta_kubernetes_pod_label_(.+) + - source_labels: [__meta_kubernetes_pod_name] + action: replace + target_label: pod + - target_label: __address__ + replacement: kube-apiserver:443 + - source_labels: [__meta_kubernetes_pod_name,__meta_kubernetes_pod_annotation_prometheus_io_port] + regex: (.+);(.+) + target_label: __metrics_path__ + replacement: /api/v1/namespaces/kube-system/pods/${1}:${2}/proxy/metrics + metric_relabel_configs: +{{ include "prometheus.keep-metrics.metric-relabel-config" .Values.allowedMetrics.ciliumAgent | indent 6 }} + + dashboard_operators: | + cilium-dashboard.json: |- + {{- .Files.Get "cilium-dashboard.json" | nindent 6 }} + + cilium-operator-dashboard.json: |- + {{- .Files.Get "cilium-operator-dashboard.json" | nindent 6 }} + + hubble-dashboard.json: |- + {{- .Files.Get "hubble-dashboard.json" | nindent 6 }} diff --git a/charts/internal/cilium-monitoring/values.yaml b/charts/internal/cilium-monitoring/values.yaml new file mode 100644 index 000000000..6f3a0b879 --- /dev/null +++ b/charts/internal/cilium-monitoring/values.yaml @@ -0,0 +1,69 @@ +allowedMetrics: + # allowed metrics for cilium-agent + ciliumAgent: + - cilium_process_virtual_memory_bytes + - cilium_process_resident_memory_bytes + - cilium_process_open_fds + - cilium_bpf_maps_virtual_memory_max_bytes + - cilium_bpf_progs_virtual_memory_max_bytes + - cilium_agent_api_process_time_seconds_count + - cilium_agent_api_process_time_seconds_sum + - cilium_bpf_syscall_duration_seconds_count + - cilium_bpf_syscall_duration_seconds_sum + - cilium_bpf_map_ops_total + - kvstore_operations_total + - cilium_kvstore_operations_duration_seconds_sum + - cilium_kvstore_events_queue_seconds_count + - cilium_forward_count_total + - cilium_forward_bytes_total + - cilium_datapath_conntrack_gc_entries + - cilium_ip_addresses + - cilium_datapath_errors_total + - cilium_services_events_total + - cilium_unreachable_health_endpoints + - cilium_unreachable_nodes + - cilium_unreachable_health_endpoints + - cilium_drop_count_total + - cilium_nodes_all_events_received_total + - cilium_drop_bytes_total + - cilium_nodes_all_num + - cilium_policy_l7_denied_total + - cilium_policy_l7_forwarded_total + - cilium_policy_l7_received_total + - cilium_policy_l7_parse_errors_total + - cilium_proxy_upstream_reply_seconds_sum + - cilium_proxy_upstream_reply_seconds_count + - cilium_triggers_policy_update_call_duration_seconds_sum + - cilium_policy_endpoint_enforcement_status + - cilium_proxy_redirects + - cilium_triggers_policy_update_total + - cilium_policy_count + - cilium_policy_import_errors + - cilium_policy_max_revision + - cilium_endfpoint_regeneration_time_stats_seconds_bucket + - cilium_endpoint_regenerations + - cilium_endpoint_state + - cilium_controllers_runs_total + - cilium_controllers_failing + - cilium_controllers_runs_duration_seconds_sum + - cilium_controllers_runs_duration_seconds_count + - cilium_k8s_client_api_latency_time_seconds_sum + - cilium_k8s_client_api_latency_time_seconds_count + - cilium_k8s_client_api_calls_counter + - cilium_kubernetes_events_received_total + - cilium_kubernetes_events_total + - cilium_process_cpu_seconds_total + - cilium_errors_warnings_total + - cilium_endpoint_regeneration_time_stats_seconds_bucket + + hubble: + - hubble_flows_processed_total + - hubble_drop_total + - hubble_port_distribution_total + - hubble_tcp_flags_total + - hubble_icmp_total + + # allowed metrics for cilium-operator + ciliumOperator: + - cilium_operator_process_cpu_seconds_total + - cilium_operator_process_resident_memory_bytes \ No newline at end of file diff --git a/charts/internal/cilium/charts/agent/templates/podsecuritypolicy.yaml b/charts/internal/cilium/charts/agent/templates/podsecuritypolicy.yaml index fbdd1ad86..289bcb999 100644 --- a/charts/internal/cilium/charts/agent/templates/podsecuritypolicy.yaml +++ b/charts/internal/cilium/charts/agent/templates/podsecuritypolicy.yaml @@ -7,15 +7,22 @@ spec: privileged: true allowPrivilegeEscalation: true allowedCapabilities: - - NET_ADMIN - - SYS_MODULE + - NET_ADMIN + - SYS_MODULE volumes: - - 'configMap' - - 'emptyDir' - - 'projected' - - 'secret' - - 'downwardAPI' - - 'hostPath' + - 'configMap' + - 'emptyDir' + - 'projected' + - 'secret' + - 'downwardAPI' + - 'hostPath' + {{- if .Values.global.prometheus.enabled }} + hostPorts: + - min: 9090 + max: 9090 + - min: 9091 + max: 9091 + {{- end }} hostNetwork: true hostIPC: false hostPID: false @@ -31,8 +38,8 @@ spec: fsGroup: rule: 'MustRunAs' ranges: - - min: 1 - max: 65535 + - min: 1 + max: 65535 readOnlyRootFilesystem: false --- apiVersion: rbac.authorization.k8s.io/v1 diff --git a/charts/internal/cilium/charts/hubble-relay/templates/deployment.yaml b/charts/internal/cilium/charts/hubble-relay/templates/deployment.yaml index d53ad10c0..a77af69b6 100644 --- a/charts/internal/cilium/charts/hubble-relay/templates/deployment.yaml +++ b/charts/internal/cilium/charts/hubble-relay/templates/deployment.yaml @@ -30,14 +30,14 @@ spec: image: {{ index .Values.global.images "hubble-relay" }} imagePullPolicy: {{ .Values.global.pullPolicy }} command: - - "hubble-relay" + - "hubble-relay" args: - - "serve" - - "--peer-service=unix://{{ .Values.global.hubble.socketPath }}" - - "--listen-address={{ .Values.listenHost }}:{{ .Values.listenPort }}" + - "serve" + - "--peer-service=unix://{{ .Values.global.hubble.socketPath }}" + - "--listen-address={{ .Values.listenHost }}:{{ .Values.listenPort }}" ports: - - name: grpc - containerPort: {{ .Values.listenPort }} + - name: grpc + containerPort: {{ .Values.listenPort }} readinessProbe: tcpSocket: port: grpc diff --git a/charts/internal/cilium/charts/operator/templates/podsecuritypolicy.yaml b/charts/internal/cilium/charts/operator/templates/podsecuritypolicy.yaml index 3caefbdd0..01833118d 100644 --- a/charts/internal/cilium/charts/operator/templates/podsecuritypolicy.yaml +++ b/charts/internal/cilium/charts/operator/templates/podsecuritypolicy.yaml @@ -7,13 +7,18 @@ spec: privileged: false allowPrivilegeEscalation: false requiredDropCapabilities: - - ALL + - ALL volumes: - - 'configMap' - - 'emptyDir' - - 'projected' - - 'secret' - - 'downwardAPI' + - 'configMap' + - 'emptyDir' + - 'projected' + - 'secret' + - 'downwardAPI' + {{- if .Values.global.prometheus.enabled }} + hostPorts: + - min: 6942 + max: 6942 + {{- end }} hostNetwork: true hostIPC: false hostPID: false @@ -24,13 +29,13 @@ spec: supplementalGroups: rule: 'MustRunAs' ranges: - - min: 1 - max: 65535 + - min: 1 + max: 65535 fsGroup: rule: 'MustRunAs' ranges: - - min: 1 - max: 65535 + - min: 1 + max: 65535 readOnlyRootFilesystem: false --- apiVersion: rbac.authorization.k8s.io/v1 diff --git a/charts/internal/cilium/charts/utils-templates b/charts/internal/cilium/charts/utils-templates new file mode 120000 index 000000000..04caed65e --- /dev/null +++ b/charts/internal/cilium/charts/utils-templates @@ -0,0 +1 @@ +../../../utils-templates \ No newline at end of file diff --git a/charts/internal/cilium/values.yaml b/charts/internal/cilium/values.yaml index cfa93d040..d18aef82c 100644 --- a/charts/internal/cilium/values.yaml +++ b/charts/internal/cilium/values.yaml @@ -32,8 +32,14 @@ global: enabled: true listenAddress: ":4244" metrics: - enabled: false - # Specifies the port the metric server listens on (e.g. 9091). + enabled: + - dns + - drop + - tcp + - flow + - port-distribution + - icmp + - http port: 9091 # etcd is the etcd configuration @@ -86,14 +92,14 @@ global: # prometheus enables prometheus: - enabled: false + enabled: true port: 9090 serviceMonitor: enabled: false # operatorPrometheus enables operatorPrometheus: - enabled: false + enabled: true port: 6942 # enableXTSocketFallback enables the fallback compatibility solution diff --git a/charts/internal/cilium/charts/utils-templates/Chart.yaml b/charts/utils-templates/Chart.yaml similarity index 100% rename from charts/internal/cilium/charts/utils-templates/Chart.yaml rename to charts/utils-templates/Chart.yaml diff --git a/charts/internal/cilium/charts/utils-templates/README.md b/charts/utils-templates/README.md similarity index 100% rename from charts/internal/cilium/charts/utils-templates/README.md rename to charts/utils-templates/README.md diff --git a/charts/internal/cilium/charts/utils-templates/templates/_versions.tpl b/charts/utils-templates/templates/_versions.tpl similarity index 100% rename from charts/internal/cilium/charts/utils-templates/templates/_versions.tpl rename to charts/utils-templates/templates/_versions.tpl diff --git a/example/controller-registration.yaml b/example/controller-registration.yaml index bcf1a84b1..b36e617b7 100644 --- a/example/controller-registration.yaml +++ b/example/controller-registration.yaml @@ -10,7 +10,7 @@ spec: deployment: type: helm providerConfig: - chart: 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 + chart: H4sIAAAAAAAAA+0ca3PbNjKf+Sv2lOtM0olISX7d6CY3p9hq6mlieyzXnXzyQCQkMaYIFgClqGnvt9/iQYqU6Eh0XKdphMlYJLBY7C4Wi90FmDHhAY0pb9IPksYiZHEzpnLO+G0Yj5t+GIXp1HvyeaWF5ejgQP9iWf3Vz+29/XbnoHN4qOrbR61O+wkcfOa4W5VUSMIBnnDG5KfgNrV/pWW8zfy7ExpNw3HMOL3PGJvmH6e9PP+ddvsQ57/10MxWlW98/p/CBZGS8liAZGDmGOYTGsMwDaMAlQAS4t+SMRWu8xSuJqEAkSYJ4xIfUC8iGEdsCFMi/QlCvwBOIyLDGcV+clKoJ3GACGI6xlYWw7OE01H4gQYwDxHuH89dOI+jBbBY91QkQUI5RGFMXcc9GdwMJNKGKI7ZdIoIro8HEIRcOO44lJ7+a8h33OFv3NN/s4rJ2FN/slcxi70loiHylyYwCiMqnO9dMU/w75Dc4l85xef/Ieg14SFLBZye9HHAhLP31JeOGwaUeAYOqxx3JnwWUM/50rO6fdlq/R9PCJfugkyje42xaf13Dtor6791tH+0W/+PUUgSXlOu5r0Ls7ZDkqTw6nbcVjOgMyegwudhInV9D37E7QB8pRQwYhzkhMJrq0dwrFUGzowSQT9TKycmU9qFbfTNmVWQ8KUF9TctW63/gPnumN17jA3rv9Pa31td/+32bv0/SvE83AaTBe6UEwnP/OfQQenDoHcBgz7g2iaxfiEj3B5DIin4bJqQeOFCD7d+3U3gli8on9HANf6B2kkBf6PQR5XCHT6NA2rMRA+dCfwZsJGcE/Q03hiQFzBzoQP0g08TCURAzCT2Y9iFz0OB2GLd/c3pcf8MCVMjOJ6H/zIMFYPkuK1FAzQl8EwBNGxT4/m/FYoFS9FPWahBIcXBZM6EJQhHV2yjAGKfGn9FLgdwFY53FgcbSoLgBDsk+DYqAgKRlmhdJlImXc+bz+cu0RS7jI89KzThWV6bSLXt9XOMHoqS9q9pyJHj4QLQXmMHMkRaIzLXEzbmFNuUMxfDnKNTpJwvYQWu0AShkDwcprIktIxGZL0IgGJDFWj0BnA6aMCr3uB08EIh+eX06sfzn6/gl97lZe/s6rQ/gPNLOD4/Ozm9Oj0/w7cfoHf2Dn46PTt5ATRUM4niRKcPOUAyQyVO1BiFa0BpiYRsTxEJ9cNR6CNr8ThFFxTGDLeGWDullE9DoaZVaM8S0UThNJTauRTrfLkOgoxZd6yMndJj1/Xw34zGAeMe+o6TdOjiJHuZQVw+5JZReBN0Fb0MRdNnseQsitB6cjpWQtOju2ICazYUXDvidf9ygAKyb/QDQUFQ7y5UyufK9tKu3R0VrxfGJ7ebMI2VBggo8meddC1MW6nkpkTiM87RfYXloFAa1EmK2Hc779+5bLX/S4pKikol7pcJqp3/6bRbav/f5X/+/FJz/m8w4kfTK1yZbB8Lbpj/dmdvNf7bw7ed//cY5ePHJgR0FMboFakIrQHNP/5wtorSVFfcPnUHp4gnIkMaCXRqEveWLgxG/ZIOcfemqEduyDw1WgnHHShmJEotWR8/olPjR2mQE+uC7fgJQtb7rhKosHThDgg7vh5pnYswRv1Br1B3dy9pRAk6G2dIXCVlOWnhFDdYQxmAaglHMCHiQifFoCEmpHNw2MVhr9XwOJSCdyUZQ94j4WEsR9D4Tvz3O7EKyWnCRCgZX3wKBfJIqxB2740QmS3wvTohAU0itpjSWNoQP1cO4c3aJXF96YXxjZSa9h9dxlE4npKkqSd/hm4k403llatQg1bnCDft//uHK/H/Hsagezv7/xjFmp7Skr7Ws3qeTaoxfKU0ISpH0IVjrQxvSeJMqSQBkaSLZsDk+apNdbXW2E4Cw44KO6qrjYUxVrlbYcsV+t+xEnVZwr6CzsjRI4qbsop24XeF5JNcl9EVLNqXnrIHLfdd/3VOAzb5f4ftNf/v8KC1W/+PUR5qYeeK8acuZjNKvoRVFq3ZbOrfIiNGbd2lIrvLHI5rcWSK7/oRSwP0PkiUTEhb48qlYNMjRh6pSY84KybT4vOjEMlFyBjtiMo2aiaR5JX6rmOyf8RXqUU1BjZfLRIqtLTy5F5jA353HYHK3WX9G5voq+pvSdZyzmprUlXoWY+cYsecjl+TulLBHvXGVR3y8YYpF7LmiLpPvTFNl7/ErlLT/i8d+BobwAb7v394tJr/2Uf4nf1/jFI0m1kYZszfST7VFbvAVgmCujuBMeNVeYKtBwRQV5VcMfF07rpGv7qhvTqcUCRzOgsV2h9DoYLjN+oQogst3aLPZowFy0yCrTxmaSwN9wIRK8/T8K/vy7wpCOQBRFKfOYBsyVuqCgqgypZRgx08jpk9l8n64w4zof6tQNuyjCgt8dUxQsnxeKYzFfBP98pS6b5C6i/UfaPGViFq47l2MUyWBalYEluwyKYiKs3Fg8zGfeYDIFM4/Uz5LPRpz/eVHp3VJUDttSRE2JyvZr11bYqWb9kjtGktdyk/C3aRRtEFQ9VflJaDSSEleWOxn8+mU4KWKK9ogleLviY6h1PyQfmmfso5WrImp+pF3fR6WaBieRDmLmEHi9gXRXoUOnODrMkSapzB5lK570BoepxnHXo5/Cpqo7dNde780qPS96o9bavfXsEVztHQeFaUlpnSN/3eSf/ypv+mf6xOZm/Oem/7g4vecT+HBNA5zh84m3YLlQCjkEbBJR2Va229Wm7d3DK4uanPYWsZiSW9p297r/vXSOz55c35df/yl8vTqzVau2AMfCGw9yoj/RI1hexkgTBOBUu5T0uTnVfqAEWyd+ogdr3H7xDbOKXdWnHocnpZlE7pW7VQxfrsmGkssDdVgEa2m7Xgc2V9Vzqmipg1eRfgOCWBur3ZBclTWiXzoizWrM4KM34Wfhb1buvoMysBHZE0km9ZgP32O637bF3byak+vZvk/gnaHzhcqOn/8yHxa18E3eD/7x2gs1/2/zuHnd39r0cpKn1SjAH0BJNUThgPfzPXQW7/pT2UZXYoQplRfskiev/I4Kv0+XkaKePVVMmm15yliWYA1+Qyu1ROKzmljUSB+kZ4Al9w3Q9t7ZhK/RthEKEf5ioM+KyBLMei9OIhdzLdbnD1lORPaYLTTFcpUi2Nxurgms/MIotCq477Moi1KWmisAM1a5FJkxSpXNJZJLBAmHlJqsSmGnL6NshNwaLTidY5yOvvpsNKTPOLW2BORoAs5C9FYpN1wu+SqHpQAbl9HBZ63rlGs26BvRpXutVVBknCgi7lTWuyyL26jA7ctdCPsS+CItv5W2nKNWwcJCxcgi+TR0sEOo5ZeSUmrMnxmiWD/jStqBqiTUIdylqKUBXN79kwe0xYUHz0IjbOFCCV+rLcnA4njN36xexvTgESwKaZvPT5dpi1l7Sl8X3D+Twj+8qw8K3ZWuTchh7ZAvmE4Jw8aV/YnGqJSaRD9U2PNu8G1aAUZNcV+japry+9+T+p7f+VV+iWnuDm8/+j1fzv0V5n5/89Rqk8/1vR/F36d808felpe7BSc/3PElL/O8BN6/9g7f5vR5mE3fp/hLLqmjRwd2XCJ5E6Nc+dkiFagE7DWgeElSFCXLCgZ4Epv6eRaKJCbWkosvw3Thd64HlWsuoAS9WvHWItkzJbGgXjoNukte5uakxWpqF4b/wVtvDPKlut/5nJld33A+BN93/2D/dX7/932vu79f8YxZzh6NAvu9/bBZq6Y5+rpZ+rh/3kvfKrqKrFI8m4C3rPUCsvKZz+nI7OmLxQnwzionSWESd8/MN5ClX5WHXV5ylkV/m6+jnLzCYkFeZLLH2gpdsADM7LAkuFL7yW23zxcRixoTclKnjw9H994GnU3gnzbynXHxwa3EVBZVJibBzRm+WxmunbJNPgcN920wJp7Lmthq3IP3Juu+22++Hr5qq9xlXjPy8VZx3T4Lqu4yxPxexdruJJWxcOsPLO07IujEgkqEaC0bhGUHmzqupelf1KUgF574XOLK3ccaqE0LeP2i2TfbdXg9p7ra/e5u/KruzKruzKruzKt13+D+JY0u0AUAAA values: image: - tag: v1.1.0 + tag: v1.2.0-dev diff --git a/pkg/charts/utils.go b/pkg/charts/utils.go index c1a9affcf..9d777b074 100644 --- a/pkg/charts/utils.go +++ b/pkg/charts/utils.go @@ -57,14 +57,14 @@ var defaultGlobalConfig = globalConfig{ Enabled: false, }, Prometheus: prometheus{ - Enabled: false, + Enabled: true, Port: 9090, ServiceMonitor: serviceMonitor{ Enabled: false, }, }, OperatorPrometheus: operatorPrometheus{ - Enabled: false, + Enabled: true, Port: 6942, }, Psp: psp{ diff --git a/pkg/cilium/types.go b/pkg/cilium/types.go index 65d468a59..397310a9f 100644 --- a/pkg/cilium/types.go +++ b/pkg/cilium/types.go @@ -36,6 +36,9 @@ const ( // HubbleUIImageName defines the UI image name. HubbleUIImageName = "hubble-ui" + // MonitoringChartName + MonitoringName = "cilium-monitoring-config" + // ReleaseName is the name of the Cilium Release. ReleaseName = "cilium" ) @@ -48,4 +51,7 @@ var ( // ChartPath path for internal Cilium Chart ChartPath = filepath.Join(InternalChartsPath, "cilium") + + // CiliumMonitoringChartPath path for internal Cilium monitoring chart + CiliumMonitoringChartPath = filepath.Join(InternalChartsPath, "cilium-monitoring") ) diff --git a/pkg/controller/actuator.go b/pkg/controller/actuator.go index 5c6842f11..3d825542b 100644 --- a/pkg/controller/actuator.go +++ b/pkg/controller/actuator.go @@ -15,10 +15,13 @@ package controller import ( + "github.com/go-logr/logr" + "github.com/pkg/errors" + extensionscontroller "github.com/gardener/gardener/extensions/pkg/controller" "github.com/gardener/gardener/extensions/pkg/controller/network" + gardenerkubernetes "github.com/gardener/gardener/pkg/client/kubernetes" - "github.com/go-logr/logr" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/client-go/rest" @@ -35,6 +38,9 @@ type actuator struct { client client.Client scheme *runtime.Scheme decoder runtime.Decoder + + gardenerClientset gardenerkubernetes.Interface + chartApplier gardenerkubernetes.ChartApplier } // LogID is the id that will be used in log statements. @@ -61,5 +67,14 @@ func (a *actuator) InjectClient(client client.Client) error { func (a *actuator) InjectConfig(config *rest.Config) error { a.restConfig = config + + var err error + a.gardenerClientset, err = gardenerkubernetes.NewWithConfig(gardenerkubernetes.WithRESTConfig(config)) + if err != nil { + return errors.Wrap(err, "could not create Gardener client") + } + + a.chartApplier = a.gardenerClientset.ChartApplier() + return nil } diff --git a/pkg/controller/actuator_delete.go b/pkg/controller/actuator_delete.go index 2cb633961..321871453 100644 --- a/pkg/controller/actuator_delete.go +++ b/pkg/controller/actuator_delete.go @@ -26,6 +26,12 @@ import ( // Delete implements Network.Actuator. func (a *actuator) Delete(ctx context.Context, network *extensionsv1alpha1.Network, cluster *extensionscontroller.Cluster) error { + // First delete the monitoring configuration + if err := applyMonitoringConfig(ctx, a.client, a.chartApplier, network, true); err != nil { + return err + } + + // Then delete the managed resource along with its secrets if err := resourcemanager. NewSecret(a.client). WithNamespacedName(network.Namespace, CiliumConfigSecretName). diff --git a/pkg/controller/actuator_reconcile.go b/pkg/controller/actuator_reconcile.go index 344c59885..ba43c7d91 100644 --- a/pkg/controller/actuator_reconcile.go +++ b/pkg/controller/actuator_reconcile.go @@ -17,14 +17,18 @@ package controller import ( "context" + "github.com/pkg/errors" + ciliumv1alpha1 "github.com/gardener/gardener-extension-networking-cilium/pkg/apis/cilium/v1alpha1" "github.com/gardener/gardener-extension-networking-cilium/pkg/charts" - extensionscontroller "github.com/gardener/gardener/extensions/pkg/controller" - + "github.com/gardener/gardener-extension-networking-cilium/pkg/cilium" "github.com/gardener/gardener-resource-manager/pkg/manager" + extensionscontroller "github.com/gardener/gardener/extensions/pkg/controller" extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" + gardenerkubernetes "github.com/gardener/gardener/pkg/client/kubernetes" "github.com/gardener/gardener/pkg/operation/common" - "github.com/pkg/errors" + "github.com/gardener/gardener/pkg/utils/chart" + corev1 "k8s.io/api/core/v1" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -48,6 +52,25 @@ func ciliumSecret(cl client.Client, ciliumConfig []byte, namespace string) (*man WithNamespacedName(namespace, CiliumConfigSecretName), withLocalObjectRefs(CiliumConfigSecretName) } +func applyMonitoringConfig(ctx context.Context, seedClient client.Client, chartApplier gardenerkubernetes.ChartApplier, network *extensionsv1alpha1.Network, deleteChart bool) error { + ciliumControlPlaneMonitoringChart := &chart.Chart{ + Name: cilium.MonitoringName, + Path: cilium.CiliumMonitoringChartPath, + Objects: []*chart.Object{ + { + Type: &corev1.ConfigMap{}, + Name: cilium.MonitoringName, + }, + }, + } + + if deleteChart { + return client.IgnoreNotFound(ciliumControlPlaneMonitoringChart.Delete(ctx, seedClient, network.Namespace)) + } + + return ciliumControlPlaneMonitoringChart.Apply(ctx, chartApplier, network.Namespace, nil, "", "", map[string]interface{}{}) +} + // Reconcile implements Network.Actuator. func (a *actuator) Reconcile(ctx context.Context, network *extensionsv1alpha1.Network, cluster *extensionscontroller.Cluster) error { var ( @@ -87,5 +110,9 @@ func (a *actuator) Reconcile(ctx context.Context, network *extensionsv1alpha1.Ne return err } + if err := applyMonitoringConfig(ctx, a.client, a.chartApplier, network, false); err != nil { + return err + } + return a.updateProviderStatus(ctx, network, networkConfig) } diff --git a/vendor/github.com/gardener/gardener/pkg/utils/chart/chart.go b/vendor/github.com/gardener/gardener/pkg/utils/chart/chart.go new file mode 100644 index 000000000..3d1a1e0a1 --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/utils/chart/chart.go @@ -0,0 +1,192 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package chart + +import ( + "context" + + "github.com/gardener/gardener/pkg/chartrenderer" + gardenerkubernetes "github.com/gardener/gardener/pkg/client/kubernetes" + "github.com/gardener/gardener/pkg/utils" + "github.com/gardener/gardener/pkg/utils/imagevector" + + "github.com/pkg/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// Chart represents a Helm chart (and its sub-charts) that can be applied and deleted. +type Chart struct { + Name string + Path string + Images []string + Objects []*Object + SubCharts []*Chart +} + +// Object represents an object deployed by a Chart. +type Object struct { + Type runtime.Object + Name string +} + +// Apply applies this chart in the given namespace using the given ChartApplier. Before applying the chart, +// it collects its values, injecting images and merging the given values as needed. +func (c *Chart) Apply( + ctx context.Context, + chartApplier gardenerkubernetes.ChartApplier, + namespace string, + imageVector imagevector.ImageVector, + runtimeVersion, targetVersion string, + additionalValues map[string]interface{}, +) error { + + // Get values with injected images + values, err := c.injectImages(imageVector, runtimeVersion, targetVersion) + if err != nil { + return err + } + + // Apply chart + err = chartApplier.Apply(ctx, c.Path, namespace, c.Name, gardenerkubernetes.Values(utils.MergeMaps(values, additionalValues))) + if err != nil { + return errors.Wrapf(err, "could not apply chart '%s' in namespace '%s'", c.Name, namespace) + } + return nil +} + +// Render renders this chart in the given namespace using the given chartRenderer. Before rendering the chart, +// it collects its values, injecting images and merging the given values as needed. +func (c *Chart) Render( + chartRenderer chartrenderer.Interface, + namespace string, + imageVector imagevector.ImageVector, + runtimeVersion, targetVersion string, + additionalValues map[string]interface{}, +) (string, []byte, error) { + + // Get values with injected images + values, err := c.injectImages(imageVector, runtimeVersion, targetVersion) + if err != nil { + return "", nil, err + } + + // Apply chart + rc, err := chartRenderer.Render(c.Path, c.Name, namespace, utils.MergeMaps(values, additionalValues)) + if err != nil { + return "", nil, errors.Wrapf(err, "could not render chart '%s' in namespace '%s'", c.Name, namespace) + } + return rc.ChartName, rc.Manifest(), nil +} + +// injectImages collects returns a values map with injected images, including sub-charts. +func (c *Chart) injectImages( + imageVector imagevector.ImageVector, + runtimeVersion, targetVersion string, +) (map[string]interface{}, error) { + + // Inject images + values := make(map[string]interface{}) + var err error + if len(c.Images) > 0 { + values, err = InjectImages(values, imageVector, c.Images, imagevector.RuntimeVersion(runtimeVersion), imagevector.TargetVersion(targetVersion)) + if err != nil { + return nil, errors.Wrapf(err, "could not inject chart '%s' images", c.Name) + } + } + + // Add subchart values + for _, sc := range c.SubCharts { + scValues, err := sc.injectImages(imageVector, runtimeVersion, targetVersion) + if err != nil { + return nil, err + } + values[sc.Name] = scValues + } + + return values, nil +} + +// Delete deletes this chart's objects from the given namespace using the given client. +func (c *Chart) Delete(ctx context.Context, client client.Client, namespace string) error { + // Delete objects + for _, o := range c.Objects { + if err := o.Delete(ctx, client, namespace); err != nil { + return errors.Wrap(err, "could not delete chart '%s' object") + } + } + + // Delete subchart objects + for _, sc := range c.SubCharts { + if err := sc.Delete(ctx, client, namespace); err != nil { + return err + } + } + + return nil +} + +// Delete deletes this object from the given namespace using the given client. +func (o *Object) Delete(ctx context.Context, client client.Client, namespace string) error { + obj := o.Type.DeepCopyObject() + kind := obj.GetObjectKind().GroupVersionKind().Kind + key := objectKey(namespace, o.Name) + if err := client.Get(ctx, key, obj); err != nil { + if apierrors.IsNotFound(err) { + return nil + } + return errors.Wrapf(err, "could not get %s '%s'", kind, key.String()) + } + if err := client.Delete(ctx, obj); err != nil { + return errors.Wrapf(err, "could not delete %s '%s'", kind, key.String()) + } + return nil +} + +func objectKey(namespace, name string) client.ObjectKey { + return client.ObjectKey{Namespace: namespace, Name: name} +} + +// CopyValues creates a shallow copy of the given Values. +func CopyValues(values map[string]interface{}) map[string]interface{} { + copiedValues := make(map[string]interface{}, len(values)) + for k, v := range values { + copiedValues[k] = v + } + return copiedValues +} + +// ImageMapToValues transforms the given image name to image mapping into chart Values. +func ImageMapToValues(m map[string]*imagevector.Image) map[string]interface{} { + out := make(map[string]interface{}, len(m)) + for k, v := range m { + out[k] = v.String() + } + return out +} + +// InjectImages finds the images with the given names and opts, makes a shallow copy of the given +// Values and injects a name to image string mapping at the `images` key of that map and returns it. +func InjectImages(values map[string]interface{}, v imagevector.ImageVector, names []string, opts ...imagevector.FindOptionFunc) (map[string]interface{}, error) { + images, err := imagevector.FindImages(v, names, opts...) + if err != nil { + return nil, err + } + + values = CopyValues(values) + values["images"] = ImageMapToValues(images) + return values, nil +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 564d2cb13..10590a12e 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -110,6 +110,7 @@ github.com/gardener/gardener/pkg/scheduler/apis/config/v1alpha1 github.com/gardener/gardener/pkg/scheduler/controller/common github.com/gardener/gardener/pkg/scheduler/controller/shoot github.com/gardener/gardener/pkg/utils +github.com/gardener/gardener/pkg/utils/chart github.com/gardener/gardener/pkg/utils/context github.com/gardener/gardener/pkg/utils/errors github.com/gardener/gardener/pkg/utils/flow