18 #include <ros_monitoring_msgs/MetricData.h> 26 #define BASE_METRIC_NAME "cpu_usage_" 32 new_ = std::make_shared<CPUStats>();
36 CollectCpuUsage(old_->GetEntries(), new_->GetEntries());
44 const std::vector<CPUData> & entries2)
46 const size_t num_of_entries = std::min(entries1.size(), entries2.size());
48 for (
size_t i = 0; i < num_of_entries; ++i) {
49 const CPUData & e1 = entries1[i];
50 const CPUData & e2 = entries2[i];
54 const float total_time = active_time + idle_time;
55 const float usage = 100.f * active_time / total_time;
57 ros_monitoring_msgs::MetricData md = mgr_.CreateMetric();
59 md.unit = MetricData::UNIT_PERCENTAGE;
size_t GetActiveTime() const
void CollectCpuUsage(const std::vector< CPUData > &entries1, const std::vector< CPUData > &entries2)
void Collect() overridefinal
activates metrics collection.
size_t GetIdleTime() const