mirror of
https://github.com/csehviktor/status-monitor.git
synced 2025-08-08 18:06:14 +02:00
update serialization
This commit is contained in:
@@ -8,7 +8,7 @@ pub mod metrics;
|
||||
pub const MQTT_TOPIC: &str = "system/metrics";
|
||||
pub const MQTT_SEND_INTERVAL: u64 = 5;
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct StatusMessage {
|
||||
pub agent: String,
|
||||
pub metrics: Metrics,
|
||||
@@ -36,3 +36,9 @@ impl<'a> TryFrom<&'a [u8]> for StatusMessage {
|
||||
serde_json::from_slice(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<StatusMessage> for String {
|
||||
fn from(msg: StatusMessage) -> String {
|
||||
serde_json::to_string(&msg).unwrap_or_else(|_| String::new())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct Metrics {
|
||||
pub system_info: SystemInfo,
|
||||
pub cpu: CPU,
|
||||
@@ -9,7 +9,7 @@ pub struct Metrics {
|
||||
pub network: Network,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct SystemInfo {
|
||||
pub uptime: u64,
|
||||
pub host: Option<String>,
|
||||
@@ -18,14 +18,14 @@ pub struct SystemInfo {
|
||||
pub os_version: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct CPU {
|
||||
pub usage: f32,
|
||||
pub threads: usize,
|
||||
pub breakdown: CPUBreakdown,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, Default)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
|
||||
pub struct CPUBreakdown {
|
||||
pub system: f32,
|
||||
pub user: f32,
|
||||
@@ -34,13 +34,13 @@ pub struct CPUBreakdown {
|
||||
pub iowait: f32,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct Disk {
|
||||
pub free: u64,
|
||||
pub total: u64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct Memory {
|
||||
pub used: u64,
|
||||
pub total: u64,
|
||||
@@ -48,7 +48,7 @@ pub struct Memory {
|
||||
pub swap_total: u64,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize)]
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct Network {
|
||||
pub down: u64,
|
||||
pub up: u64,
|
||||
|
||||
Reference in New Issue
Block a user