Skip to content

Commit 66d2ee8

Browse files
Seulgi Kimsgkim126
authored andcommitted
Send an alert if there is a node has less than 1 GB free space
1 parent dde2ca4 commit 66d2ee8

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

server/src/agent/agent.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use super::super::rpc::RPCResult;
2020
use super::codechain_rpc::CodeChainRPC;
2121
use super::service::{Message as ServiceMessage, ServiceSender};
2222
use super::types::{AgentGetInfoResponse, CodeChainCallRPCResponse};
23+
use crate::common_rpc_types::HardwareUsage;
2324
use crate::noti::Noti;
2425

2526
#[derive(Clone, PartialEq, Debug)]
@@ -185,7 +186,8 @@ impl Agent {
185186

186187
let mut count_of_no_enough_connections = 0usize;
187188
let mut previous_best_block_number = 0;
188-
let mut count_of_no_block_update = 00usize;
189+
let mut count_of_no_block_update = 0usize;
190+
let mut disk_usage_alert_sent = false;
189191
loop {
190192
ctrace!("Agent-{} update", self.id);
191193
let update_result = self.update()?;
@@ -205,6 +207,7 @@ impl Agent {
205207
network_id,
206208
number_of_peers,
207209
best_block_number,
210+
disk_usage,
208211
}) = update_result
209212
{
210213
let node_name = node_name.expect("Updated");
@@ -232,6 +235,19 @@ impl Agent {
232235
self.noti.warn(&network_id, &format!("{} no block update in 30 seconds.", node_name));
233236
}
234237
}
238+
239+
const ONE_GB: i64 = 1_000_000_000;
240+
if !disk_usage_alert_sent {
241+
if disk_usage.available < ONE_GB {
242+
self.noti.warn(
243+
&network_id,
244+
&format!("{} has only {} MB free space.", node_name, disk_usage.available / 1_000_000),
245+
);
246+
disk_usage_alert_sent = true;
247+
}
248+
} else if ONE_GB < disk_usage.available {
249+
disk_usage_alert_sent = false;
250+
}
235251
}
236252
thread::sleep(Duration::new(10, 0));
237253
}
@@ -304,6 +320,7 @@ impl Agent {
304320

305321
ctrace!("Update state from {:?} to {:?}", *state, new_state);
306322
let number_of_peers = peers.len();
323+
let disk_usage = hardware.disk_usage;
307324
self.db_service.update_agent_query_result(db::AgentQueryResult {
308325
name: info.name.clone(),
309326
status: info.status,
@@ -325,6 +342,7 @@ impl Agent {
325342
network_id: network_id.unwrap_or_default(),
326343
number_of_peers,
327344
best_block_number: best_block_id.map(|id| id.block_number as u64),
345+
disk_usage,
328346
}))
329347
}
330348

@@ -389,6 +407,7 @@ struct UpdateResult {
389407
network_id: String,
390408
number_of_peers: usize,
391409
best_block_number: Option<u64>,
410+
disk_usage: HardwareUsage,
392411
}
393412

394413
impl Drop for Agent {

server/src/common_rpc_types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ pub struct WhiteList {
6060

6161
pub type BlackList = WhiteList;
6262

63-
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
63+
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone, Copy)]
6464
#[serde(rename_all = "camelCase")]
6565
pub struct HardwareUsage {
6666
pub total: i64,

0 commit comments

Comments
 (0)