mprobe-vis 0.2.0

A library for visualizing MongoDB FTDC metrics
Documentation
use mprobe_diagnostics::metrics::Measurement;
use mprobe_diagnostics::metrics::MetricValue;

use serde::Serialize;

#[derive(Debug, Default, Serialize)]
#[serde(rename_all = "lowercase")]
#[allow(dead_code)]
pub enum AxisType {
    #[default]
    Linear,
    Date,
    Log,
    Category,
    Multicategory,
}

impl AxisType {
    pub fn yaxis(measurements: &[Measurement]) -> AxisType {
        if let Some(first_measurement) = measurements.first() {
            match first_measurement.value {
                MetricValue::DateTime(_) => AxisType::Date,
                MetricValue::UInt32(_)
                | MetricValue::Int32(_)
                | MetricValue::Int64(_)
                | MetricValue::Float64(_)
                | MetricValue::Boolean(_) => AxisType::Linear,
            }
        } else {
            AxisType::Linear
        }
    }
}