forked from github-starred/komodo
add cpu freq and avg system load
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -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",
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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)]
|
||||||
|
|||||||
Reference in New Issue
Block a user