I had a similar requirement (for the Go build system): I wanted to know when the planned or available processor or memory was> 1, and scale the nodes when it was true (or, more precisely, when it was ~. 8). There is no built-in metric, but as you suggest, you can do this with a custom metric.
All this was done in Go, but this will give you the basic idea:
The main conclusion of IMO is that you should iterate over each block in the cluster to determine how much power is consumed, and then iterate over each node in the cluster to determine how many possibilities are available. Then you just need to point your autoscanner to the user metric.
: , , ( , ). , , , , , CPU. , , , , , .