Skip to main content

nimbuspulse_client/types/
system_resources.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
4pub struct PrometheusSeries {
5    pub values: Vec<(f64, String)>,
6}
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
9pub struct ResourceUsage {
10    pub id: String,
11    pub name: String,
12    pub kind: ResourceKind,
13    pub cpu_percent: Option<PrometheusSeries>,
14    pub memory_bytes: Option<PrometheusSeries>,
15}
16
17#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
18#[serde(rename_all = "snake_case")]
19pub enum ResourceKind {
20    System,
21    GameServer,
22    Agent,
23    Mod,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
27pub struct ServerResourcesResponse {
28    pub cpus: Vec<PrometheusSeries>,
29    pub resources: Vec<ResourceUsage>,
30    pub max_ram: usize,
31    pub players: Vec<PrometheusSeries>,
32    pub server_fps: Vec<PrometheusSeries>,
33}