{
  "tags": [],
  "title": "Kubernetes Cluster",
  "widgets": [
    {
      "layout": {
        "x": 0,
        "y": 0,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "query_value",
        "title": "Current Connections",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:nginx.net.connections{*}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar",
            "conditional_formats": [
              {
                "value": 2000,
                "palette": "white_on_gray",
                "comparator": ">="
              },
              {
                "value": 2500,
                "palette": "white_on_gray",
                "comparator": ">="
              }
            ]
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 2,
        "y": 0,
        "width": 1,
        "height": 2
      },
      "definition": {
        "type": "query_value",
        "title": "Least CPU Idle",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "min:system.cpu.idle{*}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "(query1/100) * 100"
              }
            ],
            "response_format": "scalar",
            "conditional_formats": [
              {
                "value": 0.1,
                "palette": "white_on_gray",
                "comparator": ">="
              },
              {
                "value": 0.2,
                "palette": "white_on_gray",
                "comparator": ">="
              }
            ]
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center",
        "custom_unit": "%"
      }
    },
    {
      "layout": {
        "x": 3,
        "y": 0,
        "width": 1,
        "height": 2
      },
      "definition": {
        "type": "query_value",
        "title": "Min Space",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "min:system.disk.free{*}",
                "aggregator": "last",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "min:system.disk.total{*}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "(query1 / query2) * 100"
              }
            ],
            "response_format": "scalar",
            "conditional_formats": [
              {
                "value": 0.075,
                "palette": "white_on_gray",
                "comparator": ">="
              },
              {
                "value": 0.2,
                "palette": "white_on_gray",
                "comparator": ">="
              }
            ]
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center",
        "custom_unit": "%"
      }
    },
    {
      "layout": {
        "x": 4,
        "y": 0,
        "width": 1,
        "height": 2
      },
      "definition": {
        "type": "query_value",
        "title": "Min Mem",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "min:system.mem.usable{*}",
                "aggregator": "last",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "min:system.mem.total{*}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "(query1 / query2) * 100"
              }
            ],
            "response_format": "scalar",
            "conditional_formats": [
              {
                "value": 0.05,
                "palette": "white_on_gray",
                "comparator": ">="
              },
              {
                "value": 0.15,
                "palette": "white_on_gray",
                "comparator": ">="
              }
            ]
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center",
        "custom_unit": "%"
      }
    },
    {
      "layout": {
        "x": 5,
        "y": 0,
        "width": 1,
        "height": 2
      },
      "definition": {
        "type": "query_value",
        "title": "Request Time",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "avg:http_request_duration_seconds.count{status:200,method:get}.as_rate()",
                "aggregator": "avg",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "response_format": "scalar",
            "conditional_formats": [
              {
                "value": 2,
                "palette": "white_on_gray",
                "comparator": ">="
              },
              {
                "value": 5,
                "palette": "white_on_gray",
                "comparator": ">="
              }
            ]
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center",
        "custom_unit": "s"
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 0,
        "width": 1,
        "height": 2
      },
      "definition": {
        "type": "query_value",
        "title": "Pod Restarts",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:kubernetes_state.container.restarts{*} by {pod_name}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "count_not_null(diff(query1))"
              }
            ],
            "response_format": "scalar",
            "conditional_formats": [
              {
                "value": 1,
                "palette": "white_on_gray",
                "comparator": ">="
              },
              {
                "value": 10,
                "palette": "white_on_gray",
                "comparator": ">="
              }
            ]
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 7,
        "y": 0,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Pods Restarted",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": false
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:kubernetes_state.container.restarts{*} by {pod_name}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "diff(query1)"
              }
            ],
            "display_type": "line",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 9,
        "y": 0,
        "width": 3,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Pods Running Count",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:kubernetes_state.pod.status_phase{*} by {pod_phase}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "avg:kubernetes.pods.running{*} by {host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              },
              {
                "formula": "query2"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 2,
        "width": 3,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Load 1m",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:system.load.1{*} by {host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 3,
        "y": 2,
        "width": 3,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Memory",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:system.mem.free{*} by {host}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "avg:system.mem.buffered{*} by {host}",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "avg:system.mem.cached{*} by {host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "(query1 + query2 + query3) * 1048576"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 2,
        "width": 3,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "CPU Idle Avg",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": false
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:system.cpu.idle{*} by {host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "(query1/100) * 100"
              }
            ],
            "display_type": "line",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 9,
        "y": 2,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Node Storage",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": false
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "min:system.disk.free{!device_name:overlay} by {device_name,host}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "min:system.disk.total{!device_name:overlay} by {device_name,host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "(query1 / query2) * 100"
              }
            ],
            "display_type": "line",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 4,
        "width": 3,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Disk IO s",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "avg:system.io.util{*} by {device,host}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1/100"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 3,
        "y": 4,
        "width": 3,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Top 5 Memory Intense Pods",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": true
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:kubernetes.memory.usage{*} by {pod_name}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "top(query1, 5, 'mean', 'desc')"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 4,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "TOP CPU Containers",
        "yaxis": {
          "max": "auto",
          "min": "auto",
          "label": "",
          "scale": "linear",
          "include_zero": false
        },
        "requests": [
          {
            "style": {
              "palette": "dog_classic",
              "line_type": "solid",
              "line_width": "normal"
            },
            "queries": [
              {
                "name": "query1",
                "query": "sum:kubernetes.cpu.usage.total{!kube_container_name:pod} by {pod_name,kube_container_name}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "top(query1, 5, 'mean', 'desc') / 1000000000"
              }
            ],
            "display_type": "line",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    }
  ],
  "description": "Converted from Grafana dashboard https://grafana.com/grafana/dashboards/7249 (by buhay). Cluster level overview of workloads deployed, based on prometheus metrics exposed by kubelet, node-exporter, nginx ingress controller",
  "layout_type": "ordered",
  "reflow_type": "fixed",
  "template_variables": []
}