add cpu freq and avg system load

This commit is contained in:
mbecker20
2023-01-11 10:03:48 +00:00
parent a19c339857
commit 7060926854
6 changed files with 29 additions and 19 deletions

2
Cargo.lock generated
View File

@@ -1472,7 +1472,7 @@ dependencies = [
[[package]] [[package]]
name = "monitor_cli" name = "monitor_cli"
version = "0.1.5" version = "0.1.6"
dependencies = [ dependencies = [
"async_timing_util", "async_timing_util",
"clap", "clap",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "monitor_cli" name = "monitor_cli"
version = "0.1.5" version = "0.1.6"
edition = "2021" edition = "2021"
authors = ["MoghTech"] authors = ["MoghTech"]
description = "monitor cli | tools to setup monitor system" description = "monitor cli | tools to setup monitor system"

View File

@@ -172,7 +172,7 @@ pub fn start_mongo(sub_matches: &ArgMatches) {
println!("pressed another button, exiting"); println!("pressed another button, exiting");
} }
let command = format!("docker run -d --name {name} -p {port}:27017 --network {network} -v {mount}:/data/db{env} --restart {restart} mongo --quiet"); let command = format!("docker stop {name} && docker container rm {name} && docker run -d --name {name} -p {port}:27017 --network {network} -v {mount}:/data/db{env} --restart {restart} mongo --quiet");
let output = run_command_pipe_to_terminal(&command); let output = run_command_pipe_to_terminal(&command);
@@ -238,7 +238,7 @@ pub fn start_core(sub_matches: &ArgMatches) {
println!("pressed another button, exiting"); println!("pressed another button, exiting");
} }
let command = format!("docker run -d --name {name} -p {port}:9000 --network {network} -v {config_path}:/config/config.toml --restart {restart} --add-host host.docker.internal:host-gateway {CORE_IMAGE_NAME}"); let command = format!("docker stop {name} && docker container rm {name} && docker pull {CORE_IMAGE_NAME} && docker run -d --name {name} -p {port}:9000 --network {network} -v {config_path}:/config/config.toml --restart {restart} --add-host host.docker.internal:host-gateway {CORE_IMAGE_NAME}");
let output = run_command_pipe_to_terminal(&command); let output = run_command_pipe_to_terminal(&command);
@@ -438,7 +438,7 @@ pub fn start_periphery_container(sub_matches: &ArgMatches) {
println!("pressed another button, exiting"); println!("pressed another button, exiting");
} }
let command = format!("docker run -d --name {name} -p {port}:8000 --network {network} -v {config_path}:/config/config.toml -v {repo_dir}:/repos -v /var/run/docker.sock:/var/run/docker.sock --restart {restart} {PERIPHERY_IMAGE_NAME}"); let command = format!("docker stop {name} && docker container rm {name} && docker pull {PERIPHERY_IMAGE_NAME} && docker run -d --name {name} -p {port}:8000 --network {network} -v {config_path}:/config/config.toml -v {repo_dir}:/repos -v /var/run/docker.sock:/var/run/docker.sock --restart {restart} {PERIPHERY_IMAGE_NAME}");
let output = run_command_pipe_to_terminal(&command); let output = run_command_pipe_to_terminal(&command);

View File

@@ -14,9 +14,11 @@ import Loading from "../shared/loading/Loading";
import SimpleTabs from "../shared/tabs/SimpleTabs"; import SimpleTabs from "../shared/tabs/SimpleTabs";
import { import {
CpuChart, CpuChart,
CpuFreqChart,
DiskChart, DiskChart,
DiskReadChart, DiskReadChart,
DiskWriteChart, DiskWriteChart,
LoadChart,
MemChart, MemChart,
NetworkRecvChart, NetworkRecvChart,
NetworkSentChart, NetworkSentChart,
@@ -65,7 +67,9 @@ const HistoricalStats: Component<{
title: "basic", title: "basic",
element: () => ( element: () => (
<Grid class={s.Charts}> <Grid class={s.Charts}>
<LoadChart stats={stats} />
<CpuChart stats={stats} /> <CpuChart stats={stats} />
<CpuFreqChart stats={stats} />
<MemChart stats={stats} /> <MemChart stats={stats} />
<DiskChart stats={stats} /> <DiskChart stats={stats} />
</Grid> </Grid>

View File

@@ -2,7 +2,8 @@ use anyhow::{anyhow, Context};
use futures_util::{SinkExt, StreamExt}; use futures_util::{SinkExt, StreamExt};
use monitor_types::{ use monitor_types::{
BasicContainerInfo, HistoricalStatsQuery, ImageSummary, Log, Network, Server, BasicContainerInfo, HistoricalStatsQuery, ImageSummary, Log, Network, Server,
ServerActionState, ServerWithStatus, SystemStats, SystemStatsQuery, SystemStatsRecord, SystemInformation, ServerActionState, ServerWithStatus, SystemInformation, SystemStats, SystemStatsQuery,
SystemStatsRecord,
}; };
use serde_json::{json, Value}; use serde_json::{json, Value};
use tokio::{ use tokio::{
@@ -86,22 +87,27 @@ impl MonitorClient {
.context("failed at update server") .context("failed at update server")
} }
pub async fn get_server_version( pub async fn get_server_version(&self, server_id: &str) -> anyhow::Result<String> {
&self, self.get(
server_id: &str &format!("/api/server/{server_id}/version"),
) -> anyhow::Result<String> { Option::<()>::None,
self.get(&format!("/api/server/{server_id}/version"), Option::<()>::None) )
.await .await
.context(format!("failed to get server version at id {server_id}")) .context(format!("failed to get server version at id {server_id}"))
} }
pub async fn get_server_system_information( pub async fn get_server_system_information(
&self, &self,
server_id: &str server_id: &str,
) -> anyhow::Result<SystemInformation> { ) -> anyhow::Result<SystemInformation> {
self.get(&format!("/api/server/{server_id}/system_information"), Option::<()>::None) self.get(
.await &format!("/api/server/{server_id}/system_information"),
.context(format!("failed to get server system information at id {server_id}")) Option::<()>::None,
)
.await
.context(format!(
"failed to get server system information at id {server_id}"
))
} }
pub async fn get_server_stats( pub async fn get_server_stats(

View File

@@ -262,10 +262,10 @@ pub struct SystemStatsRecord {
pub ts: f64, // unix ts milliseconds pub ts: f64, // unix ts milliseconds
#[serde(default)] #[serde(default)]
pub system_load: f64, pub system_load: f64,
pub cpu_perc: f32, // in % pub cpu_perc: f32, // in %
#[serde(default)] #[serde(default)]
pub cpu_freq_mhz: f64, // in MHz pub cpu_freq_mhz: f64, // in MHz
pub mem_used_gb: f64, // in GB pub mem_used_gb: f64, // in GB
pub mem_total_gb: f64, // in GB pub mem_total_gb: f64, // in GB
pub disk: DiskUsage, pub disk: DiskUsage,
#[serde(default)] #[serde(default)]