Open
Description
The output or encode()
is non-deterministic when creating multiple metrics of the same type.
So basically:
pub fn repro() -> String {
let mut registry = <prometheus_client::registry::Registry>::default();
let gauge = Family::<MyLabels, Gauge<f64, AtomicU64>>::default();
registry.register("test", "help", gauge.clone());
gauge
.get_or_create(&MyLabels {
label: "one".into(),
})
.set(0.1);
gauge
.get_or_create(&MyLabels {
label: "two".into(),
})
.set(0.2);
let mut buffer = String::new();
encode(&mut buffer, ®istry).unwrap();
buffer
}
This will sometimes return this:
HELP test help.
# TYPE test gauge
test{label="one"} 0.1
test{label="two"} 0.2
# EOF
And sometimes this:
HELP test help.
# TYPE test gauge
test{label="two"} 0.2
test{label="one"} 0.1
# EOF
I would expect the metrics to be somehow sorted deterministically.
Metadata
Metadata
Assignees
Labels
No labels