rusty_vault 0.2.1

RustyVault is a powerful identity-based secrets management software, providing features such as cryptographic key management, encryption as a service, public key cryptography, certificates management, identity credentials management and so forth. RustyVault's RESTful API is designed to be fully compatible with Hashicorp Vault.
Documentation
//! `MetricManager` holds the Prometheus registry and metrics.
use crate::metrics::http_metrics::HttpMetrics;
use crate::metrics::system_metrics::SystemMetrics;
use prometheus_client::registry::Registry;
use std::sync::{Arc, Mutex};

#[derive(Clone)]
pub struct MetricsManager {
    pub registry: Arc<Mutex<Registry>>,
    pub system_metrics: Arc<SystemMetrics>,
    pub http_metrics: Arc<HttpMetrics>,
}

impl MetricsManager {
    pub fn new(collection_interval: u64) -> Self {
        let registry = Arc::new(Mutex::new(Registry::default()));
        let system_metrics = Arc::new(SystemMetrics::new(&mut registry.lock().unwrap(), collection_interval));
        let http_metrics = Arc::new(HttpMetrics::new(&mut registry.lock().unwrap()));
        MetricsManager { registry, system_metrics, http_metrics }
    }
}