add collect_container_info to election scheduler and prioritization

This commit is contained in:
fikumikudev 2022-01-22 21:15:55 +00:00 committed by Dimitrios Siganos
commit b51883c2b6
5 changed files with 28 additions and 0 deletions

View file

@ -149,3 +149,13 @@ void nano::election_scheduler::run ()
}
}
}
std::unique_ptr<nano::container_info_component> nano::collect_container_info (election_scheduler & election_scheduler, std::string const & name)
{
nano::unique_lock<nano::mutex> lock{ election_scheduler.mutex };
auto composite = std::make_unique<container_info_composite> (name);
composite->add_component (std::make_unique<container_info_leaf> (container_info{ "manual_queue", election_scheduler.manual_queue.size (), sizeof (decltype (election_scheduler.manual_queue)::value_type) }));
composite->add_component (collect_container_info (election_scheduler.priority, "priority"));
return composite;
}

View file

@ -46,5 +46,8 @@ private:
nano::condition_variable condition;
mutable nano::mutex mutex;
std::thread thread;
friend std::unique_ptr<container_info_component> collect_container_info (election_scheduler &, std::string const &);
};
std::unique_ptr<container_info_component> collect_container_info (election_scheduler & election_scheduler, std::string const & name);
}

View file

@ -555,6 +555,7 @@ std::unique_ptr<nano::container_info_component> nano::collect_container_info (no
composite->add_component (collect_container_info (node.confirmation_height_processor, "confirmation_height_processor"));
composite->add_component (collect_container_info (node.distributed_work, "distributed_work"));
composite->add_component (collect_container_info (node.aggregator, "request_aggregator"));
composite->add_component (collect_container_info (node.scheduler, "election_scheduler"));
return composite;
}

View file

@ -129,3 +129,14 @@ void nano::prioritization::dump ()
}
std::cerr << "current: " << std::to_string (*current) << '\n';
}
std::unique_ptr<nano::container_info_component> nano::collect_container_info (prioritization & prioritization, std::string const & name)
{
auto composite = std::make_unique<container_info_composite> (name);
for (auto i = 0; i < prioritization.buckets.size (); ++i)
{
auto const & bucket = prioritization.buckets[i];
composite->add_component (std::make_unique<container_info_leaf> (container_info{ std::to_string (i), bucket.size (), 0 }));
}
return composite;
}

View file

@ -40,5 +40,8 @@ public:
bool empty () const;
void dump ();
uint64_t const maximum;
friend std::unique_ptr<container_info_component> collect_container_info (prioritization &, std::string const &);
};
std::unique_ptr<container_info_component> collect_container_info (prioritization & prioritization, std::string const & name);
}