знает. Каким образом реджистри прометеуса понимает, что я меняю переменную ? В примере ниже, например, в бокс засовывается метрика и там же клонится. Но как оно понимает, что я другую переменную поменял ? Магия внутреннего атомик-трейта ?
Пример:
pub fn test_metrics() {
let default_registry = prometheus::default_registry();
let gauge_metric = Gauge::new("my_metric", "something").unwrap();
default_registry
.register(Box::new(gauge_metric.clone()))
.unwrap();
gauge_metric.set(100500.0);
let mut buffer = Vec::new();
let encoder = prometheus::TextEncoder::new();
encoder.encode(&prometheus::gather(), &mut buffer).unwrap();
println!("{}", String::from_utf8(buffer.clone()).unwrap());
}
Посмотри, как реализован Gauge внутри, и станет понятно, есть там Arc/Rc или нет
А, всё. Вижу. Там arc используется. Спасибо !
Обсуждают сегодня