Instead of having a single provider with a built-in metrics scraper (i.e AWS with CloudWatch, On-Prem with Kepler, GCP with monitoring).
It may be beneficial to have those abilities split, so that we have a source of Provider (AWS, GCP, on-prem). This will be used to get the resource information (VM, pod, container, etc), and region, zone, to associate with factor information (carbon intensity, PUE, and embodied).
Then also have the "metrics scraper" (CloudWatch, Kepler, RAPL, etc.) that would collect the metric information for whatever the resource is, and be used for getting energy consumption.
That way, we can have more combinations and options for users. For example, Kepler installed in AKS, or GCE. The provider information of the VMs can be scraped with the AWS/GCE client and then the metrics can be collected at which ever resource level is desired.