mirror of https://github.com/PentHertz/srsLTE.git
Fills the value of the number of cpus for the system_metrics_t and
initiliaze its value to 0 when executing 2 measures in less than 100 ms.
This commit is contained in:
parent
163976f050
commit
a51f2a1de4
|
@ -13,6 +13,7 @@
|
|||
#ifndef SRSRAN_SYS_METRICS_H
|
||||
#define SRSRAN_SYS_METRICS_H
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
|
||||
namespace srsran {
|
||||
|
@ -21,14 +22,14 @@ constexpr uint32_t metrics_max_supported_cpu = 32u;
|
|||
|
||||
/// Metrics of cpu usage, memory consumption and number of thread used by the process.
|
||||
struct sys_metrics_t {
|
||||
uint32_t process_realmem_kB = 0;
|
||||
uint32_t process_virtualmem_kB = 0;
|
||||
float process_realmem = 0.f;
|
||||
uint32_t thread_count = 0;
|
||||
float process_cpu_usage = 0.f;
|
||||
float system_mem = 0.f;
|
||||
uint32_t cpu_count = 0;
|
||||
float cpu_load[metrics_max_supported_cpu];
|
||||
uint32_t process_realmem_kB = 0;
|
||||
uint32_t process_virtualmem_kB = 0;
|
||||
float process_realmem = 0.f;
|
||||
uint32_t thread_count = 0;
|
||||
float process_cpu_usage = 0.f;
|
||||
float system_mem = 0.f;
|
||||
uint32_t cpu_count = 0;
|
||||
std::array<float, metrics_max_supported_cpu> cpu_load;
|
||||
};
|
||||
|
||||
} // namespace srsran
|
||||
|
|
|
@ -49,6 +49,20 @@ sys_metrics_processor::proc_stats_info::proc_stats_info()
|
|||
arg_end >> env_start >> env_end >> exit_code;
|
||||
}
|
||||
|
||||
/// Returns a null sys_metrics_t with the cpu count field filled.
|
||||
static sys_metrics_t create_null_metrics()
|
||||
{
|
||||
sys_metrics_t metrics;
|
||||
|
||||
if (cpu_count > metrics_max_supported_cpu) {
|
||||
return metrics;
|
||||
}
|
||||
|
||||
metrics.cpu_count = cpu_count;
|
||||
metrics.cpu_load.fill(0.f);
|
||||
return metrics;
|
||||
}
|
||||
|
||||
sys_metrics_t sys_metrics_processor::get_metrics()
|
||||
{
|
||||
auto current_time = std::chrono::steady_clock::now();
|
||||
|
@ -58,7 +72,7 @@ sys_metrics_t sys_metrics_processor::get_metrics()
|
|||
// The time elapsed between 2 measures must be greater that 100 milliseconds.
|
||||
if (measure_interval_ms < 100u) {
|
||||
logger.warning("Interval less than 100ms, skipping measurement.");
|
||||
return {};
|
||||
return create_null_metrics();
|
||||
}
|
||||
|
||||
sys_metrics_t metrics;
|
||||
|
|
Loading…
Reference in New Issue