{{- $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: grafana name: Grafana type: grafana version: 8.3.4 - id: prometheus name: Prometheus type: datasource version: 5.0.0 - id: timeseries name: Time series type: panel version: '' - id: stat name: Stat type: panel version: '' - id: gauge name: Gauge type: panel version: '' - id: table name: Table 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 ''Pods 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: 43 panels: [] targets: - datasource: type: {{ $defaultDatasource }} uid: grafana refId: A title: Information type: row - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: Panel only works when a single pod is selected. fieldConfig: defaults: mappings: [] thresholds: mode: absolute steps: - color: rgb(255, 255, 255) value: null unit: none overrides: [] gridPos: h: 2 w: 12 x: 0 'y': 1 id: 2 options: colorMode: none graphMode: none justifyMode: auto orientation: auto percentChangeColorMode: standard reduceOptions: calcs: - mean fields: '' values: false showPercentChange: false textMode: name wideLayout: true pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: kube_pod_info{namespace="$namespace", pod="$pod", {{ $clusterLabel }}=~"$cluster"} instant: true interval: '' legendFormat: '{{`{{`}} created_by_kind {{`}}`}}: {{`{{`}} created_by_name {{`}}`}}' refId: A title: Created by type: stat - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: Panel only works when a single pod is selected. fieldConfig: defaults: links: - title: '' url: /d/k8s_views_nodes/kubernetes-views-nodes?var-datasource=${datasource}&var-node=${__field.labels.node}&${cluster:queryparam} mappings: [] thresholds: mode: absolute steps: - color: rgb(255, 255, 255) value: null unit: none overrides: [] gridPos: h: 2 w: 6 x: 12 'y': 1 id: 33 options: colorMode: none graphMode: none justifyMode: auto orientation: auto percentChangeColorMode: standard reduceOptions: calcs: - mean fields: '' values: false showPercentChange: false textMode: name wideLayout: true pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: kube_pod_info{namespace="$namespace", pod="$pod", {{ $clusterLabel }}=~"$cluster"} instant: true interval: '' legendFormat: '{{`{{`}} node {{`}}`}}' refId: A title: Running on type: stat - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: Panel only works when a single pod is selected. fieldConfig: defaults: mappings: [] thresholds: mode: absolute steps: - color: rgb(255, 255, 255) value: null unit: none overrides: [] gridPos: h: 2 w: 6 x: 18 'y': 1 id: 41 options: colorMode: none graphMode: none justifyMode: auto orientation: auto percentChangeColorMode: standard reduceOptions: calcs: - mean fields: '' values: false showPercentChange: false textMode: name wideLayout: true pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: kube_pod_info{namespace="$namespace", pod="$pod", {{ $clusterLabel }}=~"$cluster"} instant: true interval: '' legendFormat: '{{`{{`}} pod_ip {{`}}`}}' refId: A title: Pod IP type: stat - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: Panel only works when a single pod is selected. fieldConfig: defaults: mappings: [] thresholds: mode: absolute steps: - color: rgb(255, 255, 255) value: null unit: none overrides: [] gridPos: h: 2 w: 5 x: 0 'y': 3 id: 52 options: colorMode: none graphMode: none justifyMode: auto orientation: auto percentChangeColorMode: standard reduceOptions: calcs: - mean fields: '' values: false showPercentChange: false textMode: name wideLayout: true pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: kube_pod_info{namespace="$namespace", pod="$pod", priority_class!="", {{ $clusterLabel }}=~"$cluster"} format: time_series instant: true interval: '' legendFormat: '{{`{{`}} priority_class {{`}}`}}' range: false refId: A title: Priority Class type: stat - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: Panel only works when a single pod is selected. fieldConfig: defaults: color: mode: thresholds mappings: [] thresholds: mode: absolute steps: - color: green value: null unit: none overrides: - matcher: id: byName options: Burstable properties: - id: color value: fixedColor: red mode: fixed - matcher: id: byName options: BestEffort properties: - id: color value: fixedColor: orange mode: fixed gridPos: h: 2 w: 7 x: 5 'y': 3 id: 53 options: colorMode: value graphMode: none justifyMode: auto orientation: auto percentChangeColorMode: standard reduceOptions: calcs: [] fields: '' values: false showPercentChange: false textMode: name wideLayout: true pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: kube_pod_status_qos_class{namespace="$namespace", pod="$pod", {{ $clusterLabel }}=~"$cluster"} > 0 instant: true interval: '' legendFormat: '{{`{{`}} qos_class {{`}}`}}' refId: A title: QOS Class type: stat - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: Panel only works when a single pod is selected. fieldConfig: defaults: mappings: [] thresholds: mode: absolute steps: - color: text value: null - color: red value: 1 unit: none overrides: [] gridPos: h: 2 w: 6 x: 12 'y': 3 id: 56 options: colorMode: value graphMode: none justifyMode: auto orientation: auto percentChangeColorMode: standard reduceOptions: calcs: [] fields: '' values: false showPercentChange: false textMode: name wideLayout: true pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: kube_pod_container_status_last_terminated_reason{namespace="$namespace", pod="$pod", {{ $clusterLabel }}=~"$cluster"} instant: true interval: '' legendFormat: '{{`{{`}} reason {{`}}`}}' refId: A title: Last Terminated Reason type: stat - datasource: type: {{ $defaultDatasource }} uid: ${datasource} description: Panel only works when a single pod is selected. fieldConfig: defaults: mappings: [] thresholds: mode: absolute steps: - color: text value: null - color: red value: 1 - color: '#EAB839' value: 2 unit: none overrides: [] gridPos: h: 2 w: 6 x: 18 'y': 3 id: 57 options: colorMode: value graphMode: none justifyMode: auto orientation: auto percentChangeColorMode: standard reduceOptions: calcs: [] fields: '' values: true showPercentChange: false textMode: value wideLayout: true pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: kube_pod_container_status_last_terminated_exitcode{namespace="$namespace", pod="$pod", {{ $clusterLabel }}=~"$cluster"} instant: true interval: '' legendFormat: __auto range: false refId: A title: Last Terminated Exit Code type: stat - collapsed: false datasource: type: {{ $defaultDatasource }} uid: grafana gridPos: h: 1 w: 24 x: 0 'y': 5 id: 47 panels: [] targets: - datasource: type: {{ $defaultDatasource }} uid: grafana refId: A title: Resources type: row - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: fixedColor: blue mode: fixed decimals: 2 mappings: [] max: 1 min: 0 thresholds: mode: percentage steps: - color: green value: null - color: '#EAB839' value: 60 - color: red value: 75 unit: percentunit overrides: [] gridPos: h: 8 w: 3 x: 0 'y': 6 id: 39 options: minVizHeight: 75 minVizWidth: 75 orientation: auto reduceOptions: calcs: - last fields: '' values: false showThresholdLabels: false showThresholdMarkers: true sizing: auto pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(rate(container_cpu_usage_seconds_total{namespace="$namespace", pod=~"$pod", image!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) / sum(kube_pod_container_resource_requests{namespace="$namespace", pod=~"$pod", resource="cpu", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) instant: true interval: $resolution legendFormat: Requests refId: A title: Total pod CPU Requests usage 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: '#EAB839' value: 60 - color: red value: 75 unit: percentunit overrides: [] gridPos: h: 8 w: 3 x: 3 'y': 6 id: 48 options: minVizHeight: 75 minVizWidth: 75 orientation: auto reduceOptions: calcs: - last fields: '' values: false showThresholdLabels: false showThresholdMarkers: true sizing: auto pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(rate(container_cpu_usage_seconds_total{namespace="$namespace", pod=~"$pod", image!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) / sum(kube_pod_container_resource_limits{namespace="$namespace", pod=~"$pod", resource="cpu", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) instant: true interval: $resolution legendFormat: Limits refId: A title: Total pod CPU Limits usage type: gauge - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: fixedColor: blue mode: fixed decimals: 2 mappings: [] max: 1 min: 0 thresholds: mode: percentage steps: - color: blue value: null - color: '#EAB839' value: 80 - color: red value: 99 unit: percentunit overrides: [] gridPos: h: 8 w: 3 x: 6 'y': 6 id: 40 options: minVizHeight: 75 minVizWidth: 75 orientation: auto reduceOptions: calcs: - last fields: '' values: false showThresholdLabels: false showThresholdMarkers: true sizing: auto pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(container_memory_working_set_bytes{namespace="$namespace", pod=~"$pod", image!="", {{ $clusterLabel }}=~"$cluster"}) / sum(kube_pod_container_resource_requests{namespace="$namespace", pod=~"$pod", resource="memory", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) instant: true interval: $resolution legendFormat: Requests refId: A title: Total pod RAM Requests usage 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: '#EAB839' value: 60 - color: red value: 75 unit: percentunit overrides: [] gridPos: h: 8 w: 3 x: 9 'y': 6 id: 49 options: minVizHeight: 75 minVizWidth: 75 orientation: auto reduceOptions: calcs: - last fields: '' values: false showThresholdLabels: false showThresholdMarkers: true sizing: auto pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(container_memory_working_set_bytes{namespace="$namespace", pod=~"$pod", image!="", {{ $clusterLabel }}=~"$cluster"}) / sum(kube_pod_container_resource_limits{namespace="$namespace", pod=~"$pod", resource="memory", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) instant: true interval: $resolution legendFormat: Limits refId: B title: Total pod RAM Limits usage type: gauge - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: custom: align: auto cellOptions: type: auto filterable: false inspect: false minWidth: 100 decimals: 4 mappings: [] thresholds: mode: absolute steps: - color: blue value: null unit: none overrides: - matcher: id: byName options: Memory Requests properties: - id: unit value: bytes - id: decimals value: 2 - matcher: id: byName options: Memory Limits properties: - id: unit value: bytes - id: decimals value: 2 - matcher: id: byName options: Memory Used properties: - id: unit value: bytes - id: decimals value: 2 gridPos: h: 8 w: 12 x: 12 'y': 6 id: 38 options: cellHeight: sm footer: countRows: false fields: '' reducer: - sum show: false showHeader: true sortBy: [] pluginVersion: 11.2.0 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(kube_pod_container_resource_requests{namespace="$namespace", pod=~"$pod", resource="cpu", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) by (container) format: table instant: true interval: '' intervalFactor: 1 legendFormat: '' refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(kube_pod_container_resource_limits{namespace="$namespace", pod=~"$pod", resource="cpu", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) by (container) format: table instant: true interval: '' intervalFactor: 1 legendFormat: '' refId: B - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(kube_pod_container_resource_requests{namespace="$namespace", pod=~"$pod", resource="memory", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) by (container) format: table instant: true interval: '' legendFormat: '' refId: C - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(kube_pod_container_resource_limits{namespace="$namespace", pod=~"$pod", resource="memory", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) by (container) format: table instant: true interval: '' legendFormat: '' refId: D - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(rate(container_cpu_usage_seconds_total{namespace="$namespace", pod=~"$pod", image!="", container!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (container) format: table hide: false instant: true legendFormat: __auto range: false refId: E - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: false expr: sum(container_memory_working_set_bytes{namespace="$namespace", pod=~"$pod", image!="", container!="", {{ $clusterLabel }}=~"$cluster"}) by (container) format: table hide: false instant: true range: false refId: F title: Resources by container transformations: - id: seriesToColumns options: byField: container - id: organize options: excludeByName: Time: true Time 1: true Time 2: true Time 4: true __name__: true __name__ 1: true __name__ 2: true __name__ 3: true __name__ 4: true container: false endpoint: true endpoint 2: true endpoint 3: true endpoint 4: true instance: true instance 2: true instance 3: true instance 4: true job: true job 2: true job 3: true job 4: true namespace: true namespace 2: true namespace 3: true namespace 4: true node: true node 2: true node 3: true node 4: true pod: true pod 2: true pod 3: true pod 4: true resource 1: true resource 2: true resource 3: true resource 4: true service: true service 2: true service 3: true service 4: true uid 1: true uid 2: true uid 3: true uid 4: true unit 1: true unit 2: true unit 3: true unit 4: true indexByName: Time 1: 7 Time 2: 8 Time 3: 9 Time 4: 10 Time 5: 11 Time 6: 12 'Value #A': 2 'Value #B': 3 'Value #C': 5 'Value #D': 6 'Value #E': 1 'Value #F': 4 container: 0 renameByName: 'Value #A': CPU Requests 'Value #B': CPU Limits 'Value #C': Memory Requests 'Value #D': Memory Limits 'Value #E': CPU Used 'Value #F': Memory Used container: Container type: table - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: thresholds custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: Percent 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: area mappings: [] max: 1 min: 0 thresholds: mode: percentage steps: - color: red value: null - color: yellow value: 20 - color: green value: 30 - color: yellow value: 70 - color: red value: 80 unit: percentunit overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 14 id: 50 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 exemplar: true expr: sum(rate(container_cpu_usage_seconds_total{namespace="$namespace", pod=~"$pod", image!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (container) / sum(kube_pod_container_resource_requests{namespace="$namespace", pod=~"$pod", resource="cpu", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) by (container) interval: $resolution legendFormat: '{{`{{`}} container {{`}}`}} REQUESTS' range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(rate(container_cpu_usage_seconds_total{namespace="$namespace", pod=~"$pod", image!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (container) / sum(kube_pod_container_resource_limits{namespace="$namespace", pod=~"$pod", resource="cpu", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) by (container) hide: false legendFormat: '{{`{{`}} container {{`}}`}} LIMITS' range: true refId: B title: CPU Usage / Requests & Limits by container type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: fixedColor: blue mode: thresholds custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: Percent 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: area mappings: [] max: 1 min: 0 thresholds: mode: percentage steps: - color: red value: null - color: yellow value: 20 - color: green value: 30 - color: '#EAB839' value: 70 - color: red value: 80 unit: percentunit overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 14 id: 30 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 exemplar: true expr: sum(container_memory_working_set_bytes{namespace="$namespace", pod=~"$pod", image!="", {{ $clusterLabel }}=~"$cluster"}) by (container) / sum(kube_pod_container_resource_requests{namespace="$namespace", pod=~"$pod", resource="memory", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) by (container) interval: '' legendFormat: '{{`{{`}} container {{`}}`}} REQUESTS' range: true refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code expr: sum(container_memory_working_set_bytes{namespace="$namespace", pod=~"$pod", image!="", {{ $clusterLabel }}=~"$cluster"}) by (container) / sum(kube_pod_container_resource_limits{namespace="$namespace", pod=~"$pod", resource="memory", job=~"$job", {{ $clusterLabel }}=~"$cluster"}) by (container) hide: false legendFormat: '{{`{{`}} container {{`}}`}} LIMITS' range: true refId: B title: Memory Usage / Requests & Limits by container type: timeseries - 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' decimals: 4 mappings: [] thresholds: mode: absolute steps: - color: green value: null - color: red value: 80 unit: none overrides: - matcher: id: byName options: limit properties: - id: color value: fixedColor: '#F2495C' mode: fixed - id: custom.fillOpacity value: 0 gridPos: h: 8 w: 12 x: 0 'y': 22 id: 29 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true tooltip: mode: multi sort: desc pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(rate(container_cpu_usage_seconds_total{namespace="$namespace", pod=~"$pod", image!="", container!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (container, id) interval: $resolution legendFormat: '{{`{{`}} container {{`}}`}}' range: true refId: A title: CPU Usage by container type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: mode: palette-classic custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: Bytes 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: bytes overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 22 id: 51 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true tooltip: mode: multi sort: desc pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} editorMode: code exemplar: true expr: sum(container_memory_working_set_bytes{namespace="$namespace", pod=~"$pod", image!="", container!="", {{ $clusterLabel }}=~"$cluster"}) by (container, id) interval: '' legendFormat: '{{`{{`}} container {{`}}`}}' range: true refId: A title: Memory Usage by container 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': 30 id: 59 options: legend: calcs: - min - max - mean displayMode: table placement: right showLegend: true sortBy: Max sortDesc: 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_cfs_throttled_seconds_total{namespace=~"$namespace", pod=~"$pod", image!="", container!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (container) interval: $resolution legendFormat: '{{`{{`}} container {{`}}`}}' range: true refId: A title: CPU Throttled seconds by container type: timeseries - collapsed: false gridPos: h: 1 w: 24 x: 0 'y': 38 id: 62 panels: [] title: Kubernetes type: row - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: fixedColor: blue mode: thresholds custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: Percent 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: area mappings: [] max: 1 min: 0 thresholds: mode: percentage steps: - color: red value: null - color: yellow value: 20 - color: green value: 30 - color: '#EAB839' value: 70 - color: red value: 80 unit: none overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 39 id: 60 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 exemplar: true expr: sum(increase(container_oom_events_total{namespace="${namespace}", pod="${pod}", container!="", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (container) interval: '' legendFormat: '{{`{{`}} container {{`}}`}}' range: true refId: A title: OOM Events by container type: timeseries - datasource: type: {{ $defaultDatasource }} uid: ${datasource} fieldConfig: defaults: color: fixedColor: blue mode: thresholds custom: axisBorderShow: false axisCenteredZero: false axisColorMode: text axisLabel: Percent 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: area mappings: [] max: 1 min: 0 thresholds: mode: percentage steps: - color: red value: null - color: yellow value: 20 - color: green value: 30 - color: '#EAB839' value: 70 - color: red value: 80 unit: none overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 39 id: 61 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 exemplar: true expr: sum(increase(kube_pod_container_status_restarts_total{namespace=~"${namespace}", pod="${pod}", container!="", job=~"$job", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) by (container) interval: '' legendFormat: '{{`{{`}} container {{`}}`}}' range: true refId: A title: Container Restarts by container type: timeseries - collapsed: false datasource: type: {{ $defaultDatasource }} uid: grafana gridPos: h: 1 w: 24 x: 0 'y': 47 id: 45 panels: [] targets: - datasource: type: {{ $defaultDatasource }} uid: grafana refId: A title: Network 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: binBps overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 48 id: 31 options: legend: calcs: [] displayMode: list placement: bottom showLegend: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: sum(rate(container_network_receive_bytes_total{namespace="$namespace", pod=~"$pod", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) interval: $resolution legendFormat: Received refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: '- sum(rate(container_network_transmit_bytes_total{namespace="$namespace", pod=~"$pod", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval]))' interval: $resolution legendFormat: Transmitted refId: B title: Network - Bandwidth 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: pps overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 48 id: 34 options: legend: calcs: [] displayMode: list placement: bottom showLegend: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: sum(rate(container_network_receive_packets_total{namespace="$namespace", pod=~"$pod", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) interval: $resolution legendFormat: Received refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: '- sum(rate(container_network_transmit_packets_total{namespace="$namespace", pod=~"$pod", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval]))' interval: $resolution legendFormat: Transmitted refId: B title: Network - Packets Rate 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: pps overrides: [] gridPos: h: 8 w: 12 x: 0 'y': 56 id: 36 options: legend: calcs: [] displayMode: list placement: bottom showLegend: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: sum(rate(container_network_receive_packets_dropped_total{namespace="$namespace", pod=~"$pod", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) interval: $resolution legendFormat: Received refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: '- sum(rate(container_network_transmit_packets_dropped_total{namespace="$namespace", pod=~"$pod", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval]))' interval: $resolution legendFormat: Transmitted refId: B title: Network - Packets Dropped 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: pps overrides: [] gridPos: h: 8 w: 12 x: 12 'y': 56 id: 37 options: legend: calcs: [] displayMode: list placement: bottom showLegend: true tooltip: mode: multi sort: none pluginVersion: 8.3.3 targets: - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: sum(rate(container_network_receive_errors_total{namespace="$namespace", pod=~"$pod", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval])) interval: $resolution legendFormat: Received refId: A - datasource: type: {{ $defaultDatasource }} uid: ${datasource} exemplar: true expr: '- sum(rate(container_network_transmit_errors_total{namespace="$namespace", pod=~"$pod", {{ $clusterLabel }}=~"$cluster"}[$__rate_interval]))' interval: $resolution legendFormat: Transmitted refId: B title: Network - Errors type: timeseries refresh: 30s schemaVersion: 39 tags: - Kubernetes - Prometheus - vm-k8s-stack templating: list: - current: selected: false text: '' value: '' hide: 0 includeAll: false multi: false name: datasource options: [] query: {{ $defaultDatasource }} queryValue: '' refresh: 1 regex: '' skipUrlSync: false type: datasource - current: isNone: true selected: false text: None value: '' 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 }} - current: selected: false text: monitoring value: monitoring datasource: type: prometheus uid: ${datasource} definition: label_values(kube_pod_info{ {{ $clusterLabel }}=~"$cluster"}, namespace) hide: 0 includeAll: false multi: false name: namespace options: [] query: query: label_values(kube_pod_info{ {{ $clusterLabel }}=~"$cluster"}, namespace) refId: Prometheus-namespace-Variable-Query refresh: 1 regex: '' skipUrlSync: false sort: 1 tagValuesQuery: '' tagsQuery: '' type: query useTags: false - allValue: .* current: selected: false text: '' value: '' datasource: type: prometheus uid: ${datasource} definition: label_values(kube_pod_info{namespace="$namespace", {{ $clusterLabel }}=~"$cluster"}, pod) hide: 0 includeAll: true multi: true name: pod options: [] query: query: label_values(kube_pod_info{namespace="$namespace", {{ $clusterLabel }}=~"$cluster"}, pod) refId: Prometheus-pod-Variable-Query refresh: 2 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 - current: selected: false text: kube-state-metrics value: kube-state-metrics datasource: type: prometheus uid: ${datasource} definition: label_values(kube_pod_info{namespace="$namespace", {{ $clusterLabel }}=~"$cluster"},job) hide: 0 includeAll: false multi: true name: job options: [] query: qryType: 1 query: label_values(kube_pod_info{namespace="$namespace", {{ $clusterLabel }}=~"$cluster"},job) refId: PrometheusVariableQueryEditor-VariableQuery refresh: 1 regex: '' skipUrlSync: false sort: 1 type: query time: from: now-1h to: now timepicker: {} timezone: {{ default "utc" ($Values.defaultDashboards).defaultTimezone }} title: Kubernetes / Views / Pods uid: k8s_views_pods version: 36 weekStart: ''