{ "annotations":{ "list":[ { "builtIn":1, "datasource":"-- Grafana --", "enable":true, "hide":true, "iconColor":"rgba(0, 211, 255, 1)", "name":"Annotations & Alerts", "type":"dashboard" } ] }, "description":"A dashboard to help manage Kubernetes cluster costs and resources", "editable":true, "gnetId":6873, "graphTooltip":0, "id":4, "iteration":1556759633456, "links":[ ], "panels":[ { "content":"This dashboard shows monthly cost estimates for the cluster, based on **current** CPU, RAM and storage provisioned.", "gridPos":{ "h":2, "w":24, "x":0, "y":0 }, "id":86, "links":[ ], "mode":"markdown", "title":"", "transparent":true, "type":"text" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":false, "colors":[ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource":"default-kubecost", "decimals":2, "format":"currencyUSD", "gauge":{ "maxValue":100, "minValue":0, "show":false, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":6, "x":0, "y":2 }, "hideTimeOverride":true, "id":75, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"label_cloud_google_com_gke_preemptible", "targets":[ { "expr":"sum(\n (\n (\n sum(kube_node_status_capacity_cpu_cores) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible=\"true\"}) by (node)\n ) * $costpcpu\n )\n or\n (\n (\n sum(kube_node_status_capacity_cpu_cores) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible!=\"true\"}) by (node)\n ) * ($costcpu - ($costcpu / 100 * $costDiscount))\n )\n) ", "format":"time_series", "instant":true, "interval":"", "intervalFactor":1, "legendFormat":" {{ node }}", "refId":"A" } ], "thresholds":"", "timeFrom":"15m", "timeShift":null, "title":"CPU Cost", "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":false, "colors":[ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource":"default-kubecost", "decimals":2, "format":"currencyUSD", "gauge":{ "maxValue":100, "minValue":0, "show":false, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":6, "x":6, "y":2 }, "hideTimeOverride":true, "id":77, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"label_cloud_google_com_gke_preemptible", "targets":[ { "expr":"sum(\n (\n (\n sum(kube_node_status_capacity_memory_bytes) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible=\"true\"}) by (node)\n ) /1024/1024/1024 * $costpram\n )\n or\n (\n (\n sum(kube_node_status_capacity_memory_bytes) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible!=\"true\"}) by (node)\n ) /1024/1024/1024 * ($costram - ($costram / 100 * $costDiscount))\n)\n) ", "format":"time_series", "instant":true, "interval":"", "intervalFactor":1, "legendFormat":" {{ node }}", "refId":"A" } ], "thresholds":"", "timeFrom":"15m", "timeShift":null, "title":"RAM Cost", "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":false, "colors":[ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource":"default-kubecost", "decimals":2, "format":"currencyUSD", "gauge":{ "maxValue":100, "minValue":0, "show":false, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":6, "x":12, "y":2 }, "hideTimeOverride":true, "id":78, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"label_cloud_google_com_gke_preemptible", "targets":[ { "expr":"sum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) or up * 0\n) / 1024 / 1024 /1024 * $costStorageSSD\n\n+\n\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) or up * 0\n) / 1024 / 1024 /1024 * $costStorageStandard\n\n+ \n\nsum(container_fs_limit_bytes{id=\"/\"}) / 1024 / 1024 / 1024 * 1.03 * $costStorageStandard", "format":"time_series", "instant":true, "interval":"", "intervalFactor":1, "legendFormat":" {{ node }}", "refId":"A" } ], "thresholds":"", "timeFrom":"15m", "timeShift":null, "title":"Storage Cost (Cluster and PVC)", "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":false, "colors":[ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource":"default-kubecost", "decimals":2, "description":"Represents a near worst-case approximation of network costs.", "format":"currencyUSD", "gauge":{ "maxValue":100, "minValue":0, "show":false, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":6, "x":18, "y":2 }, "hideTimeOverride":true, "id":129, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"label_cloud_google_com_gke_preemptible", "targets":[ { "expr":"SUM(rate(node_network_transmit_bytes_total{device=\"eth0\"}[60m]) / 1024 / 1024 / 1024 ) * (60 * 60 * 24 * 30) * $costEgress", "format":"time_series", "instant":true, "interval":"", "intervalFactor":1, "legendFormat":" {{ node }}", "refId":"A" } ], "thresholds":"", "timeFrom":"15m", "timeShift":null, "title":"Network Egress Cost", "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":true, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#c15c17" ], "datasource":"default-kubecost", "decimals":2, "description":"Current CPU use from applications divided by allocatable CPUs", "editable":true, "error":false, "format":"percent", "gauge":{ "maxValue":100, "minValue":0, "show":true, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":3, "x":0, "y":6 }, "height":"180px", "hideTimeOverride":true, "id":82, "interval":null, "isNew":true, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"", "targets":[ { "expr":"(\n sum(\n count(irate(container_cpu_usage_seconds_total{id=\"/\"}[10m])) by (instance)\n * on (instance) \n sum(irate(container_cpu_usage_seconds_total{id=\"/\"}[10m])) by (instance)\n ) \n / \n (sum (kube_node_status_allocatable_cpu_cores))\n) * 100", "format":"time_series", "interval":"", "intervalFactor":1, "refId":"A", "step":10 } ], "thresholds":"30, 80", "timeFrom":"", "title":"CPU Utilization", "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":true, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#c15c17" ], "datasource":"default-kubecost", "decimals":2, "description":"Current CPU reservation requests from applications vs allocatable CPU", "editable":true, "error":false, "format":"percent", "gauge":{ "maxValue":100, "minValue":0, "show":true, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":3, "x":3, "y":6 }, "height":"180px", "id":91, "interval":null, "isNew":true, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"", "targets":[ { "expr":"SUM(kube_pod_container_resource_requests_cpu_cores) / SUM(kube_node_status_allocatable_cpu_cores) * 100", "format":"time_series", "interval":"", "intervalFactor":1, "refId":"A", "step":10 } ], "thresholds":"30, 80", "title":"CPU Requests", "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":true, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#c15c17" ], "datasource":"default-kubecost", "description":"Current RAM use vs RAM available", "editable":true, "error":false, "format":"percent", "gauge":{ "maxValue":100, "minValue":0, "show":true, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":3, "x":6, "y":6 }, "height":"180px", "hideTimeOverride":true, "id":80, "interval":null, "isNew":true, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"", "targets":[ { "expr":"SUM(container_memory_usage_bytes{namespace!=\"\"}) / SUM(kube_node_status_allocatable_memory_bytes) * 100", "format":"time_series", "interval":"", "intervalFactor":1, "refId":"A", "step":10 }, { "expr":"", "format":"time_series", "intervalFactor":1, "refId":"B" } ], "thresholds":"30,80", "timeFrom":"", "title":"RAM Utilization", "transparent":false, "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":true, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#c15c17" ], "datasource":"default-kubecost", "description":"Current RAM requests vs RAM available", "editable":true, "error":false, "format":"percent", "gauge":{ "maxValue":100, "minValue":0, "show":true, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":3, "x":9, "y":6 }, "height":"180px", "id":92, "interval":null, "isNew":true, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"", "targets":[ { "expr":"(\n sum(kube_pod_container_resource_requests_memory_bytes{namespace!=\"\"})\n /\n sum(kube_node_status_allocatable_memory_bytes)\n) * 100", "format":"time_series", "interval":"", "intervalFactor":1, "refId":"A", "step":10 } ], "thresholds":"30,80", "title":"RAM Requests", "transparent":false, "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":true, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#c15c17" ], "datasource":"default-kubecost", "decimals":2, "description":"This gauge shows the current standard storage use, including cluster storage, vs storage available", "editable":true, "error":false, "format":"percent", "gauge":{ "maxValue":100, "minValue":0, "show":true, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":3, "x":12, "y":6 }, "height":"180px", "hideTimeOverride":true, "id":95, "interval":null, "isNew":true, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"", "targets":[ { "expr":"sum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kubelet_volume_stats_used_bytes) by (persistentvolumeclaim, namespace) or up * 0\n + sum(container_fs_usage_bytes{device=~\"^/dev/[sv]d[a-z][1-9]$\",id=\"/\"})\n) /\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) or up * 0\n + sum(container_fs_limit_bytes{device=~\"^/dev/[sv]d[a-z][1-9]$\",id=\"/\"})\n) * 100", "format":"time_series", "interval":"", "intervalFactor":1, "refId":"A", "step":10 } ], "thresholds":"30, 80", "timeFrom":"", "title":"Storage Utilization", "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":true, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#c15c17" ], "datasource":"default-kubecost", "decimals":2, "description":"This gauge shows the current SSD use vs SSD available", "editable":true, "error":false, "format":"percent", "gauge":{ "maxValue":100, "minValue":0, "show":true, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":3, "x":15, "y":6 }, "height":"180px", "hideTimeOverride":true, "id":96, "interval":null, "isNew":true, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"", "targets":[ { "expr":"sum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kubelet_volume_stats_used_bytes) by (persistentvolumeclaim, namespace)\n) /\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace)\n) * 100", "format":"time_series", "interval":"", "intervalFactor":1, "refId":"A", "step":10 } ], "thresholds":"30, 80", "timeFrom":"", "title":"SSD Utilization", "type":"singlestat", "valueFontSize":"80%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "cacheTimeout":null, "colorBackground":false, "colorValue":false, "colors":[ "#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a" ], "datasource":"default-kubecost", "decimals":2, "description":"Expected monthly cost given current CPU, memory storage, and network resource consumption", "format":"currencyUSD", "gauge":{ "maxValue":100, "minValue":0, "show":false, "thresholdLabels":false, "thresholdMarkers":true }, "gridPos":{ "h":4, "w":6, "x":18, "y":6 }, "hideTimeOverride":true, "id":93, "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" } ], "sparkline":{ "fillColor":"rgba(31, 118, 189, 0.18)", "full":false, "lineColor":"rgb(31, 120, 193)", "show":false }, "tableColumn":"label_cloud_google_com_gke_preemptible", "targets":[ { "expr":"# CPU\nsum(\n (\n (\n sum(kube_node_status_capacity_cpu_cores) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible=\"true\"}) by (node)\n ) * $costpcpu\n )\n or\n (\n (\n sum(kube_node_status_capacity_cpu_cores) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible!=\"true\"}) by (node)\n ) * ($costcpu - ($costcpu / 100 * $costDiscount))\n )\n) \n\n+ \n\n# Storage\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) or up * 0\n) / 1024 / 1024 /1024 * $costStorageSSD\n\n+\n\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) or up * 0\n) / 1024 / 1024 /1024 * $costStorageStandard\n\n+ \n\nsum(container_fs_limit_bytes{id=\"/\"}) / 1024 / 1024 / 1024 * 1.03 * $costStorageStandard \n\n+\n\n# END STORAGE\n# RAM \nsum(\n (\n (\n sum(kube_node_status_capacity_memory_bytes) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible=\"true\"}) by (node)\n ) /1024/1024/1024 * $costpram\n )\n or\n (\n (\n sum(kube_node_status_capacity_memory_bytes) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible!=\"true\"}) by (node)\n ) /1024/1024/1024 * ($costram - ($costram / 100 * $costDiscount))\n)\n)\n\n+\n\n#Network \nSUM(rate(node_network_transmit_bytes_total{device=\"eth0\"}[60m]) / 1024 / 1024 / 1024 ) * (60 * 60 * 24 * 30) * $costEgress", "format":"time_series", "instant":true, "interval":"", "intervalFactor":1, "legendFormat":" {{ node }}", "refId":"A" } ], "thresholds":"", "timeFrom":"15m", "timeShift":null, "title":"Total Monthly Cost", "type":"singlestat", "valueFontSize":"120%", "valueMaps":[ { "op":"=", "text":"N/A", "value":"null" } ], "valueName":"current" }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "description":"Expected monthly CPU, memory and storage costs given provisioned resources", "fill":1, "gridPos":{ "h":8, "w":12, "x":0, "y":10 }, "id":120, "legend":{ "avg":false, "current":false, "max":false, "min":false, "show":false, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"# CPU\nsum(\n (\n (\n sum(kube_node_status_capacity_cpu_cores) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible=\"true\"}) by (node)\n ) * $costpcpu\n )\n or\n (\n (\n sum(kube_node_status_capacity_cpu_cores) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible!=\"true\"}) by (node)\n ) * ($costcpu - ($costcpu / 100 * $costDiscount))\n )\n) \n\n+ \n\n# Storage\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) or up * 0\n) / 1024 / 1024 /1024 * $costStorageSSD\n\n+\n\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) or up * 0\n) / 1024 / 1024 /1024 * $costStorageStandard\n\n+ \n\nsum(container_fs_limit_bytes{id=\"/\"}) / 1024 / 1024 / 1024 * 1.03 * $costStorageStandard \n\n+\n\n# END STORAGE\n# RAM \nsum(\n (\n (\n sum(kube_node_status_capacity_memory_bytes) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible=\"true\"}) by (node)\n ) /1024/1024/1024 * $costpram\n )\n or\n (\n (\n sum(kube_node_status_capacity_memory_bytes) by (node)\n * on (node) group_left (label_cloud_google_com_gke_preemptible)\n avg(kube_node_labels{label_cloud_google_com_gke_preemptible!=\"true\"}) by (node)\n ) /1024/1024/1024 * ($costram - ($costram / 100 * $costDiscount))\n)\n) \n\n+\n\n#Network \nSUM(rate(node_network_transmit_bytes_total{device=\"eth0\"}[60m]) / 1024 / 1024 / 1024 ) * (60 * 60 * 24 * 30) * $costEgress", "format":"time_series", "intervalFactor":1, "legendFormat":"cluster cost", "refId":"A" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"Total monthly cost", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "format":"currencyUSD", "label":null, "logBase":1, "max":null, "min":null, "show":true }, { "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true } ], "yaxis":{ "align":false, "alignLevel":null } }, { "columns":[ { "text":"Avg", "value":"avg" } ], "datasource":"default-kubecost", "description":"Resources allocated to namespace based on container requests", "fontSize":"100%", "gridPos":{ "h":8, "w":12, "x":12, "y":10 }, "hideTimeOverride":false, "id":73, "links":[ ], "pageSize":10, "repeat":null, "repeatDirection":"v", "scroll":true, "showHeader":true, "sort":{ "col":7, "desc":true }, "styles":[ { "alias":"Namespace", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#c15c17" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "link":true, "linkTooltip":"View namespace cost metrics", "linkUrl":"d/at-cost-analysis-namespace2/namespace-cost-metrics?&var-namespace=$__cell", "pattern":"namespace", "thresholds":[ "30", "80" ], "type":"string", "unit":"currencyUSD" }, { "alias":"RAM", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "pattern":"Value #B", "thresholds":[ ], "type":"number", "unit":"currencyUSD" }, { "alias":"CPU", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #A", "thresholds":[ ], "type":"number", "unit":"currencyUSD" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Time", "thresholds":[ ], "type":"hidden", "unit":"short" }, { "alias":"PV Storage", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #C", "thresholds":[ ], "type":"number", "unit":"currencyUSD" }, { "alias":"Total", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #D", "thresholds":[ ], "type":"number", "unit":"currencyUSD" }, { "alias":"CPU Utilization", "colorMode":"value", "colors":[ "#bf1b00", "rgba(50, 172, 45, 0.97)", "#ef843c" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #E", "thresholds":[ "30", "80" ], "type":"number", "unit":"percent" }, { "alias":"RAM Utilization", "colorMode":"value", "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#ef843c" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #F", "thresholds":[ "30", "80" ], "type":"number", "unit":"percent" } ], "targets":[ { "expr":"(\n sum(kube_pod_container_resource_requests_cpu_cores{namespace!=\"\",namespace!=\"kube-system\",cloud_google_com_gke_preemptible!=\"true\"}*($costcpu - ($costcpu / 100 * $costDiscount))) by(namespace)\n or\n count(\n count(container_spec_cpu_shares{namespace!=\"\",namespace!=\"kube-system\"}) by(namespace)\n ) by(namespace) -1\n)\n\n+\n\n(\n sum(kube_pod_container_resource_requests_cpu_cores{namespace!=\"\",namespace!=\"kube-system\",cloud_google_com_gke_preemptible=\"true\"}*$costpcpu) by(namespace)\n or\n count(\n count(container_spec_cpu_shares{namespace!=\"\",namespace!=\"kube-system\"}) by(namespace)\n ) by(namespace) -1\n)", "format":"table", "hide":false, "instant":true, "interval":"", "intervalFactor":1, "legendFormat":"{{ namespace }}", "refId":"A" }, { "expr":"(\n sum(kube_pod_container_resource_requests_memory_bytes{namespace!=\"\",namespace!=\"kube-system\",cloud_google_com_gke_preemptible!=\"true\"} / 1024 / 1024 / 1024*($costram- ($costram / 100 * $costDiscount))) by (namespace) \n or\n count(\n count(container_spec_memory_limit_bytes{namespace!=\"\",namespace!=\"kube-system\"}) by(namespace)\n ) by(namespace) -1\n)\n\n+\n\n(\n sum(kube_pod_container_resource_requests_memory_bytes{namespace!=\"\",namespace!=\"kube-system\",cloud_google_com_gke_preemptible=\"true\"} / 1024 / 1024 / 1024 * $costpram ) by (namespace) \n or\n count(\n count(container_spec_memory_limit_bytes{namespace!=\"\",namespace!=\"kube-system\"}) by(namespace)\n ) by(namespace) -1\n)", "format":"table", "instant":true, "intervalFactor":1, "legendFormat":"{{ namespace }}", "refId":"B" }, { "expr":"sum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) \n) by (namespace) / 1024 / 1024 /1024 * $costStorageSSD \n\nor\n\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) \n) by (namespace) / 1024 / 1024 /1024 * $costStorageStandard", "format":"table", "instant":true, "intervalFactor":1, "legendFormat":"{{ namespace }}", "refId":"C" }, { "expr":"# CPU \n(\n sum(kube_pod_container_resource_requests_cpu_cores{namespace!=\"\",namespace!=\"kube-system\",cloud_google_com_gke_preemptible!=\"true\"}*($costcpu - ($costcpu / 100 * $costDiscount))) by(namespace)\n or\n count(\n count(container_spec_cpu_shares{namespace!=\"\",namespace!=\"kube-system\"}) by(namespace)\n ) by(namespace) -1\n)\n\n+\n\n(\n sum(kube_pod_container_resource_requests_cpu_cores{namespace!=\"\",namespace!=\"kube-system\",cloud_google_com_gke_preemptible=\"true\"}*$costpcpu) by(namespace)\n or\n count(\n count(container_spec_cpu_shares{namespace!=\"\",namespace!=\"kube-system\"}) by(namespace)\n ) by(namespace) -1\n)\n\n+\n\n#END CPU \n# Memory \n\n(\n sum(kube_pod_container_resource_requests_memory_bytes{namespace!=\"\",namespace!=\"kube-system\",cloud_google_com_gke_preemptible!=\"true\"} / 1024 / 1024 / 1024*($costram- ($costram / 100 * $costDiscount))) by (namespace) \n or\n count(\n count(container_spec_memory_limit_bytes{namespace!=\"\",namespace!=\"kube-system\"}) by(namespace)\n ) by(namespace) -1\n)\n\n+\n\n(\n sum(kube_pod_container_resource_requests_memory_bytes{namespace!=\"\",namespace!=\"kube-system\",cloud_google_com_gke_preemptible=\"true\"} / 1024 / 1024 / 1024 * $costpram ) by (namespace) \n or\n count(\n count(container_spec_memory_limit_bytes{namespace!=\"\",namespace!=\"kube-system\"}) by(namespace)\n ) by(namespace) -1\n)\n\n+\n\n# PV storage\n\n(\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) \n) by (namespace) / 1024 / 1024 /1024 * $costStorageSSD \n\nor\n\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n + on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes) by (persistentvolumeclaim, namespace) \n) by (namespace) / 1024 / 1024 /1024 * $costStorageStandard \n)", "format":"table", "instant":true, "intervalFactor":1, "legendFormat":"Total", "refId":"D" } ], "timeFrom":"", "timeShift":null, "title":"Namespace cost allocation", "transform":"table", "transparent":false, "type":"table" }, { "collapsed":false, "gridPos":{ "h":1, "w":24, "x":0, "y":18 }, "id":108, "panels":[ ], "title":"CPU Metrics", "type":"row" }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "fill":1, "gridPos":{ "h":8, "w":24, "x":0, "y":19 }, "id":116, "legend":{ "alignAsTable":false, "avg":false, "current":false, "max":false, "min":false, "rightSide":false, "show":true, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"SUM(kube_node_status_capacity_cpu_cores)", "format":"time_series", "intervalFactor":1, "legendFormat":"capacity", "refId":"A" }, { "expr":"SUM(kube_pod_container_resource_requests_cpu_cores)", "format":"time_series", "intervalFactor":1, "legendFormat":"requests", "refId":"C" }, { "expr":"SUM(irate(container_cpu_usage_seconds_total{id=\"/\"}[5m]))", "format":"time_series", "intervalFactor":1, "legendFormat":"usage", "refId":"B" }, { "expr":"SUM(kube_pod_container_resource_limits_cpu_cores) ", "format":"time_series", "intervalFactor":1, "legendFormat":"limits", "refId":"D" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"Cluster CPUs", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "decimals":1, "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true }, { "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true } ], "yaxis":{ "align":false, "alignLevel":null } }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "fill":1, "gridPos":{ "h":8, "w":24, "x":0, "y":27 }, "id":130, "legend":{ "avg":false, "current":false, "max":false, "min":false, "show":true, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"avg(irate(node_cpu_seconds_total{mode!=\"idle\"}[5m])) by (mode) * 100", "format":"time_series", "intervalFactor":1, "legendFormat":"{{mode}}", "refId":"A" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"CPU Mode", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "format":"percent", "label":null, "logBase":1, "max":null, "min":null, "show":true }, { "format":"percent", "label":null, "logBase":1, "max":null, "min":null, "show":false } ], "yaxis":{ "align":false, "alignLevel":null } }, { "columns":[ { "text":"Avg", "value":"avg" } ], "datasource":"default-kubecost", "description":"This table shows the comparison of CPU requests and usage by namespace", "fontSize":"100%", "gridPos":{ "h":10, "w":12, "x":0, "y":35 }, "hideTimeOverride":true, "id":104, "links":[ ], "pageSize":8, "repeatDirection":"v", "scroll":true, "showHeader":true, "sort":{ "col":1, "desc":true }, "styles":[ { "alias":"CPU Requests", "colorMode":null, "colors":[ "#fceaca", "#fce2de", "rgba(245, 54, 54, 0.9)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #A", "thresholds":[ "" ], "type":"number", "unit":"short" }, { "alias":"Node", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"node", "thresholds":[ ], "type":"string", "unit":"short" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Time", "thresholds":[ ], "type":"hidden", "unit":"short" }, { "alias":"CPU Requests", "colorMode":"value", "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#cffaff" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #B", "thresholds":[ "" ], "type":"number", "unit":"short" }, { "alias":"24h CPU Usage", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #C", "thresholds":[ "30" ], "type":"number", "unit":"none" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "link":true, "linkTooltip":"View namespace cost metrics", "linkUrl":"d/at-cost-analysis-namespace2/namespace-cost-metrics?&var-namespace=$__cell", "mappingType":1, "pattern":"namespace", "thresholds":[ ], "type":"number", "unit":"short" } ], "targets":[ { "expr":"sum(kube_pod_container_resource_requests_cpu_cores{namespace!=\"\"}) by (namespace) ", "format":"table", "hide":false, "instant":true, "interval":"", "intervalFactor":1, "legendFormat":"", "refId":"A" }, { "expr":"sum (rate (container_cpu_usage_seconds_total{image!=\"\",namespace!=\"\"}[24h])) by (namespace)", "format":"table", "instant":true, "intervalFactor":1, "legendFormat":"{{ namespace }}", "refId":"C" } ], "timeFrom":null, "timeShift":null, "title":"CPU request utilization by namespace", "transform":"table", "transparent":false, "type":"table" }, { "columns":[ { "text":"Avg", "value":"avg" } ], "datasource":"default-kubecost", "description":"This table shows the comparison of application CPU usage vs the capacity of the node (measured over last 60 minutes)", "fontSize":"100%", "gridPos":{ "h":10, "w":12, "x":12, "y":35 }, "hideTimeOverride":true, "id":90, "links":[ ], "pageSize":8, "repeatDirection":"v", "scroll":true, "showHeader":true, "sort":{ "col":2, "desc":true }, "styles":[ { "alias":"CPU Request Utilization", "colorMode":"value", "colors":[ "#ef843c", "rgba(50, 172, 45, 0.97)", "rgba(245, 54, 54, 0.9)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #A", "thresholds":[ ".30", " .80" ], "type":"number", "unit":"percentunit" }, { "alias":"Node", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"node", "thresholds":[ ], "type":"string", "unit":"short" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Time", "thresholds":[ ], "type":"hidden", "unit":"short" }, { "alias":"CPU Utilization", "colorMode":"value", "colors":[ "#ef843c", "rgba(50, 172, 45, 0.97)", "rgba(245, 54, 54, 0.9)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #B", "thresholds":[ ".20", " .80" ], "type":"number", "unit":"percentunit" }, { "alias":"24h Utilization ", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value", "thresholds":[ ], "type":"number", "unit":"percentunit" } ], "targets":[ { "expr":"SUM(\nSUM(rate(container_cpu_usage_seconds_total[24h])) by (pod_name)\n* on (pod_name) group_left (node) \nlabel_replace(\n avg(kube_pod_info{}),\n \"pod_name\", \n \"$1\", \n \"pod\", \n \"(.+)\"\n)\n) by (node) \n/ \nsum(kube_node_status_capacity_cpu_cores) by (node)", "format":"table", "instant":true, "intervalFactor":1, "refId":"B" }, { "expr":"sum(kube_pod_container_resource_requests_cpu_cores) by (node) / sum(kube_node_status_capacity_cpu_cores) by (node)", "format":"table", "instant":true, "intervalFactor":1, "refId":"A" } ], "timeFrom":null, "timeShift":null, "title":"Cluster cost & utilization by node", "transform":"table", "transparent":false, "type":"table" }, { "collapsed":false, "gridPos":{ "h":1, "w":24, "x":0, "y":45 }, "id":113, "panels":[ ], "title":"Memory Metrics", "type":"row" }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "fill":1, "gridPos":{ "h":8, "w":24, "x":0, "y":46 }, "id":117, "legend":{ "avg":false, "current":false, "max":false, "min":false, "show":false, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"SUM(kube_node_status_capacity_memory_bytes / 1024 / 1024 / 1024)", "format":"time_series", "intervalFactor":1, "legendFormat":"capacity", "refId":"A" }, { "expr":"SUM(kube_pod_container_resource_requests_memory_bytes{namespace!=\"\"} / 1024 / 1024 / 1024)", "format":"time_series", "intervalFactor":1, "legendFormat":"requests", "refId":"C" }, { "expr":"SUM(container_memory_usage_bytes{image!=\"\"} / 1024 / 1024 / 1024)", "format":"time_series", "intervalFactor":1, "legendFormat":"usage", "refId":"B" }, { "expr":"SUM(kube_pod_container_resource_limits_memory_bytes {namespace!=\"\"} / 1024 / 1024 / 1024)", "format":"time_series", "intervalFactor":1, "legendFormat":"limits", "refId":"D" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"Cluster memory (GB)", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "format":"decgbytes", "label":null, "logBase":1, "max":null, "min":null, "show":true }, { "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true } ], "yaxis":{ "align":false, "alignLevel":null } }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "fill":1, "gridPos":{ "h":8, "w":24, "x":0, "y":54 }, "id":131, "legend":{ "avg":false, "current":false, "max":false, "min":false, "show":false, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"1 - sum(node_memory_MemAvailable_bytes) by (node) / sum(node_memory_MemTotal_bytes) by (node)", "format":"time_series", "intervalFactor":1, "legendFormat":"usage", "refId":"A" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"Cluster Memory Utilization", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "format":"percentunit", "label":null, "logBase":1, "max":null, "min":null, "show":true }, { "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true } ], "yaxis":{ "align":false, "alignLevel":null } }, { "columns":[ { "text":"Avg", "value":"avg" } ], "datasource":"default-kubecost", "description":"Comparison of memory requests and current usage by namespace", "fontSize":"100%", "gridPos":{ "h":10, "w":12, "x":0, "y":62 }, "hideTimeOverride":true, "id":109, "links":[ ], "pageSize":7, "repeatDirection":"v", "scroll":true, "showHeader":true, "sort":{ "col":1, "desc":true }, "styles":[ { "alias":"Mem Requests (GB)", "colorMode":null, "colors":[ "#fceaca", "#fce2de", "rgba(245, 54, 54, 0.9)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #A", "thresholds":[ "" ], "type":"number", "unit":"short" }, { "alias":"Node", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"node", "thresholds":[ ], "type":"string", "unit":"short" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Time", "thresholds":[ ], "type":"hidden", "unit":"short" }, { "alias":"CPU Requests", "colorMode":"value", "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(50, 172, 45, 0.97)", "#cffaff" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #B", "thresholds":[ "" ], "type":"number", "unit":"short" }, { "alias":"24h Mem Usage", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "#508642", "#e5ac0e" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #C", "thresholds":[ ".30", ".75" ], "type":"number", "unit":"none" }, { "alias":"Namespace", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "link":true, "linkTooltip":"View namespace cost metrics", "linkUrl":"d/at-cost-analysis-namespace2/namespace-cost-metrics?&var-namespace=$__cell", "mappingType":1, "pattern":"namespace", "thresholds":[ ], "type":"number", "unit":"short" } ], "targets":[ { "expr":"sum(kube_pod_container_resource_requests_memory_bytes{namespace!=\"\"} / 1024 / 1024 / 1024) by (namespace) ", "format":"table", "hide":false, "instant":true, "interval":"", "intervalFactor":1, "legendFormat":"", "refId":"A" }, { "expr":"SUM(container_memory_usage_bytes{image!=\"\",namespace!=\"\"} / 1024 / 1024 / 1024) by (namespace)", "format":"table", "instant":true, "intervalFactor":1, "legendFormat":"", "refId":"C" } ], "timeFrom":null, "timeShift":null, "title":"Memory requests & utilization by namespace", "transform":"table", "transparent":false, "type":"table" }, { "columns":[ { "text":"Avg", "value":"avg" } ], "datasource":"default-kubecost", "description":"Container RAM usage vs node capacity", "fontSize":"100%", "gridPos":{ "h":10, "w":12, "x":12, "y":62 }, "hideTimeOverride":true, "id":114, "links":[ ], "pageSize":8, "repeatDirection":"v", "scroll":true, "showHeader":true, "sort":{ "col":1, "desc":true }, "styles":[ { "alias":"RAM Requests", "colorMode":"value", "colors":[ "#ef843c", "rgba(50, 172, 45, 0.97)", "rgba(245, 54, 54, 0.9)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #A", "thresholds":[ "30", " 80" ], "type":"number", "unit":"percentunit" }, { "alias":"Node", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"node", "thresholds":[ ], "type":"string", "unit":"short" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Time", "thresholds":[ ], "type":"hidden", "unit":"short" }, { "alias":"RAM Usage", "colorMode":"value", "colors":[ "#ef843c", "rgba(50, 172, 45, 0.97)", "rgba(245, 54, 54, 0.9)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #B", "thresholds":[ "25", " 80" ], "type":"number", "unit":"percent" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"", "thresholds":[ ], "type":"number", "unit":"short" } ], "targets":[ { "expr":"SUM(label_replace(container_memory_usage_bytes{namespace!=\"\"}, \"node\", \"$1\", \"instance\",\"(.+)\")) by (node) * 100\n/\nSUM(kube_node_status_capacity_memory_bytes) by (node)", "format":"table", "instant":true, "intervalFactor":1, "refId":"B" }, { "expr":"sum(kube_pod_container_resource_requests_memory_bytes{namespace!=\"\"}) by (node) / SUM(kube_node_status_capacity_memory_bytes) by (node)", "format":"table", "instant":true, "intervalFactor":1, "refId":"A" } ], "timeFrom":null, "timeShift":null, "title":"Node utilization of allocatable RAM", "transform":"table", "transparent":false, "type":"table" }, { "collapsed":false, "gridPos":{ "h":1, "w":24, "x":0, "y":72 }, "id":101, "panels":[ ], "title":"Storage Metrics", "type":"row" }, { "columns":[ { "text":"Avg", "value":"avg" } ], "datasource":"default-kubecost", "fontSize":"100%", "gridPos":{ "h":9, "w":12, "x":0, "y":73 }, "hideTimeOverride":true, "id":97, "links":[ ], "pageSize":8, "repeatDirection":"v", "scroll":true, "showHeader":true, "sort":{ "col":4, "desc":true }, "styles":[ { "alias":"Node", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"instance", "thresholds":[ ], "type":"string", "unit":"short" }, { "alias":"PVC Name", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"persistentvolumeclaim", "thresholds":[ ], "type":"number", "unit":"short" }, { "alias":"Storage Class", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"storageclass", "thresholds":[ ], "type":"number", "unit":"short" }, { "alias":"Cost", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value", "thresholds":[ ], "type":"number", "unit":"currencyUSD" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Time", "thresholds":[ ], "type":"hidden", "unit":"short" }, { "alias":"Cost", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #A", "thresholds":[ ], "type":"number", "unit":"currencyUSD" }, { "alias":"Size (GB)", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #B", "thresholds":[ ], "type":"number", "unit":"short" }, { "alias":"Usage", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #C", "thresholds":[ ], "type":"number", "unit":"percentunit" } ], "targets":[ { "expr":"SUM(container_fs_limit_bytes{id=\"/\"}) by (instance) / 1024 / 1024 / 1024 * 1.03", "format":"table", "instant":true, "intervalFactor":1, "refId":"B" }, { "expr":"SUM(container_fs_limit_bytes{id=\"/\"}) by (instance) / 1024 / 1024 / 1024 * 1.03 * $costStorageStandard\n", "format":"table", "hide":false, "instant":true, "interval":"", "intervalFactor":1, "legendFormat":"{{ persistentvolumeclaim }}", "refId":"A" }, { "expr":"sum(container_fs_usage_bytes{device=~\"^/dev/[sv]d[a-z][1-9]$\",id=\"/\"} / container_fs_limit_bytes{device=~\"^/dev/[sv]d[a-z][1-9]$\",id=\"/\"}) by (instance) \n", "format":"table", "instant":true, "intervalFactor":1, "refId":"C" } ], "timeFrom":null, "timeShift":null, "title":"Local Storage", "transform":"table", "transparent":false, "type":"table" }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "fill":1, "gridPos":{ "h":9, "w":12, "x":12, "y":73 }, "id":128, "legend":{ "avg":false, "current":false, "max":false, "min":false, "show":true, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"SUM(container_fs_usage_bytes{id=\"/\"}) / SUM(container_fs_limit_bytes{id=\"/\"})", "format":"time_series", "intervalFactor":1, "legendFormat":"reads", "refId":"D" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"Local storage utilization", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "format":"percent", "label":"IOPS", "logBase":1, "max":null, "min":null, "show":true }, { "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true } ], "yaxis":{ "align":false, "alignLevel":null } }, { "columns":[ { "text":"Avg", "value":"avg" } ], "datasource":"default-kubecost", "fontSize":"100%", "gridPos":{ "h":10, "w":12, "x":0, "y":82 }, "hideTimeOverride":true, "id":94, "links":[ ], "pageSize":10, "repeatDirection":"v", "scroll":true, "showHeader":true, "sort":{ "col":2, "desc":true }, "styles":[ { "alias":"Namespace", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "link":true, "linkTooltip":"View namespace cost metrics", "linkUrl":"d/at-cost-analysis-namespace2/namespace-cost-metrics?&var-namespace=$__cell", "mappingType":1, "pattern":"namespace", "thresholds":[ ], "type":"string", "unit":"short" }, { "alias":"PVC Name", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"persistentvolumeclaim", "thresholds":[ ], "type":"number", "unit":"short" }, { "alias":"Storage Class", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"storageclass", "thresholds":[ ], "type":"number", "unit":"short" }, { "alias":"Cost", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value", "thresholds":[ ], "type":"number", "unit":"currencyUSD" }, { "alias":"", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Time", "thresholds":[ ], "type":"hidden", "unit":"short" }, { "alias":"Cost", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #A", "thresholds":[ ], "type":"number", "unit":"currencyUSD" }, { "alias":"Usage", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #B", "thresholds":[ ], "type":"number", "unit":"percentunit" }, { "alias":"Size (GB)", "colorMode":null, "colors":[ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "dateFormat":"YYYY-MM-DD HH:mm:ss", "decimals":2, "mappingType":1, "pattern":"Value #C", "thresholds":[ ], "type":"number", "unit":"short" } ], "targets":[ { "expr":"sum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n * on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace)\n) by (namespace,persistentvolumeclaim,storageclass) / 1024 / 1024 /1024\n\nor\n\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n * on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace)\n) by (namespace,persistentvolumeclaim,storageclass) / 1024 / 1024 /1024\n\n\n", "format":"table", "instant":true, "intervalFactor":1, "refId":"C" }, { "expr":"sum (\n sum(kube_persistentvolumeclaim_info{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n * on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes{storageclass=~\".*ssd.*\"}) by (persistentvolumeclaim, namespace)\n) by (namespace,persistentvolumeclaim,storageclass) / 1024 / 1024 /1024 * $costStorageSSD\n\nor\n\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n * on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace)\n) by (namespace,persistentvolumeclaim,storageclass) / 1024 / 1024 /1024 * $costStorageStandard\n", "format":"table", "hide":false, "instant":true, "interval":"", "intervalFactor":1, "legendFormat":"{{ persistentvolumeclaim }}", "refId":"A" }, { "expr":"sum(kubelet_volume_stats_used_bytes) by (persistentvolumeclaim, namespace) \n/\nsum (\n sum(kube_persistentvolumeclaim_info{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace, storageclass)\n * on (persistentvolumeclaim, namespace) group_right(storageclass)\n sum(kube_persistentvolumeclaim_resource_requests_storage_bytes{storageclass!~\".*ssd.*\"}) by (persistentvolumeclaim, namespace)\n) by (namespace,persistentvolumeclaim)", "format":"table", "instant":true, "intervalFactor":1, "refId":"B" } ], "timeFrom":null, "timeShift":null, "title":"Persistent Volume Claims", "transform":"table", "transparent":false, "type":"table" }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "fill":1, "gridPos":{ "h":10, "w":12, "x":12, "y":82 }, "id":132, "legend":{ "avg":false, "current":false, "max":false, "min":false, "show":true, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"SUM(rate(node_disk_reads_completed_total[10m])) or SUM(rate(node_disk_reads_completed[10m]))\n", "format":"time_series", "intervalFactor":1, "legendFormat":"reads", "refId":"D" }, { "expr":"SUM(rate(node_disk_writes_completed_total[10m])) or SUM(rate(node_disk_writes_completed[10m]))", "format":"time_series", "intervalFactor":1, "legendFormat":"writes", "refId":"A" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"Disk IOPS", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "format":"none", "label":"IOPS", "logBase":1, "max":null, "min":null, "show":true }, { "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true } ], "yaxis":{ "align":false, "alignLevel":null } }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "fill":1, "gridPos":{ "h":9, "w":24, "x":0, "y":92 }, "id":122, "legend":{ "avg":false, "current":false, "max":false, "min":false, "show":true, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"SUM( kubelet_volume_stats_inodes_used / kubelet_volume_stats_inodes) by (persistentvolumeclaim) * 100", "format":"time_series", "intervalFactor":1, "legendFormat":"", "refId":"D" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"Inode usage", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "format":"percent", "label":null, "logBase":1, "max":null, "min":null, "show":true }, { "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true } ], "yaxis":{ "align":false, "alignLevel":null } }, { "collapsed":false, "gridPos":{ "h":1, "w":24, "x":0, "y":101 }, "id":127, "panels":[ ], "title":"Network", "type":"row" }, { "aliasColors":{ }, "bars":false, "dashLength":10, "dashes":false, "datasource":"default-kubecost", "fill":1, "gridPos":{ "h":9, "w":24, "x":0, "y":102 }, "id":123, "legend":{ "avg":false, "current":false, "max":false, "min":false, "show":true, "total":false, "values":false }, "lines":true, "linewidth":1, "links":[ ], "nullPointMode":"null", "percentage":false, "pointradius":5, "points":false, "renderer":"flot", "seriesOverrides":[ ], "spaceLength":10, "stack":false, "steppedLine":false, "targets":[ { "expr":"sum (rate (node_network_transmit_bytes_total{}[60m]))\n", "format":"time_series", "intervalFactor":1, "legendFormat":"node_out", "refId":"B" }, { "expr":"SUM ( rate(node_network_transmit_bytes_total{device=\"eth0\"}[60m]))", "format":"time_series", "instant":false, "intervalFactor":1, "legendFormat":"eth0 out", "refId":"C" } ], "thresholds":[ ], "timeFrom":null, "timeShift":null, "title":"Node network transmit", "tooltip":{ "shared":true, "sort":0, "value_type":"individual" }, "type":"graph", "xaxis":{ "buckets":null, "mode":"time", "name":null, "show":true, "values":[ ] }, "yaxes":[ { "format":"decbytes", "label":null, "logBase":1, "max":null, "min":null, "show":true }, { "format":"short", "label":null, "logBase":1, "max":null, "min":null, "show":true } ], "yaxis":{ "align":false, "alignLevel":null } } ], "refresh":"15m", "schemaVersion":16, "style":"dark", "tags":[ "cost", "utilization", "metrics" ], "templating":{ "list":[ { "current":{ "text":"23.076", "value":"23.076" }, "hide":0, "label":"CPU", "name":"costcpu", "options":[ { "text":"23.076", "value":"23.076" } ], "query":"23.076", "skipUrlSync":false, "type":"constant" }, { "current":{ "text":"5.10", "value":"5.10" }, "hide":0, "label":"PE CPU", "name":"costpcpu", "options":[ { "text":"5.10", "value":"5.10" } ], "query":"5.10", "skipUrlSync":false, "type":"constant" }, { "current":{ "text":"3.25", "value":"3.25" }, "hide":0, "label":"RAM", "name":"costram", "options":[ { "text":"3.25", "value":"3.25" } ], "query":"3.25", "skipUrlSync":false, "type":"constant" }, { "current":{ "text":"0.6862", "value":"0.6862" }, "hide":0, "label":"PE RAM", "name":"costpram", "options":[ { "text":"0.6862", "value":"0.6862" } ], "query":"0.6862", "skipUrlSync":false, "type":"constant" }, { "current":{ "text":"0.040", "value":"0.040" }, "hide":0, "label":"Storage", "name":"costStorageStandard", "options":[ { "text":"0.040", "value":"0.040" } ], "query":"0.040", "skipUrlSync":false, "type":"constant" }, { "current":{ "text":".17", "value":".17" }, "hide":0, "label":"SSD", "name":"costStorageSSD", "options":[ { "text":".17", "value":".17" } ], "query":".17", "skipUrlSync":false, "type":"constant" }, { "current":{ "text":".12", "value":".12" }, "hide":0, "label":"Egress", "name":"costEgress", "options":[ { "selected":true, "text":".12", "value":".12" } ], "query":".12", "skipUrlSync":false, "type":"constant" }, { "current":{ "text":"30", "value":"30" }, "hide":0, "label":"Discount", "name":"costDiscount", "options":[ { "text":"30", "value":"30" } ], "query":"30", "skipUrlSync":false, "type":"constant" } ] }, "time":{ "from":"now-24h", "to":"now" }, "timepicker":{ "hidden":false, "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 cost & utilization metrics", "uid":"cluster-costs", "version":1 }