Skip to content

Instantly share code, notes, and snippets.

@olegakbarov
Forked from zakharovvi/cluster-capacity.json
Created October 16, 2017 13:48
Show Gist options
  • Save olegakbarov/0809b89e38ff9a243cc531bff370302d to your computer and use it in GitHub Desktop.
Save olegakbarov/0809b89e38ff9a243cc531bff370302d to your computer and use it in GitHub Desktop.

Revisions

  1. @zakharovvi zakharovvi created this gist Oct 13, 2017.
    1,262 changes: 1,262 additions & 0 deletions cluster-capacity.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1262 @@
    {
    "annotations": {
    "list": []
    },
    "editable": true,
    "gnetId": null,
    "graphTooltip": 2,
    "hideControls": false,
    "links": [
    {
    "asDropdown": true,
    "icon": "external link",
    "includeVars": true,
    "keepTime": false,
    "tags": [
    "cluster"
    ],
    "title": "cluster",
    "type": "dashboards"
    }
    ],
    "rows": [
    {
    "collapse": false,
    "height": "50px",
    "panels": [
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "none",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 2,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": " cores",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "sum(kube_node_status_capacity_cpu_cores and kube_node_spec_unschedulable == 0)",
    "format": "time_series",
    "intervalFactor": 2,
    "legendFormat": "",
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "CPU Capacity",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "current"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "decimals": 0,
    "format": "percentunit",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 3,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": "",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "sum(RECORING_RULE:node_cpu_irate{job=\"node-exporter\",mode!=\"idle\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"}) / sum(kube_node_status_capacity_cpu_cores and kube_node_spec_unschedulable == 0)",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Max CPU Utilization",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "max"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "bytes",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 4,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": "",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "sum(kube_node_status_capacity_memory_bytes and kube_node_spec_unschedulable == 0)",
    "format": "time_series",
    "intervalFactor": 2,
    "legendFormat": "",
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Memory Capacity",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "current"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "decimals": 0,
    "description": "",
    "format": "percentunit",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 5,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": "",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "(sum(kube_node_status_capacity_memory_bytes and kube_node_spec_unschedulable == 0) - sum(node_memory_MemAvailable{job=\"node-exporter\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"})) / sum(kube_node_status_capacity_memory_bytes and kube_node_spec_unschedulable == 0)",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Max Memory Utilization",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "max"
    }
    ],
    "repeat": null,
    "repeatIteration": null,
    "repeatRowId": null,
    "showTitle": true,
    "title": "Capacity & Utilization",
    "titleSize": "h6"
    },
    {
    "collapse": false,
    "height": "50",
    "panels": [
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "none",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 6,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": " cores",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "RECORING_RULE:kube_pod_container_resource_requests_cpu_cores_sum",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Requested CPU Cores",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "current"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "none",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 7,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": " cores",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "RECORING_RULE:kube_pod_container_resource_limits_cpu_cores_sum",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Limits CPU Cores",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "current"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "bytes",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 8,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": "",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "RECORING_RULE:kube_pod_container_resource_requests_memory_bytes_sum",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Requested Memory",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "current"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "bytes",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 9,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": "",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "RECORING_RULE:kube_pod_container_resource_limits_memory_bytes_sum",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Limits Memory",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "current"
    }
    ],
    "repeat": null,
    "repeatIteration": null,
    "repeatRowId": null,
    "showTitle": true,
    "title": "Pods Requests & Limits",
    "titleSize": "h6"
    },
    {
    "collapse": false,
    "height": "50",
    "panels": [
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "none",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 10,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": " cores",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "sum(RECORING_RULE:node_cpu_irate{job=\"node-exporter\",mode!=\"idle\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"})",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Max CPU",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "max"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "none",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 11,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": "",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "sum(node_load1{job=\"node-exporter\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"})",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Max Load Average 1",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "max"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "bytes",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 12,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": "",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "sum(node_memory_MemTotal{job=\"node-exporter\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"} - node_memory_MemAvailable{job=\"node-exporter\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"})",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Max Memory (used )",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "max"
    },
    {
    "cacheTimeout": null,
    "colorBackground": false,
    "colorValue": false,
    "colors": [
    "rgba(245, 54, 54, 0.9)",
    "rgba(237, 129, 40, 0.89)",
    "rgba(50, 172, 45, 0.97)"
    ],
    "datasource": "$datasource",
    "format": "bytes",
    "gauge": {
    "maxValue": 100,
    "minValue": 0,
    "show": false,
    "thresholdLabels": false,
    "thresholdMarkers": true
    },
    "id": 13,
    "interval": null,
    "links": [],
    "mappingType": 1,
    "mappingTypes": [
    {
    "name": "value to text",
    "value": 1
    },
    {
    "name": "range to text",
    "value": 2
    }
    ],
    "maxDataPoints": 100,
    "nullPointMode": "connected",
    "nullText": null,
    "postfix": "",
    "postfixFontSize": "50%",
    "prefix": "",
    "prefixFontSize": "50%",
    "rangeMaps": [
    {
    "from": "null",
    "text": "N/A",
    "to": "null"
    }
    ],
    "span": 3,
    "sparkline": {
    "fillColor": "rgba(31, 118, 189, 0.18)",
    "full": true,
    "lineColor": "rgb(31, 120, 193)",
    "show": true
    },
    "tableColumn": "",
    "targets": [
    {
    "expr": "sum(node_memory_MemTotal{job=\"node-exporter\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"}) - sum(node_memory_MemFree{job=\"node-exporter\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"})",
    "format": "time_series",
    "intervalFactor": 2,
    "refId": "A",
    "step": 86400
    }
    ],
    "thresholds": "",
    "title": "Max Memory (used + cached + buffers)",
    "type": "singlestat",
    "valueFontSize": "80%",
    "valueMaps": [
    {
    "op": "=",
    "text": "N/A",
    "value": "null"
    }
    ],
    "valueName": "max"
    }
    ],
    "repeat": null,
    "repeatIteration": null,
    "repeatRowId": null,
    "showTitle": true,
    "title": "Usage",
    "titleSize": "h6"
    },
    {
    "collapse": false,
    "height": 250,
    "panels": [
    {
    "aliasColors": {},
    "bars": false,
    "dashLength": 10,
    "dashes": false,
    "datasource": "$datasource",
    "fill": 1,
    "id": 14,
    "legend": {
    "alignAsTable": true,
    "avg": true,
    "current": true,
    "max": true,
    "min": true,
    "rightSide": true,
    "show": true,
    "sort": "max",
    "sortDesc": true,
    "total": false,
    "values": true
    },
    "lines": true,
    "linewidth": 1,
    "links": [],
    "nullPointMode": "null",
    "percentage": false,
    "pointradius": 5,
    "points": false,
    "renderer": "flot",
    "seriesOverrides": [
    {
    "alias": "capacity",
    "zindex": -3
    }
    ],
    "spaceLength": 10,
    "span": 12,
    "stack": false,
    "steppedLine": false,
    "targets": [
    {
    "expr": "sum(kube_node_status_capacity_cpu_cores and kube_node_spec_unschedulable == 0)",
    "format": "time_series",
    "intervalFactor": 10,
    "legendFormat": "capacity",
    "refId": "B",
    "step": 18000
    },
    {
    "expr": "sum(RECORING_RULE:node_cpu_irate{job=\"node-exporter\",mode!=\"idle\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"})",
    "format": "time_series",
    "intervalFactor": 10,
    "legendFormat": "usage",
    "refId": "A",
    "step": 18000
    },
    {
    "expr": "RECORING_RULE:kube_pod_container_resource_requests_cpu_cores_sum",
    "format": "time_series",
    "intervalFactor": 10,
    "legendFormat": "requests",
    "refId": "C",
    "step": 18000
    },
    {
    "expr": "RECORING_RULE:kube_pod_container_resource_limits_cpu_cores_sum",
    "format": "time_series",
    "intervalFactor": 10,
    "legendFormat": "limits",
    "refId": "D",
    "step": 18000
    }
    ],
    "thresholds": [],
    "timeFrom": null,
    "timeShift": null,
    "title": "CPU",
    "tooltip": {
    "shared": true,
    "sort": 0,
    "value_type": "individual"
    },
    "type": "graph",
    "xaxis": {
    "buckets": null,
    "mode": "time",
    "name": null,
    "show": true,
    "values": []
    },
    "yaxes": [
    {
    "format": "short",
    "label": "cores",
    "logBase": 1,
    "max": null,
    "min": null,
    "show": true
    },
    {
    "format": "short",
    "label": null,
    "logBase": 1,
    "max": null,
    "min": null,
    "show": true
    }
    ]
    },
    {
    "aliasColors": {},
    "bars": false,
    "dashLength": 10,
    "dashes": false,
    "datasource": "$datasource",
    "fill": 1,
    "id": 15,
    "legend": {
    "alignAsTable": true,
    "avg": true,
    "current": true,
    "max": true,
    "min": true,
    "rightSide": true,
    "show": true,
    "sort": "max",
    "sortDesc": true,
    "total": false,
    "values": true
    },
    "lines": true,
    "linewidth": 1,
    "links": [],
    "nullPointMode": "null",
    "percentage": false,
    "pointradius": 5,
    "points": false,
    "renderer": "flot",
    "seriesOverrides": [
    {
    "alias": "capacity",
    "zindex": -3
    }
    ],
    "spaceLength": 10,
    "span": 12,
    "stack": false,
    "steppedLine": false,
    "targets": [
    {
    "expr": "sum(kube_node_status_capacity_memory_bytes and kube_node_spec_unschedulable == 0)",
    "format": "time_series",
    "intervalFactor": 10,
    "legendFormat": "capacity",
    "refId": "B",
    "step": 18000
    },
    {
    "expr": "sum(node_memory_MemTotal{job=\"node-exporter\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"} - node_memory_MemAvailable{job=\"node-exporter\", beta_kubernetes_io_os=~\".+\", instance!~\"master.+\"})",
    "format": "time_series",
    "intervalFactor": 10,
    "legendFormat": "used",
    "refId": "A",
    "step": 18000
    },
    {
    "expr": "RECORING_RULE:kube_pod_container_resource_requests_memory_bytes_sum",
    "format": "time_series",
    "intervalFactor": 2,
    "legendFormat": "requests",
    "refId": "C",
    "step": 3600
    },
    {
    "expr": "RECORING_RULE:kube_pod_container_resource_limits_memory_bytes_sum",
    "format": "time_series",
    "intervalFactor": 2,
    "legendFormat": "limits",
    "refId": "D",
    "step": 3600
    }
    ],
    "thresholds": [],
    "timeFrom": null,
    "timeShift": null,
    "title": "Memory",
    "tooltip": {
    "shared": true,
    "sort": 0,
    "value_type": "individual"
    },
    "type": "graph",
    "xaxis": {
    "buckets": null,
    "mode": "time",
    "name": null,
    "show": true,
    "values": []
    },
    "yaxes": [
    {
    "format": "bytes",
    "label": null,
    "logBase": 1,
    "max": null,
    "min": null,
    "show": true
    },
    {
    "format": "short",
    "label": null,
    "logBase": 1,
    "max": null,
    "min": null,
    "show": true
    }
    ]
    }
    ],
    "repeat": null,
    "repeatIteration": null,
    "repeatRowId": null,
    "showTitle": true,
    "title": "History",
    "titleSize": "h6"
    }
    ],
    "schemaVersion": 14,
    "style": "dark",
    "tags": [
    "cluster",
    "ops"
    ],
    "templating": {
    "list": [
    {
    "current": {
    "text": "prometheus-test",
    "value": "prometheus-test"
    },
    "hide": 0,
    "label": null,
    "name": "datasource",
    "options": [],
    "query": "prometheus",
    "refresh": 1,
    "regex": "prometheus-.+",
    "type": "datasource"
    }
    ]
    },
    "time": {
    "from": "now-40d",
    "to": "now"
    },
    "timepicker": {
    "refresh_intervals": [
    "5s",
    "10s",
    "30s",
    "1m",
    "5m",
    "15m",
    "30m",
    "1h",
    "2h",
    "1d"
    ],
    "time_options": [
    "5m",
    "15m",
    "1h",
    "6h",
    "12h",
    "24h",
    "2d",
    "7d",
    "30d"
    ]
    },
    "timezone": "browser",
    "title": "Cluster Capacity"
    }
    11 changes: 11 additions & 0 deletions prometheus.rules
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,11 @@
    # https://prometheus.io/docs/practices/rules/

    # CPU Usage долго вычисляется в дашбордах Capacity Planing, Nodes, Node
    RECORING_RULE:node_cpu_cores = count(node_cpu{mode="idle"}) without (cpu,mode)
    RECORING_RULE:node_cpu_irate = sum without (cpu) (irate(node_cpu[2m]))

    # Ресурсы долго вычисляются в дашборде Capacity Planing
    RECORING_RULE:kube_pod_container_resource_requests_memory_bytes_sum = sum(kube_pod_container_resource_requests_memory_bytes)
    RECORING_RULE:kube_pod_container_resource_limits_memory_bytes_sum = sum(kube_pod_container_resource_limits_memory_bytes)
    RECORING_RULE:kube_pod_container_resource_requests_cpu_cores_sum = sum(kube_pod_container_resource_requests_cpu_cores)
    RECORING_RULE:kube_pod_container_resource_limits_cpu_cores_sum = sum(kube_pod_container_resource_limits_cpu_cores)