[metrics] Added system metrics to the enb's stdout

This commit is contained in:
AlaiaL 2021-02-25 14:21:28 +01:00 committed by Andre Puschmann
parent 3a86c210f9
commit 0ba7cd7df9
7 changed files with 20 additions and 9 deletions

View File

@ -20,6 +20,7 @@
#include "srsenb/hdr/stack/rrc/rrc_metrics.h"
#include "srsenb/hdr/stack/upper/common_enb.h"
#include "srsenb/hdr/stack/upper/s1ap_metrics.h"
#include "srslte/system/sys_metrics.h"
#include "srslte/common/metrics_hub.h"
#include "srslte/radio/radio_metrics.h"
#include "srslte/upper/pdcp_metrics.h"
@ -48,6 +49,7 @@ struct enb_metrics_t {
srslte::rf_metrics_t rf;
std::vector<phy_metrics_t> phy;
stack_metrics_t stack;
srslte::sys_metrics_t sys;
bool running;
};

View File

@ -87,7 +87,6 @@ float sys_metrics_processor::cpu_usage(const proc_stats_info& current_query, flo
static const unsigned cpu_count = ::sysconf(_SC_NPROCESSORS_CONF);
static const float ticks_per_second = ::sysconf(_SC_CLK_TCK);
printf("delta time is: %f\n", delta_time_in_seconds);
return ((current_query.stime + current_query.utime) - (last_query.stime + last_query.utime)) * 100.f /
(cpu_count * ticks_per_second * delta_time_in_seconds);
}

View File

@ -31,6 +31,7 @@
#include "srsenb/hdr/stack/enb_stack_base.h"
#include "srsenb/hdr/stack/rrc/rrc_config.h"
#include "srslte/system/sys_metrics_processor.h"
#include "srslte/common/bcd_helpers.h"
#include "srslte/common/buffer_pool.h"
#include "srslte/common/interfaces_common.h"
@ -150,6 +151,9 @@ private:
std::unique_ptr<srslte::radio_base> radio = nullptr;
std::unique_ptr<enb_phy_base> phy = nullptr;
// System metrics processor.
srslte::sys_metrics_processor sys_proc;
srslte::LOG_LEVEL_ENUM level(std::string l);
std::string get_build_mode();

View File

@ -25,8 +25,8 @@ target_link_libraries(enb_cfg_parser ${LIBCONFIGPP_LIBRARIES})
add_executable(srsenb main.cc enb.cc metrics_stdout.cc metrics_csv.cc metrics_json.cc)
set(SRSENB_SOURCES srsenb_phy srsenb_stack srsenb_upper srsenb_mac srsenb_rrc srslog)
set(SRSLTE_SOURCES srslte_common srslte_mac srslte_phy srslte_upper srslte_radio rrc_asn1 s1ap_asn1 enb_cfg_parser srslog)
set(SRSENB_SOURCES srsenb_phy srsenb_stack srsenb_upper srsenb_mac srsenb_rrc srslog system)
set(SRSLTE_SOURCES srslte_common srslte_mac srslte_phy srslte_upper srslte_radio rrc_asn1 s1ap_asn1 enb_cfg_parser srslog system)
set(SRSENB_SOURCES ${SRSENB_SOURCES} srsgnb_phy srsgnb_stack srsgnb_upper srsgnb_mac srsgnb_rrc)
set(SRSLTE_SOURCES ${SRSLTE_SOURCES} rrc_nr_asn1 ngap_nr_asn1)

View File

@ -200,6 +200,7 @@ bool enb::get_metrics(enb_metrics_t* m)
phy->get_metrics(m->phy);
stack->get_metrics(&m->stack);
m->running = started;
m->sys = sys_proc.get_metrics();
return true;
}

View File

@ -84,8 +84,8 @@ void metrics_stdout::set_metrics(const enb_metrics_t& metrics, const uint32_t pe
if (++n_reports > 10) {
n_reports = 0;
cout << endl;
cout << "------DL-------------------------------UL--------------------------------------------" << endl;
cout << "rnti cqi ri mcs brate ok nok (%) pusch pucch phr mcs brate ok nok (%) bsr" << endl;
cout << "------DL-------------------------------UL---------------------------------------------|----SYS----" << endl;
cout << "rnti cqi ri mcs brate ok nok (%) pusch pucch phr mcs brate ok nok (%) bsr cpu mem" << endl;
}
for (size_t i = 0; i < metrics.stack.rrc.ues.size(); i++) {
@ -161,6 +161,11 @@ void metrics_stdout::set_metrics(const enb_metrics_t& metrics, const uint32_t pe
cout << float_to_string(0, 1, 4) << "%";
}
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;
}

View File

@ -67,14 +67,14 @@ void metrics_stdout::print_table(const bool display_neighbours)
cout << "--------Signal-------------Neighbour--DL-------------------------------------UL-----------------------|---"
"--SYS-----"
<< 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;
} else {
cout << "--------Signal--------------DL-------------------------------------UL----------------------|-----SYS----"
"--"
<< 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 cpu mem"
<< endl;
}
table_has_neighbours = display_neighbours;
@ -169,8 +169,8 @@ void metrics_stdout::set_metrics(const ue_metrics_t& metrics, const uint32_t per
}
// Write the system metrics.
cout << float_to_string(metrics.sys.process_cpu_usage, 2);
cout << float_to_string(metrics.sys.system_mem, 2);
cout << float_to_string(metrics.sys.process_cpu_usage, 3);
cout << float_to_string(metrics.sys.process_realmem, 3);
cout << endl;
}