{{- $Values := (.helm).Values | default .Values }} {{- $clusterLabel := ($Values.global).clusterLabel | default "cluster" }} {{- $multicluster := ((($Values.grafana).sidecar).dashboards).multicluster | default false }} {{- $defaultDatasource := "prometheus" -}} {{- range (((($Values.grafana).sidecar).datasources).victoriametrics | default list) }} {{- if and .isDefault .type }}{{ $defaultDatasource = .type }}{{- end }} {{- end }} __elements: {} __inputs: - description: '' label: Prometheus name: DS_PROMETHEUS pluginId: prometheus pluginName: Prometheus type: datasource __requires: - id: gauge name: Gauge type: panel version: '' - id: grafana name: Grafana type: grafana version: 10.3.1 - id: prometheus name: Prometheus type: datasource version: 1.0.0 - id: stat name: Stat type: panel version: '' - id: timeseries name: Time series type: panel version: '' annotations: list: - builtIn: 1 datasource: type: datasource uid: grafana enable: true hide: true iconColor: rgba(0, 211, 255, 1) name: Annotations & Alerts target: limit: 100 matchAny: false tags: [] type: dashboard type: dashboard - datasource: type: datasource uid: grafana enable: true hide: false iconColor: '#5c4ee5' name: terraform target: limit: 100 matchAny: false tags: - terraform type: tags - datasource: type: datasource uid: grafana enable: true hide: false iconColor: red name: oncall target: limit: 100 matchAny: false tags: - oncall type: tags condition: {{ ($Values.kubelet).enabled }} description: 'This is a modern ''Namespaces View'' dashboard for your Kubernetes cluster(s). Made for kube-prometheus-stack and take advantage of the latest Grafana features. GitHub repository: https://github.com/dotdc/grafana-dashboards-kubernetes' editable: false fiscalYearStartMonth: 0 graphTooltip: 1 links: [] liveNow: false panels: - collapsed: false datasource: type: {{ $defaultDatasource }} uid: grafana gridPos: h: 1 w: 24 x: 0 'y': 0 id: 38 panels: [] title: Overview type: row - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: decimals: 2 mappings: [] max: 1 min: 0 thresholds: mode: percentage steps: - color: green value: null - color: orange value: 50 - color: red value: 70 unit: percentunit overrides: [] gridPos: h: 7 w: 6 x: 0 'y': 1 id: 46 options: minVizHeight: 75 minVizWidth: 75 orientation: auto reduceOptions: calcs: - lastNotNull fields: '' values: false showThresholdLabels: false showThresholdMarkers: true sizing: auto text: {} pluginVersion: 11.2.1 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(rate(container_cpu_usage_seconds_total{namespace=~"$namespace", image!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) / sum(machine_cpu_cores{ {{ $clusterLabel }}=~"$cluster"}) instant: true interval: '' legendFormat: '' range: false refId: A title: Namespace(s) usage on total cluster CPU in % type: gauge - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: decimals: 2 mappings: [] max: 1 min: 0 thresholds: mode: percentage steps: - color: green value: null - color: orange value: 50 - color: red value: 70 unit: percentunit overrides: [] gridPos: h: 7 w: 6 x: 6 'y': 1 id: 48 options: minVizHeight: 75 minVizWidth: 75 orientation: auto reduceOptions: calcs: - lastNotNull fields: '' values: false showThresholdLabels: false showThresholdMarkers: true sizing: auto text: {} pluginVersion: 11.2.1 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: sum(container_memory_working_set_bytes{namespace=~"$namespace", image!="", {{ $clusterLabel }}=~"$cluster"}) / sum(machine_memory_bytes{ {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: '' refId: A title: Namespace(s) usage on total cluster RAM in % type: gauge - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 11 w: 12 x: 12 'y': 1 id: 32 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true sortBy: Max sortDesc: true tooltip: mode: multi sort: desc pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_pod_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Running Pods refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_service_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Services refId: B - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_ingress_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Ingresses refId: C - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_deployment_labels{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Deployments refId: D - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_statefulset_labels{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Statefulsets refId: E - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_daemonset_labels{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Daemonsets refId: F - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_persistentvolumeclaim_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Persistent Volume Claims refId: G - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_hpa_labels{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Horizontal Pod Autoscalers refId: H - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_configmap_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Configmaps refId: I - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_secret_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Secrets refId: J - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_networkpolicy_labels{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Network Policies refId: K title: Kubernetes Resource Count type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: mappings: [] noValue: '0' thresholds: mode: absolute steps: - color: rgb(255, 255, 255) value: null unit: none overrides: [] gridPos: h: 4 w: 6 x: 0 'y': 8 id: 62 options: colorMode: none graphMode: none justifyMode: center orientation: auto percentChangeColorMode: standard reduceOptions: calcs: - lastNotNull fields: '' values: false showPercentChange: false text: {} textMode: auto wideLayout: true pluginVersion: 11.2.1 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(rate(container_cpu_usage_seconds_total{namespace=~"$namespace", image!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) interval: '' legendFormat: Real range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_container_resource_requests{namespace=~"$namespace", resource="cpu", {{ $clusterLabel }}=~"$cluster"}) hide: false legendFormat: Requests range: true refId: B - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_container_resource_limits{namespace=~"$namespace", resource="cpu", {{ $clusterLabel }}=~"$cluster"}) hide: false legendFormat: Limits range: true refId: C - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(machine_cpu_cores{ {{ $clusterLabel }}=~"$cluster"}) hide: false legendFormat: Cluster Total range: true refId: D title: Namespace(s) CPU Usage in cores type: stat - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: mappings: [] noValue: '0' thresholds: mode: absolute steps: - color: rgb(255, 255, 255) value: null unit: bytes overrides: [] gridPos: h: 4 w: 6 x: 6 'y': 8 id: 64 options: colorMode: none graphMode: none justifyMode: auto orientation: auto percentChangeColorMode: standard reduceOptions: calcs: - lastNotNull fields: '' values: false showPercentChange: false text: {} textMode: auto wideLayout: true pluginVersion: 11.2.1 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(container_memory_working_set_bytes{namespace=~"$namespace", image!="", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Real range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_container_resource_requests{namespace=~"$namespace", resource="memory", {{ $clusterLabel }}=~"$cluster"}) hide: false legendFormat: Requests range: true refId: B - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_container_resource_limits{namespace=~"$namespace", resource="memory", {{ $clusterLabel }}=~"$cluster"}) hide: false legendFormat: Limits range: true refId: C - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(machine_memory_bytes{ {{ $clusterLabel }}=~"$cluster"}) hide: false legendFormat: Cluster Total range: true refId: D title: Namespace(s) RAM Usage in bytes type: stat - collapsed: false datasource: type: {{ $defaultDatasource }} uid: grafana gridPos: h: 1 w: 24 x: 0 'y': 12 id: 40 panels: [] title: Resources type: row - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: CPU CORES axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: none overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 13 id: 29 options: legend: calcs: [] displayMode: table placement: right showLegend: true tooltip: mode: single sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(rate(container_cpu_usage_seconds_total{namespace=~"$namespace", image!="", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod) interval: $resolution legendFormat: '{{`{{`}} pod {{`}}`}}' range: true refId: A title: CPU usage by Pod type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: bytes overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 13 id: 30 options: legend: calcs: [] displayMode: table placement: right showLegend: true tooltip: mode: single sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(container_memory_working_set_bytes{namespace=~"$namespace", image!="", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}) by (pod) interval: $resolution legendFormat: '{{`{{`}} pod {{`}}`}}' range: true refId: A title: Memory usage by Pod type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: '' fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: SECONDS axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineStyle: fill: solid lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' decimals: 2 mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: s overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 21 id: 68 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true sortBy: Max sortDesc: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(rate(container_cpu_cfs_throttled_seconds_total{namespace=~"$namespace", image!="", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod) > 0 interval: $resolution legendFormat: '{{`{{`}} pod {{`}}`}}' range: true refId: A title: CPU Throttled seconds by pod type: timeseries - collapsed: false gridPos: h: 1 w: 24 x: 0 'y': 29 id: 73 panels: [] title: Kubernetes type: row - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 9 w: 12 x: 0 'y': 30 id: 70 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true sortBy: Max sortDesc: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(kube_pod_status_qos_class{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (qos_class) interval: '' legendFormat: '{{`{{`}} qos_class {{`}}`}} pods' range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) hide: false legendFormat: Total pods range: true refId: B title: Kubernetes Pods QoS classes type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 9 w: 12 x: 12 'y': 30 id: 72 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true sortBy: Max sortDesc: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(kube_pod_status_reason{ {{ $clusterLabel }}=~"$cluster"}) by (reason) interval: '' legendFormat: '{{`{{`}} reason {{`}}`}}' range: true refId: A title: Kubernetes Pods Status Reason type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: No data is generally a good thing here. fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: points fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 9 w: 12 x: 0 'y': 39 id: 74 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true sortBy: Max sortDesc: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(increase(container_oom_events_total{namespace=~"${namespace}", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (namespace, pod) > 0 interval: '' legendFormat: 'namespace: {{`{{`}} namespace {{`}}`}} - pod: {{`{{`}} pod {{`}}`}}' range: true refId: A title: OOM Events by namespace, pod type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: No data is generally a good thing here. fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: points fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 9 w: 12 x: 12 'y': 39 id: 75 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true sortBy: Max sortDesc: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(increase(kube_pod_container_status_restarts_total{namespace=~"${namespace}", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (namespace, pod) > 0 interval: '' legendFormat: 'namespace: {{`{{`}} namespace {{`}}`}} - pod: {{`{{`}} pod {{`}}`}}' range: true refId: A title: Container Restarts by namespace, pod type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' decimals: 0 mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: none overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 48 id: 5 options: legend: calcs: [] displayMode: table placement: right showLegend: true tooltip: mode: multi sort: desc pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_container_status_ready{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Ready range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_container_status_running{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Running range: true refId: B - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_pod_container_status_waiting{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Waiting refId: C - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_pod_container_status_restarts_total{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Restarts Total refId: D - datasource: type: {{ $defaultDatasource }} uid: ${datasource} expr: sum(kube_pod_container_status_terminated{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) interval: '' legendFormat: Terminated refId: E title: Nb of pods by state type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' decimals: 0 mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: none overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 48 id: 2 options: legend: calcs: [] displayMode: hidden placement: right showLegend: false tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_container_info{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}) by (pod) interval: '' legendFormat: '{{`{{`}} pod {{`}}`}}' range: true refId: A title: Nb of containers by pod type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 56 id: 7 options: legend: calcs: [] displayMode: table placement: right showLegend: false tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(kube_deployment_status_replicas_available{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (deployment) interval: '' legendFormat: '{{`{{`}} deployment {{`}}`}}' range: true refId: A title: Replicas available by deployment type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 56 id: 8 options: legend: calcs: [] displayMode: table placement: right showLegend: false tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_deployment_status_replicas_unavailable{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}) by (deployment) interval: '' legendFormat: '{{`{{`}} deployment {{`}}`}}' range: true refId: A title: Replicas unavailable by deployment type: timeseries - datasource: default: false type: {{ $defaultDatasource }} uid: ${datasource} description: List of pods that are not in Running or Succeeded status. fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 64 id: 83 options: legend: calcs: [] displayMode: table placement: right showLegend: false tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(kube_pod_status_phase{phase!~"Running|Succeeded", namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (pod) > 0 interval: '' legendFormat: '{{`{{`}} deployment {{`}}`}}' range: true refId: A title: Pods with unexpected status type: timeseries - datasource: default: false type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: bars fillOpacity: 25 gradientMode: none hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: normal thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: short overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 64 id: 82 options: legend: calcs: - min - max - last displayMode: table placement: right showLegend: true tooltip: mode: multi sort: desc pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: count(rate(container_cpu_usage_seconds_total{namespace=~"$namespace", image!="", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (image) interval: '' legendFormat: '{{`{{`}} image {{`}}`}}' range: true refId: A title: Container Image Used type: timeseries - collapsed: false datasource: type: {{ $defaultDatasource }} uid: grafana gridPos: h: 1 w: 24 x: 0 'y': 72 id: 42 panels: [] title: Kubernetes Storage type: row - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' decimals: 2 mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: percentunit overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 73 id: 65 options: legend: calcs: [] displayMode: table placement: right showLegend: false tooltip: mode: multi sort: desc pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: sum(kubelet_volume_stats_used_bytes{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (persistentvolumeclaim) / sum(kubelet_volume_stats_capacity_bytes{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (persistentvolumeclaim) interval: '' legendFormat: '{{`{{`}} persistentvolumeclaim {{`}}`}}' refId: A title: Persistent Volumes - Capacity and usage in % type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' decimals: 2 mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: bytes overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 73 id: 66 options: legend: calcs: [] displayMode: table placement: right showLegend: false tooltip: mode: multi sort: desc pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: sum(kubelet_volume_stats_used_bytes{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (persistentvolumeclaim) interval: '' legendFormat: '{{`{{`}} persistentvolumeclaim {{`}}`}} - Used' refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: sum(kubelet_volume_stats_capacity_bytes{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (persistentvolumeclaim) hide: false interval: '' legendFormat: '{{`{{`}} persistentvolumeclaim {{`}}`}} - Capacity' refId: B title: Persistent Volumes - Capacity and usage in bytes type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' decimals: 2 mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: percentunit overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 81 id: 27 options: legend: calcs: [] displayMode: table placement: right showLegend: false tooltip: mode: multi sort: desc pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: 1 - sum(kubelet_volume_stats_inodes_used{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (persistentvolumeclaim) / sum(kubelet_volume_stats_inodes{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"}) by (persistentvolumeclaim) interval: '' legendFormat: '{{`{{`}} persistentvolumeclaim {{`}}`}}' refId: A title: Persistent Volumes - Inodes type: timeseries - collapsed: false gridPos: h: 1 w: 24 x: 0 'y': 89 id: 76 panels: [] title: Network type: row - datasource: default: false type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: binBps overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 90 id: 78 options: legend: calcs: [] displayMode: table placement: right showLegend: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(rate(container_network_receive_bytes_total{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod) interval: $resolution legendFormat: Received - {{`{{`}} pod {{`}}`}} range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: '- sum(rate(container_network_transmit_bytes_total{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod)' interval: $resolution legendFormat: Transmitted - {{`{{`}} pod {{`}}`}} range: true refId: B title: Network - Bandwidth by pod type: timeseries - datasource: default: false type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: pps overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 90 id: 79 options: legend: calcs: [] displayMode: table placement: right showLegend: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(rate(container_network_receive_packets_total{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod) interval: $resolution legendFormat: Received - {{`{{`}} pod {{`}}`}} range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: '- sum(rate(container_network_transmit_packets_total{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod)' interval: $resolution legendFormat: Transmitted - {{`{{`}} pod {{`}}`}} range: true refId: B title: Network - Packets Rate by pod type: timeseries - datasource: default: false type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: pps overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 98 id: 80 options: legend: calcs: [] displayMode: table placement: right showLegend: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(rate(container_network_receive_packets_dropped_total{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod) interval: $resolution legendFormat: Received - {{`{{`}} pod {{`}}`}} range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: '- sum(rate(container_network_transmit_packets_dropped_total{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod)' interval: $resolution legendFormat: Transmitted - {{`{{`}} pod {{`}}`}} range: true refId: B title: Network - Packets Dropped by pod type: timeseries - datasource: default: false type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: '' axisPlacement: auto barAlignment: 0 barWidthFactor: 0.6 drawStyle: line fillOpacity: 25 gradientMode: opacity hideFrom: legend: false tooltip: false viz: false insertNulls: false lineInterpolation: smooth lineWidth: 2 pointSize: 5 scaleDistribution: type: linear showPoints: never spanNulls: false stacking: group: A mode: none thresholdsStyle: mode: 'off' mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: pps overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 98 id: 81 options: legend: calcs: [] displayMode: table placement: right showLegend: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(rate(container_network_receive_errors_total{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod) interval: $resolution legendFormat: Received - {{`{{`}} pod {{`}}`}} range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: '- sum(rate(container_network_transmit_errors_total{namespace=~"$namespace", pod=~"${created_by}.*", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (pod)' interval: $resolution legendFormat: Transmitted - {{`{{`}} pod {{`}}`}} range: true refId: B title: Network - Errors by pod type: timeseries refresh: 30s schemaVersion: 39 tags: - Kubernetes - Prometheus - vm-k8s-stack templating: list: - current: {} hide: 0 includeAll: false multi: false name: datasource options: [] query: {{ $defaultDatasource }} queryValue: '' refresh: 1 regex: '' skipUrlSync: false type: datasource - current: {} datasource: type: prometheus uid: ${datasource} definition: label_values(kube_node_info,{{ $clusterLabel }}) hide: {{ ternary 0 2 $multicluster }} includeAll: false multi: false name: cluster options: [] query: {{ ternary (b64dec "eyJxcnlUeXBlIjogMSwgInF1ZXJ5IjogImxhYmVsX3ZhbHVlcyhrdWJlX25vZGVfaW5mbyxjbHVzdGVyKSIsICJyZWZJZCI6ICJQcm9tZXRoZXVzVmFyaWFibGVRdWVyeUVkaXRvci1WYXJpYWJsZVF1ZXJ5In0=" | replace "cluster" $clusterLabel) ".*" $multicluster }} refresh: 1 regex: '' skipUrlSync: false sort: 1 type: {{ ternary "query" "constant" $multicluster }} - allValue: .* current: {} datasource: type: prometheus uid: ${datasource} definition: label_values(kube_pod_info{ {{ $clusterLabel }}=~"$cluster"}, namespace) hide: 0 includeAll: true multi: true name: namespace options: [] query: query: label_values(kube_pod_info{ {{ $clusterLabel }}=~"$cluster"}, namespace) refId: StandardVariableQuery refresh: 1 regex: '' skipUrlSync: false sort: 1 tagValuesQuery: '' tagsQuery: '' type: query useTags: false - current: selected: false text: 30s value: 30s hide: 0 includeAll: false multi: false name: resolution options: - selected: false text: 1s value: 1s - selected: false text: 15s value: 15s - selected: true text: 30s value: 30s - selected: false text: 1m value: 1m - selected: false text: 3m value: 3m - selected: false text: 5m value: 5m query: 1s, 15s, 30s, 1m, 3m, 5m queryValue: '' skipUrlSync: false type: custom - allValue: .* current: {} datasource: type: prometheus uid: ${datasource} definition: label_values(kube_pod_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"},created_by_name) description: Can be used to filter on a specific deployment, statefulset or deamonset (only relevant panels). hide: 0 includeAll: true multi: true name: created_by options: [] query: query: label_values(kube_pod_info{namespace=~"$namespace", {{ $clusterLabel }}=~"$cluster"},created_by_name) refId: PrometheusVariableQueryEditor-VariableQuery refresh: 2 regex: '' skipUrlSync: false sort: 1 type: query time: from: now-1h to: now timepicker: {} timezone: {{ default "utc" ($Values.defaultDashboards).defaultTimezone }} title: Kubernetes / Views / Namespaces uid: k8s_views_ns version: 43 weekStart: ''