{
  "tags": [],
  "title": "Docker Container & Host Metrics",
  "widgets": [
    {
      "layout": {
        "x": 0,
        "y": 0,
        "width": 2,
        "height": 2
      },
      "definition": {
        "type": "query_value",
        "title": "Running containers",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "sum:container_last_seen{instance:$node.value:$port.value,$job,image:*} by {host}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "count_not_null(query1)"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "autoscale": true,
        "precision": 2,
        "text_align": "center"
      }
    },
    {
      "layout": {
        "x": 2,
        "y": 0,
        "width": 4,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "CPU Usage on Node",
        "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:process_cpu_seconds.count{*}.as_rate()",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "alias": "host",
                "formula": "query1 * 100"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "timeseries",
        "title": "Free and Used Disk Space on Node",
        "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.disk.free{*} by {device}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "avg:system.disk.total{*}",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "avg:system.disk.free{*}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1"
              },
              {
                "alias": "Used Disk Space",
                "formula": "query2 - query3"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 8,
        "y": 0,
        "width": 2,
        "height": 1
      },
      "definition": {
        "type": "timeseries",
        "title": "Available Memory on Node",
        "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.usable{*}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "avg:system.mem.total{*}",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "avg:system.mem.usable{*}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "alias": "Available Memory",
                "formula": "query1 * 1048576"
              },
              {
                "alias": "Unavailable Memory",
                "formula": "(query2 - query3) * 1048576"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 10,
        "y": 0,
        "width": 1,
        "height": 1
      },
      "definition": {
        "type": "timeseries",
        "title": "Disk I/O on Node",
        "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:system.io.rkb_s{*} by {device}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:system.io.wkb_s{*} by {device}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1 * 1024"
              },
              {
                "formula": "query2 * 1024"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 1,
        "width": 5,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "System Load on Node",
        "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.load.1{*}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "avg:system.load.5{*}",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "avg:system.load.15{*}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1 + query2 + query3"
              }
            ],
            "display_type": "line",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 2,
        "width": 6,
        "height": 1
      },
      "definition": {
        "type": "timeseries",
        "title": "Network Traffic on Node",
        "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.network.rx_bytes{*}",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "sum:kubernetes.network.tx_bytes{*}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "alias": "RECEIVED",
                "formula": "query1"
              },
              {
                "alias": "SENT",
                "formula": "query2 * -1"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 0,
        "y": 3,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "CPU Usage per Container (Stacked)",
        "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.cpu.usage.total{container_name:*} by {container_name}",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "formula": "query1 / 1000000000 * 100"
              }
            ],
            "display_type": "area",
            "response_format": "timeseries"
          }
        ],
        "show_legend": true,
        "legend_layout": "auto",
        "legend_columns": [
          "avg",
          "min",
          "max",
          "value",
          "sum"
        ]
      }
    },
    {
      "layout": {
        "x": 6,
        "y": 3,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Memory Usage per Container (Stacked)",
        "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.rss{container_name:*} by {container_name}",
                "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": 0,
        "y": 5,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Sent Network Traffic per Container",
        "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.network.tx_bytes{container_name:*} by {container_name}",
                "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": 6,
        "y": 5,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Cached Memory per Container (Stacked)",
        "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.cache{container_name:*} by {container_name}",
                "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": 0,
        "y": 7,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "timeseries",
        "title": "Received Network Traffic per Container",
        "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.network.rx_bytes{container_name:*} by {container_name}",
                "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": 6,
        "y": 7,
        "width": 6,
        "height": 2
      },
      "definition": {
        "type": "query_table",
        "title": "",
        "requests": [
          {
            "queries": [
              {
                "name": "query1",
                "query": "avg:cadvisor_version_info{*} by {cadvisorVersion}",
                "aggregator": "last",
                "data_source": "metrics"
              },
              {
                "name": "query2",
                "query": "avg:prometheus_build_info{*} by {version}",
                "aggregator": "last",
                "data_source": "metrics"
              },
              {
                "name": "query3",
                "query": "avg:node_exporter_build_info{*} by {version}",
                "aggregator": "last",
                "data_source": "metrics"
              },
              {
                "name": "query4",
                "query": "avg:cadvisor_version_info{*} by {dockerVersion}",
                "aggregator": "last",
                "data_source": "metrics"
              },
              {
                "name": "query5",
                "query": "avg:cadvisor_version_info{*} by {osVersion}",
                "aggregator": "last",
                "data_source": "metrics"
              },
              {
                "name": "query6",
                "query": "avg:cadvisor_version_info{*} by {kernelVersion}",
                "aggregator": "last",
                "data_source": "metrics"
              }
            ],
            "formulas": [
              {
                "limit": {
                  "count": 50,
                  "order": "desc"
                },
                "formula": "query1"
              },
              {
                "formula": "query2"
              },
              {
                "formula": "query3"
              },
              {
                "formula": "query4"
              },
              {
                "formula": "query5"
              },
              {
                "formula": "query6"
              }
            ],
            "response_format": "scalar"
          }
        ],
        "has_search_bar": "auto"
      }
    }
  ],
  "description": "Converted from Grafana dashboard https://grafana.com/grafana/dashboards/10619 (by dtuygulamayonetimi). A simple overview of the most important Docker host and container metrics. (cAdvisor/Prometheus)",
  "layout_type": "ordered",
  "reflow_type": "fixed",
  "template_variables": [
    {
      "name": "job",
      "prefix": "job",
      "default": "*",
      "available_values": []
    },
    {
      "name": "node",
      "prefix": "instance",
      "default": "*",
      "available_values": []
    },
    {
      "name": "port",
      "prefix": "instance",
      "default": "*",
      "available_values": []
    },
    {
      "name": "Prod",
      "prefix": "container_name",
      "default": "*",
      "available_values": []
    },
    {
      "name": "NonProd",
      "prefix": "container_name",
      "default": "*",
      "available_values": []
    }
  ]
}