[metrics] Added the system metrics to the csv

This commit is contained in:
AlaiaL 2021-02-25 18:39:42 +01:00 committed by Andre Puschmann
parent 0ba7cd7df9
commit d518a625cc
5 changed files with 36 additions and 22 deletions

View File

@ -119,7 +119,7 @@ static void calculate_percentage_memory(sys_metrics_t& metrics)
// Calculate the metrics. // Calculate the metrics.
metrics.process_realmem = 100.f * (float(metrics.process_realmem_kB) / total_mem_kB); metrics.process_realmem = 100.f * (float(metrics.process_realmem_kB) / total_mem_kB);
metrics.process_virtualmem = 100.f * (float(metrics.process_virtualmem) / total_mem_kB); metrics.process_virtualmem = 100.f * (float(metrics.process_virtualmem_kB) / total_mem_kB);
metrics.system_mem = (1.f - float(available_mem_kB) / float(total_mem_kB)) * 100.f; metrics.system_mem = (1.f - float(available_mem_kB) / float(total_mem_kB)) * 100.f;
} }

View File

@ -55,7 +55,8 @@ void metrics_csv::set_metrics(const enb_metrics_t& metrics, const uint32_t perio
{ {
if (file.is_open() && enb != NULL) { if (file.is_open() && enb != NULL) {
if (n_reports == 0) { if (n_reports == 0) {
file << "time;nof_ue;dl_brate;ul_brate\n"; file << "time;nof_ue;dl_brate;ul_brate"
"proc_rmem;proc_rmem_kB;proc_vmem;proc_vmem_kB;sys_mem;proc_cpu;thread_count\n";
} }
// Time // Time
@ -80,11 +81,21 @@ void metrics_csv::set_metrics(const enb_metrics_t& metrics, const uint32_t perio
// UL rate // UL rate
if (ul_rate_sum > 0) { if (ul_rate_sum > 0) {
file << float_to_string(SRSLTE_MAX(0.1, (float)ul_rate_sum), 2, false); file << float_to_string(SRSLTE_MAX(0.1, (float)ul_rate_sum), 2);
} else { } else {
file << float_to_string(0, 2, false); file << float_to_string(0, 2);
} }
// Write system metrics.
const srslte::sys_metrics_t &m = metrics.sys;
file << float_to_string(m.process_realmem, 2);
file << std::to_string(m.process_realmem_kB) << ";";
file << float_to_string(m.process_virtualmem, 2);
file << std::to_string(m.process_virtualmem_kB) << ";" ;
file << float_to_string(m.system_mem, 2);
file << float_to_string(m.process_cpu_usage, 2);
file << std::to_string(m.thread_count);
file << "\n"; file << "\n";
n_reports++; n_reports++;

View File

@ -84,8 +84,8 @@ void metrics_stdout::set_metrics(const enb_metrics_t& metrics, const uint32_t pe
if (++n_reports > 10) { if (++n_reports > 10) {
n_reports = 0; n_reports = 0;
cout << endl; cout << endl;
cout << "------DL-------------------------------UL---------------------------------------------|----SYS----" << endl; cout << "------DL-------------------------------UL--------------------------------------------" << endl;
cout << "rnti cqi ri mcs brate ok nok (%) pusch pucch phr mcs brate ok nok (%) bsr cpu mem" << endl; cout << "rnti cqi ri mcs brate ok nok (%) pusch pucch phr mcs brate ok nok (%) bsr" << endl;
} }
for (size_t i = 0; i < metrics.stack.rrc.ues.size(); i++) { for (size_t i = 0; i < metrics.stack.rrc.ues.size(); i++) {
@ -162,10 +162,6 @@ void metrics_stdout::set_metrics(const enb_metrics_t& metrics, const uint32_t pe
} }
cout << float_to_eng_string(metrics.stack.mac.ues[i].ul_buffer, 2); cout << float_to_eng_string(metrics.stack.mac.ues[i].ul_buffer, 2);
// Write the system metrics.
cout << float_to_string(metrics.sys.process_cpu_usage, 2);
cout << float_to_string(metrics.sys.process_realmem, 2);
cout << endl; cout << endl;
} }

View File

@ -77,7 +77,8 @@ void metrics_csv::set_metrics(const ue_metrics_t& metrics, const uint32_t period
"ul_ta;ul_mcs;ul_buff;ul_brate;ul_" "ul_ta;ul_mcs;ul_buff;ul_brate;ul_"
"bler;" "bler;"
"rf_o;rf_" "rf_o;rf_"
"u;rf_l;is_attached\n"; "u;rf_l;is_attached;"
"proc_rmem;proc_rmem_kB;proc_vmem;proc_vmem_kB;sys_mem;proc_cpu;thread_count\n";
} }
for (uint32_t r = 0; r < metrics.phy.nof_active_cc; r++) { for (uint32_t r = 0; r < metrics.phy.nof_active_cc; r++) {
@ -150,7 +151,18 @@ void metrics_csv::set_metrics(const ue_metrics_t& metrics, const uint32_t period
file << float_to_string(metrics.rf.rf_o, 2); file << float_to_string(metrics.rf.rf_o, 2);
file << float_to_string(metrics.rf.rf_u, 2); file << float_to_string(metrics.rf.rf_u, 2);
file << float_to_string(metrics.rf.rf_l, 2); file << float_to_string(metrics.rf.rf_l, 2);
file << (metrics.stack.rrc.state == RRC_STATE_CONNECTED ? "1.0" : "0.0"); file << (metrics.stack.rrc.state == RRC_STATE_CONNECTED ? "1.0" : "0.0") << ";";
// Write system metrics.
const srslte::sys_metrics_t &m = metrics.sys;
file << float_to_string(m.process_realmem, 2);
file << std::to_string(m.process_realmem_kB) << ";";
file << float_to_string(m.process_virtualmem, 2);
file << std::to_string(m.process_virtualmem_kB) << ";" ;
file << float_to_string(m.system_mem, 2);
file << float_to_string(m.process_cpu_usage, 2);
file << std::to_string(m.thread_count);
file << "\n"; file << "\n";
} }

View File

@ -64,17 +64,15 @@ void metrics_stdout::toggle_print(bool b)
void metrics_stdout::print_table(const bool display_neighbours) void metrics_stdout::print_table(const bool display_neighbours)
{ {
if (display_neighbours) { if (display_neighbours) {
cout << "--------Signal-------------Neighbour--DL-------------------------------------UL-----------------------|---" cout << "--------Signal-------------Neighbour--DL-------------------------------------UL----------------------"
"--SYS-----"
<< endl; << endl;
cout << "cc pci rsrp pl cfo pci rsrp mcs snr turbo brate bler ta_us mcs buff brate bler " cout << "cc pci rsrp pl cfo pci rsrp mcs snr turbo brate bler ta_us mcs buff brate bler"
"cpu mem"
<< endl; << endl;
} else { } else {
cout << "--------Signal--------------DL-------------------------------------UL----------------------|-----SYS----" cout << "--------Signal--------------DL-------------------------------------UL----------------------"
"--" "--"
<< endl; << endl;
cout << "cc pci rsrp pl cfo mcs snr turbo brate bler ta_us mcs buff brate bler cpu mem" cout << "cc pci rsrp pl cfo mcs snr turbo brate bler ta_us mcs buff brate bler"
<< endl; << endl;
} }
table_has_neighbours = display_neighbours; table_has_neighbours = display_neighbours;
@ -167,10 +165,7 @@ void metrics_stdout::set_metrics(const ue_metrics_t& metrics, const uint32_t per
} else { } else {
cout << float_to_string(0, 1) << "%"; cout << float_to_string(0, 1) << "%";
} }
// Write the system metrics.
cout << float_to_string(metrics.sys.process_cpu_usage, 3);
cout << float_to_string(metrics.sys.process_realmem, 3);
cout << endl; cout << endl;
} }