{
  "uid": "bhyve-freebsd",
  "title": "FreeBSD bhyve VMs",
  "timezone": "browser",
  "schemaVersion": 38,
  "version": 1,
  "refresh": "10s",
  "tags": ["freebsd", "bhyve", "zfs"],
  "templating": {
    "list": [
      {
        "name": "vm",
        "type": "query",
        "datasource": "prometheus",
        "query": "label_values(bhyve_vm_cpu_percent, vm)",
        "refresh": 1,
        "includeAll": true,
        "multi": true,
        "current": {
          "selected": false,
          "text": "All",
          "value": "$__all"
        }
      }
    ]
  },
  "panels": [
    {
      "type": "timeseries",
      "title": "VM CPU usage (%)",
      "gridPos": { "x": 0, "y": 0, "w": 12, "h": 8 },
      "targets": [
        {
          "expr": "bhyve_vm_cpu_percent{vm=~\"$vm\"}",
          "legendFormat": "{{vm}}"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "percent",
          "min": 0
        }
      }
    },
    {
      "type": "timeseries",
      "title": "VM Memory (RSS)",
      "gridPos": { "x": 12, "y": 0, "w": 12, "h": 8 },
      "targets": [
        {
          "expr": "bhyve_vm_rss_bytes{vm=~\"$vm\"} / 1024 / 1024",
          "legendFormat": "{{vm}}"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "bytes",
          "decimals": 0
        }
      }
    },
    {
      "type": "timeseries",
      "title": "Disk Read Throughput",
      "gridPos": { "x": 0, "y": 8, "w": 12, "h": 8 },
      "targets": [
        {
          "expr": "sum by (vm) (rate(bhyve_vm_disk_read_bytes_total{vm=~\"$vm\"}[1m]))",
          "legendFormat": "{{vm}}"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "Bps"
        }
      }
    },
    {
      "type": "timeseries",
      "title": "Disk Write Throughput",
      "gridPos": { "x": 12, "y": 8, "w": 12, "h": 8 },
      "targets": [
        {
          "expr": "sum by (vm) (rate(bhyve_vm_disk_write_bytes_total{vm=~\"$vm\"}[1m]))",
          "legendFormat": "{{vm}}"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "Bps"
        }
      }
    },
    {
      "type": "timeseries",
      "title": "Disk Read IOPS",
      "gridPos": { "x": 0, "y": 16, "w": 12, "h": 8 },
      "targets": [
        {
          "expr": "sum by (vm) (rate(bhyve_vm_disk_read_ops_total{vm=~\"$vm\"}[1m]))",
          "legendFormat": "{{vm}}"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "ops"
        }
      }
    },
    {
      "type": "timeseries",
      "title": "Disk Write IOPS",
      "gridPos": { "x": 12, "y": 16, "w": 12, "h": 8 },
      "targets": [
        {
          "expr": "sum by (vm) (rate(bhyve_vm_disk_write_ops_total{vm=~\"$vm\"}[1m]))",
          "legendFormat": "{{vm}}"
        }
      ],
      "fieldConfig": {
        "defaults": {
          "unit": "ops"
        }
      }
    },
    {
      "type": "table",
      "title": "VM Overview",
      "gridPos": { "x": 0, "y": 24, "w": 24, "h": 8 },
      "targets": [
        {
          "expr": "bhyve_vm_cpu_percent",
          "format": "table"
        }
      ],
      "transformations": [
        {
          "id": "organize",
          "options": {
            "renameByName": {
              "Value": "CPU %"
            }
          }
        }
      ]
    }
  ]
}
