pub mod histogram;
pub use crate::histogram::Histogram;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub struct Connections {
pub current: i64,
pub total: u64,
pub opened: u64,
pub error: u64,
pub timeout: u64,
}
#[derive(Copy, Clone, Serialize, Deserialize)]
pub struct Requests {
pub total: u64,
pub ok: u64,
pub reconnect: u64,
pub unsupported: u64,
}
#[derive(Serialize, Deserialize)]
pub struct Responses {
pub total: u64,
pub ok: u64,
pub error: u64,
pub timeout: u64,
pub hit: u64,
pub miss: u64,
}
#[derive(Serialize, Deserialize)]
pub struct ClientStats {
pub connections: Connections,
pub requests: Requests,
pub responses: Responses,
pub response_latency: Histogram,
}
#[derive(Serialize, Deserialize)]
pub struct PubsubStats {
pub publishers: Publishers,
pub subscribers: Subscribers,
}
#[derive(Serialize, Deserialize)]
pub struct Publishers {
pub current: i64,
}
#[derive(Serialize, Deserialize)]
pub struct Subscribers {
pub current: i64,
}
#[derive(Serialize, Deserialize)]
pub struct JsonSnapshot {
pub window: u64,
pub elapsed: f64,
#[serde(skip_serializing_if = "Option::is_none")]
pub target_qps: Option<f64>,
pub client: ClientStats,
pub pubsub: PubsubStats,
}