Maybe you want to be able to detect data errors when updating firmware versions? But there should be a way to compute firmware version of a device with some kind of join, maybe device updates?
within prom:
cpu{hostname,metadata,cpu_socket} 5.0
cpu{hostname,metadata,cpu_socket} 6.0
cpu{hostname,metadata,cpu_socket} 5.0
cpu{hostname,metadata,cpu_socket} 4.0
version{hostname,version_number} 1.0
instead of baking version_number in everywhere. just as an example, then you can know "oh, hostname has version number" on a chart, or even do some inversions and say "count of version number" to find stragglers.