{
  "costOverview": {
    "nodegroupCount": 5,
    "nodeCount": 10,
    "nodeCost": 880,
    "nodegroupUnits": [
      {
        "name": "",
        "instanceType": "",
        "unitPrice": 0,
        "count": 1,
        "cost": 0
      },
      {
        "name": "edge",
        "instanceType": "t3.small",
        "unitPrice": 0,
        "count": 2,
        "cost": 0
      },
      {
        "name": "vmstorage",
        "instanceType": "r6a.2xlarge",
        "unitPrice": 160,
        "count": 3,
        "cost": 480
      },
      {
        "name": "workers",
        "instanceType": "m6a.xlarge",
        "unitPrice": 100,
        "count": 4,
        "cost": 400
      }
    ],
    "pvcCount": 3,
    "pvcTotalGib": 450,
    "pvcCost": 36,
    "pvcRate": 0.08,
    "total": 916
  },
  "vmstoragePvcs": {
    "pvcs": [
      {
        "name": "vmstorage-db-vmstorage-vmcluster-0",
        "namespace": "monitoring",
        "sizeGib": 150,
        "cost": 12
      },
      {
        "name": "vmstorage-db-vmstorage-vmcluster-1",
        "namespace": "monitoring",
        "sizeGib": 150,
        "cost": 12
      },
      {
        "name": "vmstorage-db-vmstorage-vmcluster-2",
        "namespace": "monitoring",
        "sizeGib": 150,
        "cost": 12
      }
    ],
    "pvcCount": 3,
    "totalSizeGib": 450,
    "totalCost": 36
  },
  "perNodeDistribution": [
    {
      "node": "node-e0",
      "nodegroup": "edge",
      "podCount": 1,
      "reqCpu": 0.2,
      "reqMemGib": 1,
      "allocatableCpu": 2,
      "allocatableMemGib": 2,
      "pctC": 10,
      "pctM": 50,
      "flagC": false,
      "flagM": false,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-e1",
      "nodegroup": "edge",
      "podCount": 0,
      "reqCpu": 0,
      "reqMemGib": 0,
      "allocatableCpu": 2,
      "allocatableMemGib": 2,
      "pctC": 0,
      "pctM": 0,
      "flagC": false,
      "flagM": false,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-orphan",
      "nodegroup": "",
      "podCount": 0,
      "reqCpu": 0,
      "reqMemGib": 0,
      "allocatableCpu": 1,
      "allocatableMemGib": 4,
      "pctC": 0,
      "pctM": 0,
      "flagC": false,
      "flagM": false,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-vms0",
      "nodegroup": "vmstorage",
      "podCount": 1,
      "reqCpu": 2,
      "reqMemGib": 30,
      "allocatableCpu": 8,
      "allocatableMemGib": 60,
      "pctC": 25,
      "pctM": 50,
      "flagC": false,
      "flagM": false,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-vms1",
      "nodegroup": "vmstorage",
      "podCount": 1,
      "reqCpu": 2,
      "reqMemGib": 30,
      "allocatableCpu": 8,
      "allocatableMemGib": 60,
      "pctC": 25,
      "pctM": 50,
      "flagC": false,
      "flagM": false,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-vms2",
      "nodegroup": "vmstorage",
      "podCount": 1,
      "reqCpu": 2,
      "reqMemGib": 30,
      "allocatableCpu": 8,
      "allocatableMemGib": 60,
      "pctC": 25,
      "pctM": 50,
      "flagC": false,
      "flagM": false,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-w1a",
      "nodegroup": "workers",
      "podCount": 5,
      "reqCpu": 1.85,
      "reqMemGib": 12,
      "allocatableCpu": 4,
      "allocatableMemGib": 16,
      "pctC": 46.25,
      "pctM": 75,
      "flagC": false,
      "flagM": false,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-w1b",
      "nodegroup": "workers",
      "podCount": 5,
      "reqCpu": 1.85,
      "reqMemGib": 14,
      "allocatableCpu": 4,
      "allocatableMemGib": 16,
      "pctC": 46.25,
      "pctM": 87.5,
      "flagC": false,
      "flagM": true,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-w1c",
      "nodegroup": "workers",
      "podCount": 9,
      "reqCpu": 2.7,
      "reqMemGib": 17.75,
      "allocatableCpu": 4,
      "allocatableMemGib": 16,
      "pctC": 67.5,
      "pctM": 110.9375,
      "flagC": false,
      "flagM": true,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    },
    {
      "node": "node-w1d",
      "nodegroup": "workers",
      "podCount": 3,
      "reqCpu": 1.75,
      "reqMemGib": 16,
      "allocatableCpu": 4,
      "allocatableMemGib": 16,
      "pctC": 43.75,
      "pctM": 100,
      "flagC": false,
      "flagM": true,
      "maxCpuCores": null,
      "maxMemGib": null,
      "maxPctC": null,
      "maxPctM": null
    }
  ],
  "reductionOpportunities": {
    "nodegroups": [
      {
        "ngName": "",
        "instanceType": "",
        "capacityType": "",
        "count": 1,
        "allocCpu": 1,
        "allocMem": 4,
        "curCpu": 0,
        "curMem": 0,
        "newCpu": 0,
        "newMem": 0,
        "dsCpuTotal": 0.2,
        "dsMemTotal": 0.625,
        "netAllocCpu": 0.8,
        "netAllocMem": 3.375,
        "newUtilCpu": 0,
        "newUtilMem": 0,
        "perNodeAllocCpu": 1,
        "perNodeAllocMem": 4,
        "freeCpu": 0.8,
        "freeMem": 3.375,
        "cpuRm": 0,
        "memRm": 0,
        "ratioRemove": 0,
        "couldRemove": 0,
        "estimateSource": "ratio",
        "reductionCandidate": false,
        "downsizeCandidate": true
      },
      {
        "ngName": "edge",
        "instanceType": "t3.small",
        "capacityType": "SPOT",
        "count": 2,
        "allocCpu": 4,
        "allocMem": 4,
        "curCpu": 0.2,
        "curMem": 1,
        "newCpu": 0.15,
        "newMem": 1,
        "dsCpuTotal": 0.4,
        "dsMemTotal": 1.25,
        "netAllocCpu": 3.6,
        "netAllocMem": 2.75,
        "newUtilCpu": 4.166666666666666,
        "newUtilMem": 36.36363636363637,
        "perNodeAllocCpu": 2,
        "perNodeAllocMem": 2,
        "freeCpu": 3.45,
        "freeMem": 1.75,
        "cpuRm": 1,
        "memRm": 0,
        "ratioRemove": 0,
        "couldRemove": 0,
        "estimateSource": "ratio",
        "reductionCandidate": false,
        "downsizeCandidate": true
      },
      {
        "ngName": "vmstorage",
        "instanceType": "r6a.2xlarge",
        "capacityType": "ON_DEMAND",
        "count": 3,
        "allocCpu": 24,
        "allocMem": 180,
        "curCpu": 6,
        "curMem": 90,
        "newCpu": 2.25,
        "newMem": 96,
        "dsCpuTotal": 0.6000000000000001,
        "dsMemTotal": 1.875,
        "netAllocCpu": 23.4,
        "netAllocMem": 178.125,
        "newUtilCpu": 9.615384615384617,
        "newUtilMem": 53.89473684210526,
        "perNodeAllocCpu": 8,
        "perNodeAllocMem": 60,
        "freeCpu": 21.15,
        "freeMem": 82.125,
        "cpuRm": 2,
        "memRm": 1,
        "ratioRemove": 1,
        "couldRemove": 1,
        "estimateSource": "ratio",
        "reductionCandidate": true,
        "downsizeCandidate": false
      },
      {
        "ngName": "workers",
        "instanceType": "m6a.xlarge",
        "capacityType": "ON_DEMAND",
        "count": 4,
        "allocCpu": 16,
        "allocMem": 64,
        "curCpu": 16.299999999999997,
        "curMem": 119.5,
        "newCpu": 7.2,
        "newMem": 85.5,
        "dsCpuTotal": 0.8,
        "dsMemTotal": 2.5,
        "netAllocCpu": 15.2,
        "netAllocMem": 61.5,
        "newUtilCpu": 47.36842105263158,
        "newUtilMem": 139.02439024390242,
        "perNodeAllocCpu": 4,
        "perNodeAllocMem": 16,
        "freeCpu": 8,
        "freeMem": -24,
        "cpuRm": 2,
        "memRm": -2,
        "ratioRemove": 0,
        "couldRemove": 0,
        "estimateSource": "ratio",
        "reductionCandidate": false,
        "downsizeCandidate": false
      }
    ],
    "reductionCandidates": [
      {
        "ngName": "vmstorage",
        "instanceType": "r6a.2xlarge",
        "capacityType": "ON_DEMAND",
        "count": 3,
        "allocCpu": 24,
        "allocMem": 180,
        "curCpu": 6,
        "curMem": 90,
        "newCpu": 2.25,
        "newMem": 96,
        "dsCpuTotal": 0.6000000000000001,
        "dsMemTotal": 1.875,
        "netAllocCpu": 23.4,
        "netAllocMem": 178.125,
        "newUtilCpu": 9.615384615384617,
        "newUtilMem": 53.89473684210526,
        "perNodeAllocCpu": 8,
        "perNodeAllocMem": 60,
        "freeCpu": 21.15,
        "freeMem": 82.125,
        "cpuRm": 2,
        "memRm": 1,
        "ratioRemove": 1,
        "couldRemove": 1,
        "estimateSource": "ratio",
        "reductionCandidate": true,
        "downsizeCandidate": false
      }
    ],
    "downsizeCandidates": [
      {
        "ngName": "",
        "instanceType": "",
        "capacityType": "",
        "count": 1,
        "allocCpu": 1,
        "allocMem": 4,
        "curCpu": 0,
        "curMem": 0,
        "newCpu": 0,
        "newMem": 0,
        "dsCpuTotal": 0.2,
        "dsMemTotal": 0.625,
        "netAllocCpu": 0.8,
        "netAllocMem": 3.375,
        "newUtilCpu": 0,
        "newUtilMem": 0,
        "perNodeAllocCpu": 1,
        "perNodeAllocMem": 4,
        "freeCpu": 0.8,
        "freeMem": 3.375,
        "cpuRm": 0,
        "memRm": 0,
        "ratioRemove": 0,
        "couldRemove": 0,
        "estimateSource": "ratio",
        "reductionCandidate": false,
        "downsizeCandidate": true
      },
      {
        "ngName": "edge",
        "instanceType": "t3.small",
        "capacityType": "SPOT",
        "count": 2,
        "allocCpu": 4,
        "allocMem": 4,
        "curCpu": 0.2,
        "curMem": 1,
        "newCpu": 0.15,
        "newMem": 1,
        "dsCpuTotal": 0.4,
        "dsMemTotal": 1.25,
        "netAllocCpu": 3.6,
        "netAllocMem": 2.75,
        "newUtilCpu": 4.166666666666666,
        "newUtilMem": 36.36363636363637,
        "perNodeAllocCpu": 2,
        "perNodeAllocMem": 2,
        "freeCpu": 3.45,
        "freeMem": 1.75,
        "cpuRm": 1,
        "memRm": 0,
        "ratioRemove": 0,
        "couldRemove": 0,
        "estimateSource": "ratio",
        "reductionCandidate": false,
        "downsizeCandidate": true
      }
    ],
    "actionNames": [
      "",
      "edge",
      "vmstorage"
    ]
  }
}
