On C library, using nanopb,
org_eclipse_tahu_protobuf_Payload uses 72byte,
org_eclipse_tahu_protobuf_Payload_Metric 272 byte for each metric.
(for a 64bit target, on a 32bit target it will be slight smaller because of pointers size)
nanopb has the following option that could reduce the size of not used structures: (nanopb).type = FT_POINTER
On a small RAM microcontroller the overhead of each metric can be problematic.