fn new()

in src/admin.rs [307:367]


    fn new(
        connect_heatmap: Option<&Arc<AtomicHeatmap<u64, AtomicU64>>>,
        request_heatmap: Option<&Arc<AtomicHeatmap<u64, AtomicU64>>>,
    ) -> Self {
        let mut counters = HashMap::new();
        let mut gauges = HashMap::new();
        for metric in rustcommon_metrics::metrics().static_metrics() {
            let any = match metric.as_any() {
                Some(any) => any,
                None => continue,
            };

            if let Some(counter) = any.downcast_ref::<Counter>() {
                let entry = SnapshotEntry {
                    description: metric.description(),
                    value: counter.value(),
                };
                counters.insert(metric.name(), entry);
            } else if let Some(gauge) = any.downcast_ref::<Gauge>() {
                let entry = SnapshotEntry {
                    description: metric.description(),
                    value: gauge.value(),
                };
                gauges.insert(metric.name(), entry);
            }
        }

        let percentiles = vec![
            ("p25", 25.0),
            ("p50", 50.0),
            ("p75", 75.0),
            ("p90", 90.0),
            ("p99", 99.0),
            ("p999", 99.9),
            ("p9999", 99.99),
        ];

        let mut connect_percentiles = Vec::new();
        if let Some(heatmap) = connect_heatmap {
            for (label, value) in &percentiles {
                connect_percentiles
                    .push((label.to_string(), heatmap.percentile(*value).unwrap_or(0)));
            }
        }

        let mut request_percentiles = Vec::new();
        if let Some(heatmap) = request_heatmap {
            for (label, value) in &percentiles {
                request_percentiles
                    .push((label.to_string(), heatmap.percentile(*value).unwrap_or(0)));
            }
        }

        Self {
            counters,
            gauges,
            timestamp: Instant::now(),
            connect_percentiles,
            request_percentiles,
        }
    }