Closed munjalpatel closed 3 years ago
@munjalpatel can you view one of these graphs and see what response you are getting from Prometheus? This appears to be an issue with your Prometheus and less Grafana. If that's true, it could be networking related but is more likely related to the status of your Prom.
I may try running a query directly in Prometheus if you're not getting a response: https://github.com/kubecost/docs/blob/master/prometheus.md
I think Prometheus seems to be working fine:
Here is the response I get when my Browser executes GET
on http://localhost:9090/grafana/api/dashboards/uid/JOUdHGZZz
{
"meta": {
"type": "db",
"canSave": true,
"canEdit": true,
"canAdmin": false,
"canStar": false,
"slug": "kubecost-cluster-metrics",
"url": "/grafana/d/JOUdHGZZz/kubecost-cluster-metrics",
"expires": "0001-01-01T00:00:00Z",
"created": "2021-02-21T19:36:36Z",
"updated": "2021-02-21T19:36:36Z",
"updatedBy": "Anonymous",
"createdBy": "Anonymous",
"version": 1,
"hasAcl": false,
"isFolder": false,
"folderId": 0,
"folderTitle": "General",
"folderUrl": "",
"provisioned": true,
"provisionedExternalId": "cluster-metrics.json"
},
"dashboard": {
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations \u0026 Alerts",
"type": "dashboard"
}
]
},
"description": "Cost metrics from the Kubecost product",
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 8,
"iteration": 1558062099204,
"links": [],
"panels": [
{
"content": "Note: this dashboard requires Kubecost metrics to be available in your Prometheus deployment. [Learn more](https://github.com/kubecost/cost-model/blob/master/PROMETHEUS.md)",
"gridPos": { "h": 2, "w": 24, "x": 0, "y": 0 },
"id": 27,
"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,
"description": "Monthly run rate of CPU + GPU costs based on currently provisioned resources.",
"format": "currencyUSD",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": { "h": 3, "w": 6, "x": 0, "y": 2 },
"hideTimeOverride": 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": "",
"postfixFontSize": "50%",
"prefix": "",
"prefixFontSize": "50%",
"rangeMaps": [{ "from": "null", "text": "N/A", "to": "null" }],
"sparkline": {
"fillColor": "rgba(31, 118, 189, 0.18)",
"full": true,
"lineColor": "rgb(31, 120, 193)",
"show": false
},
"tableColumn": "label_cloud_google_com_gke_preemptible",
"targets": [
{
"expr": "sum(\n avg(kube_node_status_capacity_cpu_cores) by (node) * avg(node_cpu_hourly_cost) by (node) * 730 * (1-$useDiscount/100) +\n avg(node_gpu_hourly_cost) by (node) * 730 * (1-$useDiscount/100)\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,
"description": "Monthly run rate of memory costs based on currently provisioned expenses.",
"format": "currencyUSD",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": { "h": 3, "w": 6, "x": 6, "y": 2 },
"hideTimeOverride": 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" }],
"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 avg(kube_node_status_capacity_memory_bytes) by (node) / 1024 / 1024 / 1024 * avg(node_ram_hourly_cost) by (node) * 730 * (1-$useDiscount/100)\n)",
"format": "time_series",
"instant": true,
"interval": "",
"intervalFactor": 1,
"legendFormat": " {{ node }}",
"refId": "A"
}
],
"thresholds": "",
"timeFrom": "15m",
"timeShift": null,
"title": "Memory 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,
"description": "Monthly run rate of attached storage and PV costs based on currently provisioned resources.",
"format": "currencyUSD",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": { "h": 3, "w": 6, "x": 12, "y": 2 },
"hideTimeOverride": 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" }],
"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(avg(pv_hourly_cost) by (persistentvolume) * 730 * avg(kube_persistentvolume_capacity_bytes) by (persistentvolume) / 1024 / 1024 / 1024) \n+\nsum(sum(container_fs_limit_bytes{device!=\"tmpfs\", id=\"/\"}) by (instance) / 1024 / 1024 / 1024) * $localStorageGBCost",
"format": "time_series",
"instant": true,
"interval": "",
"intervalFactor": 1,
"legendFormat": " {{ node }}",
"refId": "A"
}
],
"thresholds": "",
"timeFrom": "15m",
"timeShift": null,
"title": "Storage 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,
"description": "Sum of compute, memory, storage and network costs.",
"format": "currencyUSD",
"gauge": {
"maxValue": 100,
"minValue": 0,
"show": false,
"thresholdLabels": false,
"thresholdMarkers": true
},
"gridPos": { "h": 7, "w": 6, "x": 18, "y": 2 },
"hideTimeOverride": 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" }],
"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": "# Compute\nsum(\n avg(kube_node_status_capacity_cpu_cores) by (node) * avg(node_cpu_hourly_cost) by (node) * 730 * (1-$useDiscount/100) +\n avg(node_gpu_hourly_cost) by (node) * 730 * (1-$useDiscount/100)\n) +\n\n\n# Memory\nsum(\n avg(kube_node_status_capacity_memory_bytes) by (node) / 1024 / 1024 / 1024 * avg(node_ram_hourly_cost) by (node) * 730 * (1-$useDiscount/100)\n) +\n\n# Storage \n\nsum(avg(pv_hourly_cost) by (persistentvolume) * 730 * avg(kube_persistentvolume_capacity_bytes) by (persistentvolume) / 1024 / 1024 / 1024) \n+\nsum(sum(container_fs_limit_bytes{device!=\"tmpfs\", id=\"/\"}) by (instance) / 1024 / 1024 / 1024) * $localStorageGBCost",
"format": "time_series",
"instant": true,
"interval": "",
"intervalFactor": 1,
"legendFormat": " {{ node }}",
"refId": "A"
}
],
"thresholds": "",
"timeFrom": "15m",
"timeShift": null,
"title": "Total Cost",
"type": "singlestat",
"valueFontSize": "120%",
"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": 5 },
"height": "180px",
"hideTimeOverride": true,
"id": 13,
"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": 5 },
"height": "180px",
"id": 15,
"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": 5 },
"height": "180px",
"hideTimeOverride": true,
"id": 17,
"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": 5 },
"height": "180px",
"id": 19,
"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": 6, "x": 12, "y": 5 },
"height": "180px",
"hideTimeOverride": true,
"id": 21,
"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) 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) 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"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "default-kubecost",
"description": "Monthly run rate of CPU + GPU costs",
"fill": 1,
"gridPos": { "h": 7, "w": 6, "x": 0, "y": 9 },
"id": 6,
"interval": "1m",
"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(\n avg(kube_node_status_capacity_cpu_cores) by (node) * avg(node_cpu_hourly_cost) by (node) * 730 +\n avg(node_gpu_hourly_cost) by (node) * 730\n)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "compute cost",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Compute 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": "0",
"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",
"description": "Monthly run rate of memory costs",
"fill": 1,
"gridPos": { "h": 7, "w": 6, "x": 6, "y": 9 },
"id": 9,
"interval": "1m",
"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(\n avg(kube_node_status_capacity_memory_bytes) by (node) / 1024 / 1024 / 1024 * avg(node_ram_hourly_cost) by (node) * 730\n)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "memory cost",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Memory 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": "0",
"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",
"description": "Monthly run rate of attached disk + PV storage costs",
"fill": 1,
"gridPos": { "h": 7, "w": 6, "x": 12, "y": 9 },
"id": 10,
"interval": "1m",
"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(\n avg(avg_over_time(pv_hourly_cost[$timeRange] offset 1m)) by (persistentvolume) * 730 \n * avg(avg_over_time(kube_persistentvolume_capacity_bytes[$timeRange] offset 1m)) by (persistentvolume) / 1024 / 1024 / 1024\n) +\nsum(avg(container_fs_limit_bytes{device!=\"tmpfs\", id=\"/\"}) by (instance) / 1024 / 1024 / 1024) * $localStorageGBCost",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "storage cost",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Storage Cost",
"tooltip": { "shared": true, "sort": 0, "value_type": "individual" },
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"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",
"description": "Sum of compute, memory, and storage costs",
"fill": 1,
"gridPos": { "h": 7, "w": 6, "x": 18, "y": 9 },
"id": 22,
"interval": "1m",
"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": "# Compute\nsum(\n avg(kube_node_status_capacity_cpu_cores) by (node) * avg(node_cpu_hourly_cost) by (node) * 730 * (1-$useDiscount/100) +\n avg(node_gpu_hourly_cost) by (node) * 730 * (1-$useDiscount/100)\n) +\n\n\n# Memory\nsum(\n avg(kube_node_status_capacity_memory_bytes) by (node) / 1024 / 1024 / 1024 * avg(node_ram_hourly_cost) by (node) * 730 * (1-$useDiscount/100)\n) +\n\n# Storage \n\nsum(avg(pv_hourly_cost) by (persistentvolume) * 730 * avg(kube_persistentvolume_capacity_bytes) by (persistentvolume) / 1024 / 1024 / 1024) \n+\nsum(sum(container_fs_limit_bytes{device!=\"tmpfs\", id=\"/\"}) by (instance) / 1024 / 1024 / 1024) * $localStorageGBCost",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "total cost",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Total Cost",
"tooltip": { "shared": true, "sort": 0, "value_type": "individual" },
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": { "align": false, "alignLevel": null }
},
{
"columns": [],
"datasource": "default-kubecost",
"description": "Cost of by resource class of currently provisioned nodes",
"fontSize": "100%",
"gridPos": { "h": 9, "w": 12, "x": 0, "y": 16 },
"id": 8,
"links": [],
"pageSize": null,
"scroll": true,
"showHeader": true,
"sort": { "col": 4, "desc": false },
"styles": [
{
"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": "Compute 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": "short"
},
{
"alias": "CPU 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": "Mem 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 #B",
"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 #C",
"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": "instance",
"thresholds": [],
"type": "hidden",
"unit": "short"
},
{
"alias": "GPU",
"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": "short"
},
{
"alias": "",
"colorMode": null,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"decimals": 2,
"pattern": "/.*/",
"thresholds": [],
"type": "number",
"unit": "short"
}
],
"targets": [
{
"expr": "avg(kube_node_status_capacity_cpu_cores) by (node) * avg(node_cpu_hourly_cost or up * 0) by (node) * 730 * (1-$useDiscount/100)",
"format": "table",
"instant": true,
"intervalFactor": 1,
"legendFormat": "",
"refId": "A"
},
{
"expr": "avg(kube_node_status_capacity_memory_bytes) by (node) / 1024 / 1024 / 1024 * avg(node_ram_hourly_cost) by (node) * 730 * (1-$useDiscount/100)",
"format": "table",
"instant": true,
"intervalFactor": 1,
"legendFormat": "",
"refId": "B"
},
{
"expr": "avg(node_gpu_hourly_cost) by (node) * 730 * (1-$useDiscount/100)",
"format": "table",
"instant": true,
"intervalFactor": 1,
"refId": "D"
},
{
"expr": "# CPU \navg(kube_node_status_capacity_cpu_cores) by (node) * avg(node_cpu_hourly_cost or up * 0) by (node) * 730 * (1-$useDiscount/100) +\n# GPU\navg(node_gpu_hourly_cost) by (node) * 730 * (1-$useDiscount/100) +\n# Memory\navg(kube_node_status_capacity_memory_bytes) by (node) / 1024 / 1024 / 1024 * avg(node_ram_hourly_cost) by (node) * 730 * (1-$useDiscount/100)\n",
"format": "table",
"instant": true,
"intervalFactor": 1,
"refId": "C"
}
],
"title": "Cost by node",
"transform": "table",
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "default-kubecost",
"description": "Monthly run rate of attached disk + PV storage costs based on currently provisioned resources.",
"fill": 1,
"gridPos": { "h": 9, "w": 12, "x": 12, "y": 16 },
"id": 25,
"interval": "1m",
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": true,
"steppedLine": false,
"targets": [
{
"expr": "sum(\n avg(kube_node_status_capacity_cpu_cores) by (node) * avg(node_cpu_hourly_cost) by (node) * 730 +\n avg(node_gpu_hourly_cost) by (node) * 730\n)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "cpu",
"refId": "B"
},
{
"expr": "sum(\n avg(kube_node_status_capacity_memory_bytes) by (node) / 1024 / 1024 / 1024 * avg(node_ram_hourly_cost) by (node) * 730\n)",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "memory",
"refId": "A"
},
{
"expr": "sum(\n avg(avg_over_time(pv_hourly_cost[$timeRange] offset 1m)) by (persistentvolume) * 730 \n * avg(avg_over_time(kube_persistentvolume_capacity_bytes[$timeRange] offset 1m)) by (persistentvolume) / 1024 / 1024 / 1024\n) +\nsum(avg(container_fs_limit_bytes{device!=\"tmpfs\", id=\"/\"}) by (instance) / 1024 / 1024 / 1024) * $localStorageGBCost",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "storage",
"refId": "C"
},
{
"expr": "SUM(rate(node_network_transmit_bytes_total{device=\"eth0\"}[60m]) / 1024 / 1024 / 1024 ) * (60 * 60 * 24 * 30) * $percentEgress * $egressCost ",
"format": "time_series",
"intervalFactor": 1,
"legendFormat": "network",
"refId": "D"
}
],
"thresholds": [],
"timeFrom": null,
"timeShift": null,
"title": "Cost by Resource",
"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": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": { "align": false, "alignLevel": null }
}
],
"refresh": false,
"schemaVersion": 16,
"style": "dark",
"tags": ["cost", "utilization", "metrics"],
"templating": {
"list": [
{
"auto": true,
"auto_count": 1,
"auto_min": "1m",
"current": { "text": "auto", "value": "$__auto_interval_timeRange" },
"hide": 2,
"label": null,
"name": "timeRange",
"options": [
{
"selected": true,
"text": "auto",
"value": "$__auto_interval_timeRange"
},
{ "selected": false, "text": "1h", "value": "1h" },
{ "selected": false, "text": "6h", "value": "6h" },
{ "selected": false, "text": "12h", "value": "12h" },
{ "selected": false, "text": "1d", "value": "1d" },
{ "selected": false, "text": "7d", "value": "7d" },
{ "selected": false, "text": "14d", "value": "14d" },
{ "selected": false, "text": "30d", "value": "30d" },
{ "selected": false, "text": "90d", "value": "90d" }
],
"query": "1h,6h,12h,1d,7d,14d,30d,90d",
"refresh": 2,
"skipUrlSync": false,
"type": "interval"
},
{
"current": { "text": ".04", "value": ".04" },
"hide": 2,
"label": "Cost per Gb hour for attached disks",
"name": "localStorageGBCost",
"options": [{ "selected": true, "text": ".04", "value": ".04" }],
"query": ".04",
"skipUrlSync": false,
"type": "constant"
},
{
"current": { "tags": [], "text": "0", "value": "0" },
"hide": 0,
"label": "Sustained Use Discount %",
"name": "useDiscount",
"options": [{ "selected": true, "text": "0", "value": "0" }],
"query": "0",
"skipUrlSync": false,
"type": "constant"
},
{
"current": { "text": ".1", "value": ".1" },
"hide": 2,
"label": null,
"name": "percentEgress",
"options": [{ "selected": true, "text": ".1", "value": ".1" }],
"query": ".1",
"skipUrlSync": false,
"type": "constant"
},
{
"current": { "text": ".12", "value": ".12" },
"hide": 2,
"label": null,
"name": "egressCost",
"options": [{ "selected": true, "text": ".12", "value": ".12" }],
"query": ".12",
"skipUrlSync": false,
"type": "constant"
}
]
},
"time": { "from": "now-7d", "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": "",
"title": "Kubecost cluster metrics",
"uid": "JOUdHGZZz",
"version": 1
}
}
We're you able to view one of these graphs and see what response you are getting from Prometheus? This will be available in the Query Inspector. Here's what this look like:
Thanks for your help @dwbrown2 . I resolved issue. My node was in a memory pressure and hence it was having troubles processing requests.
Hello,
For some reason, I do not see any results in Grafana dashboard. I know most likely it's a config issue. Can someone please help me figure it out?
Here is my helm values file: