Measure & report recovery op count and bandwidth
This commit is contained in:
+17
-6
@@ -145,21 +145,22 @@ json11::Json osd_t::get_statistics()
|
||||
json11::Json::object st;
|
||||
timespec ts;
|
||||
clock_gettime(CLOCK_REALTIME, &ts);
|
||||
st["time"] = std::to_string(ts.tv_sec)+"."+std::to_string(ts.tv_nsec/1000000);
|
||||
char time_str[50] = { 0 };
|
||||
sprintf(time_str, "%ld.%03ld", ts.tv_sec, ts.tv_nsec/1000000);
|
||||
st["time"] = time_str;
|
||||
st["blockstore_ready"] = bs->is_started();
|
||||
if (bs)
|
||||
{
|
||||
st["size"] = bs->get_block_count() * bs->get_block_size();
|
||||
st["free"] = bs->get_free_block_count() * bs->get_block_size();
|
||||
}
|
||||
// FIXME: report recovery ops and bandwidth
|
||||
// FIXME: handle integer overflow
|
||||
json11::Json::object op_stats, subop_stats;
|
||||
for (int i = 0; i <= OSD_OP_MAX; i++)
|
||||
{
|
||||
op_stats[osd_op_names[i]] = json11::Json::object {
|
||||
{ "count", op_stat_count[0][i] },
|
||||
{ "sum", op_stat_sum[0][i] },
|
||||
{ "usec", op_stat_sum[0][i] },
|
||||
{ "bytes", op_stat_bytes[0][i] },
|
||||
};
|
||||
}
|
||||
@@ -167,11 +168,21 @@ json11::Json osd_t::get_statistics()
|
||||
{
|
||||
subop_stats[osd_op_names[i]] = json11::Json::object {
|
||||
{ "count", subop_stat_count[0][i] },
|
||||
{ "sum", subop_stat_sum[0][i] },
|
||||
{ "usec", subop_stat_sum[0][i] },
|
||||
};
|
||||
}
|
||||
st["op_latency"] = op_stats;
|
||||
st["subop_latency"] = subop_stats;
|
||||
st["op_stats"] = op_stats;
|
||||
st["subop_stats"] = subop_stats;
|
||||
st["recovery_stats"] = json11::Json::object {
|
||||
{ recovery_stat_names[0], json11::Json::object {
|
||||
{ "count", recovery_stat_count[0][0] },
|
||||
{ "bytes", recovery_stat_bytes[0][0] },
|
||||
} },
|
||||
{ recovery_stat_names[1], json11::Json::object {
|
||||
{ "count", recovery_stat_count[0][1] },
|
||||
{ "bytes", recovery_stat_bytes[0][1] },
|
||||
} },
|
||||
};
|
||||
return st;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user