You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note that gauge::Atomic is also not implemented for u64, but only i64. This is due to the OpenMetrics Protobuf definition requiring a value to be either i64 or f64, not u64:
In other words, say that you provide a u64::MAX to Gauge::set, what should prometheus-client do? It can't store it in an i64. It can't store it in an f64 without loss.
In other words, say that you provide a u64::MAX to Gauge::set, what should prometheus-client do? It can't store it in an i64. It can't store it in an f64 without loss.
If it is encoded in text format, just write it out as text. There are no such restrictions in text format, any integer can be encoded there even if it does not fit 128 bits. If it is not supported by the receiver, it is the receiver problem.
If it is encoded in protobuf, also does not matter, could be not encoded or encoded as i64::MAX then.
I want to store
usize
in a gauge metric without conveting it to u64, butAtomic
trait is not implemented forusize
:https://docs.rs/prometheus-client/0.22.2/prometheus_client/metrics/gauge/trait.Atomic.html
Because of this
Gauge::<usize, AtomicUsize>::default()
. Is there any reason for not supporting it? Would it require too high MSRV?The text was updated successfully, but these errors were encountered: