See this post. It links to a couple of posts with ideas about how to split an SNMP response that covers multiple devices.
As I said, you could average the CPU cores on a device, but you may not want to take averages across different core types. This averaging would require further ruby code, but depending on the final data structure you end up with you may be able to do it in elasticsearch when retrieving the data.