MgrStatMonitor::MgrStatMonitor(Monitor &mn, Paxos &p, const string& service_name)
: PaxosService(mn, p, service_name)
{
+ g_conf().add_observer(this);
}
-MgrStatMonitor::~MgrStatMonitor() = default;
+MgrStatMonitor::~MgrStatMonitor()
+{
+ g_conf().remove_observer(this);
+}
+
+std::vector<std::string> MgrStatMonitor::get_tracked_keys() const noexcept
+{
+ return {
+ "enable_availability_tracking",
+ };
+}
+
+void MgrStatMonitor::handle_conf_change(
+ const ConfigProxy& conf,
+ const std::set<std::string>& changed)
+{
+ // implement changes here
+ dout(10) << __func__ << " enable_availability_tracking config option is changed." << dendl;
+}
void MgrStatMonitor::create_initial()
{
#include "mon/PGMap.h"
#include "mgr/ServiceMap.h"
-class MgrStatMonitor : public PaxosService {
+ class MgrStatMonitor : public PaxosService,
+ public md_config_obs_t {
// live version
version_t version = 0;
PGMapDigest digest;
bool verbose) const {
digest.dump_pool_stats_full(osdm, ss, f, verbose);
}
+
+ // config observer
+ std::vector<std::string> get_tracked_keys() const noexcept override;
+ void handle_conf_change(const ConfigProxy& conf,
+ const std::set <std::string> &changed) override;
};