nimbuspulse_client/types/
system_resources.rs1use 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}