// to hold the cluster back, even confusing the user, due to some possibly
// outdated stats.
stats.clear();
+ last_warned_percent = 0;
}
void DataHealthService::get_health(Formatter *f,
// otherwise we may very well contribute to the consumption of the
// already low available disk space.
if (ours.latest_avail_percent <= g_conf->mon_data_avail_warn) {
- mon->clog.warn()
- << "reached concerning levels of available space on data store"
- << " (" << ours.latest_avail_percent << "\% free)\n";
+ if (ours.latest_avail_percent != last_warned_percent)
+ mon->clog.warn()
+ << "reached concerning levels of available space on data store"
+ << " (" << ours.latest_avail_percent << "\% free)\n";
+ last_warned_percent = ours.latest_avail_percent;
+ } else {
+ last_warned_percent = 0;
}
}
public HealthService
{
map<entity_inst_t,DataStats> stats;
+ int last_warned_percent;
+
void handle_tell(MMonHealth *m);
int update_stats();
void share_stats();
public:
DataHealthService(Monitor *m) :
- HealthService(m)
+ HealthService(m),
+ last_warned_percent(0)
{
set_update_period(g_conf->mon_health_data_update_interval);
}