forked from vitalif/vitastor
Remove stale deleted inode statistics in monitor
parent
d5c8fde5de
commit
32b1312abb
20
mon/mon.js
20
mon/mon.js
|
@ -1414,6 +1414,7 @@ class Mon
|
|||
{
|
||||
for (const inode_num in inode_stats[pool_id])
|
||||
{
|
||||
let nonzero = inode_stats[pool_id][inode_num].raw_used > 0;
|
||||
for (const op of [ 'read', 'write', 'delete' ])
|
||||
{
|
||||
const op_st = inode_stats[pool_id][inode_num][op];
|
||||
|
@ -1421,6 +1422,13 @@ class Mon
|
|||
op_st.bps = prev_st ? (op_st.bytes - prev_st.bytes) * 1000n / tm : 0;
|
||||
op_st.iops = prev_st ? (op_st.count - prev_st.count) * 1000n / tm : 0;
|
||||
op_st.lat = prev_st ? (op_st.usec - prev_st.usec) / ((op_st.count - prev_st.count) || 1n) : 0;
|
||||
if (op_st.bps > 0 || op_st.iops > 0 || op_st.lat > 0)
|
||||
nonzero = true;
|
||||
}
|
||||
if (!nonzero && (!this.state.config.inode[pool_id] || !this.state.config.inode[pool_id][inode_num]))
|
||||
{
|
||||
// Deleted inode (no data, no I/O, no config)
|
||||
delete inode_stats[pool_id][inode_num];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1469,6 +1477,18 @@ class Mon
|
|||
} });
|
||||
}
|
||||
}
|
||||
for (const pool_id in this.state.inode.stats)
|
||||
{
|
||||
for (const inode_num in this.state.inode.stats[pool_id])
|
||||
{
|
||||
if (!inode_stats[pool_id] || !inode_stats[pool_id][inode_num])
|
||||
{
|
||||
txn.push({ requestDeleteRange: {
|
||||
key: b64(this.etcd_prefix+'/inode/stats/'+pool_id+'/'+inode_num),
|
||||
} });
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const pool_id in this.state.pool.stats)
|
||||
{
|
||||
const pool_stats = { ...this.state.pool.stats[pool_id] };
|
||||
|
|
Loading…
Reference in New Issue