what you do instead is have an extra metric entirely per device. it's easier to have 1000 extra metrics than an extra label worth of cardinality on 1,000,000 metrics for every single update.
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.