Files
foxhunt/infra/k8s/monitoring/dashboards/platform-scaleway.json
jgrusewski dd43316a66 feat(monitoring): add Scaleway infrastructure cockpit dashboard
- Pure-Python scraper replaces shell+Python hybrid (fixes pushgateway
  RemoteDisconnected crash caused by duplicate volume name labels)
- Scraper dynamically discovers all Scaleway resources via API:
  billing, instances, K8s pools, block volumes, IPs
- 40-panel cockpit dashboard with fully dynamic tables (auto-adapts
  when infra changes — no hardcoded instance/volume names)
- Volume table keyed by UUID (not truncated name) to prevent collisions
- Label sanitization for Prometheus text format safety
- Pushgateway push via PUT + Content-Type: text/plain; version=0.0.4

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 03:09:40 +01:00

2669 lines
58 KiB
JSON

{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"x": 0,
"y": 0,
"w": 24,
"h": 1
},
"id": 1,
"panels": [],
"title": "Scaleway Overview",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Total Instances",
"gridPos": {
"x": 0,
"y": 1,
"w": 4,
"h": 4
},
"id": 2,
"targets": [
{
"expr": "count(scaleway_instance_info)",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Running",
"gridPos": {
"x": 4,
"y": 1,
"w": 4,
"h": 4
},
"id": 3,
"targets": [
{
"expr": "sum(scaleway_instance_running)",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "K8s Pools",
"gridPos": {
"x": 8,
"y": 1,
"w": 4,
"h": 4
},
"id": 4,
"targets": [
{
"expr": "count(scaleway_pool_size)",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "purple",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Block Volumes",
"gridPos": {
"x": 12,
"y": 1,
"w": 3,
"h": 4
},
"id": 5,
"targets": [
{
"expr": "scaleway_volumes_count{state=\"total\"}",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Attached",
"gridPos": {
"x": 15,
"y": 1,
"w": 3,
"h": 4
},
"id": 6,
"targets": [
{
"expr": "scaleway_volumes_count{state=\"attached\"}",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Detached (waste)",
"gridPos": {
"x": 18,
"y": 1,
"w": 3,
"h": 4
},
"id": 7,
"targets": [
{
"expr": "scaleway_volumes_count{state=\"detached\"}",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 5
},
{
"color": "red",
"value": 15
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "IPs",
"gridPos": {
"x": 21,
"y": 1,
"w": 3,
"h": 4
},
"id": 8,
"targets": [
{
"expr": "scaleway_ips_total",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Total Storage",
"gridPos": {
"x": 0,
"y": 5,
"w": 6,
"h": 4
},
"id": 9,
"targets": [
{
"expr": "scaleway_volumes_total_bytes",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
}
]
},
"unit": "decbytes",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Attached Storage",
"gridPos": {
"x": 6,
"y": 5,
"w": 6,
"h": 4
},
"id": 10,
"targets": [
{
"expr": "scaleway_volumes_attached_bytes",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "decbytes",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Detached (wasted)",
"gridPos": {
"x": 12,
"y": 5,
"w": 6,
"h": 4
},
"id": 11,
"targets": [
{
"expr": "scaleway_volumes_detached_bytes",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 200000000000.0
},
{
"color": "red",
"value": 500000000000.0
}
]
},
"unit": "decbytes",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "MTD Cost",
"gridPos": {
"x": 18,
"y": 5,
"w": 6,
"h": 4
},
"id": 12,
"targets": [
{
"expr": "scaleway_billing_total_eur",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "yellow",
"value": 500
},
{
"color": "red",
"value": 1000
}
]
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"collapsed": false,
"gridPos": {
"x": 0,
"y": 9,
"w": 24,
"h": 1
},
"id": 13,
"panels": [],
"title": "Billing (Scaleway API \u2014 Month-to-Date)",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Compute",
"gridPos": {
"x": 0,
"y": 10,
"w": 4,
"h": 4
},
"id": 14,
"targets": [
{
"expr": "scaleway_billing_consumption_eur{category=\"compute\"}",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#FF9830",
"value": null
}
]
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Storage",
"gridPos": {
"x": 4,
"y": 10,
"w": 4,
"h": 4
},
"id": 15,
"targets": [
{
"expr": "scaleway_billing_consumption_eur{category=\"storage\"}",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#73BF69",
"value": null
}
]
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Network",
"gridPos": {
"x": 8,
"y": 10,
"w": 4,
"h": 4
},
"id": 16,
"targets": [
{
"expr": "scaleway_billing_consumption_eur{category=\"network\"}",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#5794F2",
"value": null
}
]
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Registry",
"gridPos": {
"x": 12,
"y": 10,
"w": 4,
"h": 4
},
"id": 17,
"targets": [
{
"expr": "scaleway_billing_consumption_eur{category=\"container_registry\"}",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#B877D9",
"value": null
}
]
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Kubernetes",
"gridPos": {
"x": 16,
"y": 10,
"w": 4,
"h": 4
},
"id": 18,
"targets": [
{
"expr": "scaleway_billing_consumption_eur{category=\"containers\"}",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#FF6E76",
"value": null
}
]
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Other",
"gridPos": {
"x": 20,
"y": 10,
"w": 4,
"h": 4
},
"id": 19,
"targets": [
{
"expr": "sum(scaleway_billing_consumption_eur) - sum(scaleway_billing_consumption_eur{category=~\"compute|storage|network|container_registry|containers\"})",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "semi-dark-yellow",
"value": null
}
]
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "table",
"title": "Product Cost Breakdown",
"gridPos": {
"x": 0,
"y": 14,
"w": 12,
"h": 10
},
"id": 20,
"targets": [
{
"expr": "scaleway_billing_product_eur",
"legendFormat": "{{category}} / {{product}}",
"refId": "A",
"instant": true,
"format": "table"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"mappings": []
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "unit",
"value": "currencyEUR"
},
{
"id": "custom.width",
"value": 120
}
]
},
{
"matcher": {
"id": "byName",
"options": "Time"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "__name__"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "instance"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "job"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
}
]
},
"transformations": [
{
"id": "sortBy",
"options": {
"sort": [
{
"field": "Value",
"desc": true
}
]
}
}
],
"options": {
"showHeader": true,
"sortBy": [],
"cellHeight": "sm"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "piechart",
"title": "Cost by Category",
"gridPos": {
"x": 12,
"y": 14,
"w": 12,
"h": 10
},
"id": 21,
"targets": [
{
"expr": "scaleway_billing_consumption_eur",
"legendFormat": "{{category}}",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"pieType": "donut",
"legend": {
"displayMode": "table",
"placement": "right",
"values": [
"value",
"percent"
]
},
"tooltip": {
"mode": "single"
}
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "timeseries",
"title": "MTD Cost Over Time",
"gridPos": {
"x": 0,
"y": 24,
"w": 12,
"h": 7
},
"id": 22,
"targets": [
{
"expr": "scaleway_billing_total_eur",
"legendFormat": "Total MTD",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"pointSize": 5,
"showPoints": "never",
"stacking": {
"mode": "none"
}
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "timeseries",
"title": "Category Cost Over Time",
"gridPos": {
"x": 12,
"y": 24,
"w": 12,
"h": 7
},
"id": 23,
"targets": [
{
"expr": "scaleway_billing_consumption_eur",
"legendFormat": "{{category}}",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 20,
"pointSize": 5,
"showPoints": "never",
"stacking": {
"mode": "normal"
}
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
}
},
{
"collapsed": false,
"gridPos": {
"x": 0,
"y": 31,
"w": 24,
"h": 1
},
"id": 24,
"panels": [],
"title": "Compute Instances",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "table",
"title": "All Instances",
"gridPos": {
"x": 0,
"y": 32,
"w": 24,
"h": 8
},
"id": 25,
"targets": [
{
"expr": "scaleway_instance_info",
"legendFormat": "",
"refId": "A",
"instant": true,
"format": "table"
},
{
"expr": "scaleway_instance_running",
"legendFormat": "",
"refId": "B",
"instant": true,
"format": "table"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"mappings": []
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "state"
},
"properties": [
{
"id": "custom.cellOptions",
"value": {
"type": "color-text"
}
},
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"running": {
"color": "green",
"text": "RUNNING"
},
"stopped": {
"color": "red",
"text": "STOPPED"
},
"stopping": {
"color": "orange",
"text": "STOPPING"
}
}
}
]
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #A"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #B"
},
"properties": [
{
"id": "displayName",
"value": "Running"
},
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"1": {
"text": "YES",
"color": "green"
},
"0": {
"text": "NO",
"color": "red"
}
}
}
]
},
{
"id": "custom.cellOptions",
"value": {
"type": "color-text"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Time"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "__name__"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "instance"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "job"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "name"
},
"properties": [
{
"id": "displayName",
"value": "Instance Name"
},
{
"id": "custom.width",
"value": 280
}
]
},
{
"matcher": {
"id": "byName",
"options": "type"
},
"properties": [
{
"id": "displayName",
"value": "Instance Type"
},
{
"id": "custom.width",
"value": 180
}
]
},
{
"matcher": {
"id": "byName",
"options": "pool"
},
"properties": [
{
"id": "displayName",
"value": "K8s Pool"
},
{
"id": "custom.width",
"value": 150
}
]
}
]
},
"transformations": [
{
"id": "merge",
"options": {}
}
],
"options": {
"showHeader": true,
"sortBy": [],
"cellHeight": "sm"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "bargauge",
"title": "Instances by Type",
"gridPos": {
"x": 0,
"y": 40,
"w": 24,
"h": 3
},
"id": 26,
"targets": [
{
"expr": "scaleway_instances_total",
"legendFormat": "{{type}}",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"orientation": "horizontal",
"displayMode": "gradient",
"showUnfilled": true
}
},
{
"collapsed": false,
"gridPos": {
"x": 0,
"y": 44,
"w": 24,
"h": 1
},
"id": 27,
"panels": [],
"title": "Kubernetes Node Pools",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "table",
"title": "All Pools (Autoscaler Config)",
"gridPos": {
"x": 0,
"y": 45,
"w": 24,
"h": 8
},
"id": 28,
"targets": [
{
"expr": "scaleway_pool_size",
"legendFormat": "",
"refId": "A",
"instant": true,
"format": "table"
},
{
"expr": "scaleway_pool_min",
"legendFormat": "",
"refId": "B",
"instant": true,
"format": "table"
},
{
"expr": "scaleway_pool_max",
"legendFormat": "",
"refId": "C",
"instant": true,
"format": "table"
},
{
"expr": "scaleway_pool_autoscaling",
"legendFormat": "",
"refId": "D",
"instant": true,
"format": "table"
},
{
"expr": "scaleway_pool_root_volume_bytes",
"legendFormat": "",
"refId": "E",
"instant": true,
"format": "table"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"mappings": []
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Time"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "__name__"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "instance"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "job"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "pool"
},
"properties": [
{
"id": "displayName",
"value": "Pool Name"
},
{
"id": "custom.width",
"value": 200
}
]
},
{
"matcher": {
"id": "byName",
"options": "type"
},
"properties": [
{
"id": "displayName",
"value": "Node Type"
},
{
"id": "custom.width",
"value": 180
}
]
},
{
"matcher": {
"id": "byName",
"options": "status"
},
"properties": [
{
"id": "displayName",
"value": "Status"
},
{
"id": "custom.cellOptions",
"value": {
"type": "color-text"
}
},
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"ready": {
"color": "green",
"text": "READY"
},
"scaling": {
"color": "yellow",
"text": "SCALING"
},
"warning": {
"color": "orange",
"text": "WARNING"
}
}
}
]
},
{
"id": "custom.width",
"value": 100
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #A"
},
"properties": [
{
"id": "displayName",
"value": "Current Size"
},
{
"id": "custom.width",
"value": 110
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #B"
},
"properties": [
{
"id": "displayName",
"value": "Min"
},
{
"id": "custom.width",
"value": 60
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #C"
},
"properties": [
{
"id": "displayName",
"value": "Max"
},
{
"id": "custom.width",
"value": 60
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #D"
},
"properties": [
{
"id": "displayName",
"value": "Autoscaling"
},
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"1": {
"text": "ON",
"color": "green"
},
"0": {
"text": "OFF",
"color": "red"
}
}
}
]
},
{
"id": "custom.cellOptions",
"value": {
"type": "color-text"
}
},
{
"id": "custom.width",
"value": 110
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #E"
},
"properties": [
{
"id": "displayName",
"value": "Root Volume"
},
{
"id": "unit",
"value": "decbytes"
},
{
"id": "custom.width",
"value": 120
}
]
}
]
},
"transformations": [
{
"id": "merge",
"options": {}
}
],
"options": {
"showHeader": true,
"sortBy": [],
"cellHeight": "sm"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "timeseries",
"title": "Pool Sizes Over Time",
"gridPos": {
"x": 0,
"y": 53,
"w": 24,
"h": 7
},
"id": 29,
"targets": [
{
"expr": "scaleway_pool_size",
"legendFormat": "{{pool}} ({{type}})",
"refId": "A"
},
{
"expr": "scaleway_pool_min",
"legendFormat": "{{pool}} min",
"refId": "B"
},
{
"expr": "scaleway_pool_max",
"legendFormat": "{{pool}} max",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"pointSize": 5,
"showPoints": "never",
"stacking": {
"mode": "none"
}
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
}
},
{
"collapsed": false,
"gridPos": {
"x": 0,
"y": 61,
"w": 24,
"h": 1
},
"id": 30,
"panels": [],
"title": "Block Storage",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "table",
"title": "All Block Volumes",
"gridPos": {
"x": 0,
"y": 62,
"w": 24,
"h": 12
},
"id": 31,
"targets": [
{
"expr": "scaleway_volume_size_bytes",
"legendFormat": "",
"refId": "A",
"instant": true,
"format": "table"
},
{
"expr": "scaleway_volume_attached",
"legendFormat": "",
"refId": "B",
"instant": true,
"format": "table"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"mappings": []
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Time"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "__name__"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "instance"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "job"
},
"properties": [
{
"id": "custom.hidden",
"value": true
}
]
},
{
"matcher": {
"id": "byName",
"options": "name"
},
"properties": [
{
"id": "displayName",
"value": "Volume Name"
},
{
"id": "custom.width",
"value": 400
}
]
},
{
"matcher": {
"id": "byName",
"options": "state"
},
"properties": [
{
"id": "displayName",
"value": "State"
},
{
"id": "custom.cellOptions",
"value": {
"type": "color-text"
}
},
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"in_use": {
"color": "green",
"text": "IN USE"
},
"available": {
"color": "red",
"text": "AVAILABLE (detached)"
}
}
}
]
},
{
"id": "custom.width",
"value": 200
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #A"
},
"properties": [
{
"id": "displayName",
"value": "Size"
},
{
"id": "unit",
"value": "decbytes"
},
{
"id": "custom.width",
"value": 120
}
]
},
{
"matcher": {
"id": "byName",
"options": "Value #B"
},
"properties": [
{
"id": "displayName",
"value": "Attached"
},
{
"id": "mappings",
"value": [
{
"type": "value",
"options": {
"1": {
"text": "YES",
"color": "green"
},
"0": {
"text": "NO \u2014 WASTED",
"color": "red"
}
}
}
]
},
{
"id": "custom.cellOptions",
"value": {
"type": "color-text"
}
},
{
"id": "custom.width",
"value": 140
}
]
}
]
},
"transformations": [
{
"id": "merge",
"options": {}
},
{
"id": "sortBy",
"options": {
"sort": [
{
"field": "Value #B",
"desc": false
}
]
}
}
],
"options": {
"showHeader": true,
"sortBy": [],
"cellHeight": "sm"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "timeseries",
"title": "Storage Over Time",
"gridPos": {
"x": 0,
"y": 74,
"w": 12,
"h": 7
},
"id": 32,
"targets": [
{
"expr": "scaleway_volumes_total_bytes",
"legendFormat": "Total",
"refId": "A"
},
{
"expr": "scaleway_volumes_attached_bytes",
"legendFormat": "Attached",
"refId": "B"
},
{
"expr": "scaleway_volumes_detached_bytes",
"legendFormat": "Detached (waste)",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"pointSize": 5,
"showPoints": "never",
"stacking": {
"mode": "none"
}
},
"unit": "decbytes",
"mappings": []
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "gauge",
"title": "Storage Waste %",
"gridPos": {
"x": 12,
"y": 74,
"w": 6,
"h": 7
},
"id": 33,
"targets": [
{
"expr": "scaleway_volumes_detached_bytes / scaleway_volumes_total_bytes",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 0.3
},
{
"color": "red",
"value": 0.5
}
]
},
"unit": "percentunit",
"min": 0,
"max": 1,
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"showThresholdLabels": false,
"showThresholdMarkers": true
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Volumes Count",
"gridPos": {
"x": 18,
"y": 74,
"w": 6,
"h": 7
},
"id": 34,
"targets": [
{
"expr": "scaleway_volumes_count",
"legendFormat": "{{state}}",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "value_and_name",
"justifyMode": "auto"
}
},
{
"collapsed": false,
"gridPos": {
"x": 0,
"y": 82,
"w": 24,
"h": 1
},
"id": 35,
"panels": [],
"title": "Network & IPs",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "stat",
"title": "Total IPv4 IPs",
"gridPos": {
"x": 0,
"y": 83,
"w": 6,
"h": 4
},
"id": 36,
"targets": [
{
"expr": "scaleway_ips_total",
"legendFormat": "",
"refId": "A",
"instant": true
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
}
]
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"reduceOptions": {
"calcs": [
"lastNotNull"
]
},
"colorMode": "value",
"graphMode": "none",
"textMode": "auto",
"justifyMode": "auto"
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "timeseries",
"title": "IP Count Over Time",
"gridPos": {
"x": 6,
"y": 83,
"w": 18,
"h": 4
},
"id": 37,
"targets": [
{
"expr": "scaleway_ips_total",
"legendFormat": "IPv4 IPs",
"refId": "A"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 10,
"pointSize": 5,
"showPoints": "never",
"stacking": {
"mode": "none"
}
},
"unit": "short",
"mappings": []
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
}
},
{
"collapsed": false,
"gridPos": {
"x": 0,
"y": 87,
"w": 24,
"h": 1
},
"id": 38,
"panels": [],
"title": "Projected Costs (Node-Based Estimates)",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "timeseries",
"title": "Estimated Hourly Cost",
"gridPos": {
"x": 0,
"y": 88,
"w": 12,
"h": 7
},
"id": 39,
"targets": [
{
"expr": "count(kube_node_labels{label_k8s_scaleway_com_pool_name=\"platform\"}) * 0.569",
"legendFormat": "Platform (DEV1-L)",
"refId": "A"
},
{
"expr": "count(kube_node_labels{label_k8s_scaleway_com_pool_name=\"gpu\"}) * 5.08",
"legendFormat": "GPU (H100)",
"refId": "B"
},
{
"expr": "count(kube_node_labels{label_k8s_scaleway_com_pool_name=~\"ci-.*\"}) * 0.569",
"legendFormat": "CI Nodes",
"refId": "C"
},
{
"expr": "count(kube_node_labels{label_k8s_scaleway_com_pool_name=\"infra\"}) * 0.142",
"legendFormat": "Infra (DEV1-M)",
"refId": "D"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 20,
"pointSize": 5,
"showPoints": "never",
"stacking": {
"mode": "normal"
}
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
}
},
{
"datasource": {
"type": "prometheus",
"uid": "${DS_PROMETHEUS}"
},
"type": "timeseries",
"title": "Estimated Monthly Cost",
"gridPos": {
"x": 12,
"y": 88,
"w": 12,
"h": 7
},
"id": 40,
"targets": [
{
"expr": "count(kube_node_labels{label_k8s_scaleway_com_pool_name=\"platform\"}) * 0.569 * 730",
"legendFormat": "Platform",
"refId": "A"
},
{
"expr": "count(kube_node_labels{label_k8s_scaleway_com_pool_name=\"gpu\"}) * 5.08 * 730",
"legendFormat": "GPU (H100)",
"refId": "B"
},
{
"expr": "count(kube_node_labels{label_k8s_scaleway_com_pool_name=~\"ci-.*\"}) * 0.569 * 730",
"legendFormat": "CI Nodes",
"refId": "C"
}
],
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"drawStyle": "line",
"lineInterpolation": "smooth",
"lineWidth": 2,
"fillOpacity": 20,
"pointSize": 5,
"showPoints": "never",
"stacking": {
"mode": "normal"
}
},
"unit": "currencyEUR",
"mappings": []
},
"overrides": []
},
"options": {
"legend": {
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "multi",
"sort": "desc"
}
}
}
],
"schemaVersion": 39,
"tags": [
"platform",
"scaleway",
"costs",
"infrastructure"
],
"templating": {
"list": []
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {},
"timezone": "browser",
"title": "Scaleway Infrastructure Cockpit",
"uid": "scaleway-cockpit",
"version": 1,
"__inputs": [
{
"name": "DS_PROMETHEUS",
"type": "datasource",
"pluginId": "prometheus"
}
]
}