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]]
name = "monitor_cli"
version = "0.1.5"
version = "0.1.6"
dependencies = [
"async_timing_util",
"clap",

View File

@@ -1,6 +1,6 @@
[package]
name = "monitor_cli"
version = "0.1.5"
version = "0.1.6"
edition = "2021"
authors = ["MoghTech"]
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");
}
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);
@@ -238,7 +238,7 @@ pub fn start_core(sub_matches: &ArgMatches) {
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);
@@ -438,7 +438,7 @@ pub fn start_periphery_container(sub_matches: &ArgMatches) {
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);

View File

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

View File

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

View File

@@ -262,10 +262,10 @@ pub struct SystemStatsRecord {
pub ts: f64, // unix ts milliseconds
#[serde(default)]
pub system_load: f64,
pub cpu_perc: f32, // in %
pub cpu_perc: f32, // in %
#[serde(default)]
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 disk: DiskUsage,
#[serde(default)]