]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/PGMonitor: clean up min/max span warning
authorSage Weil <sage@redhat.com>
Tue, 18 Apr 2017 17:54:56 +0000 (13:54 -0400)
committerNathan Cutler <ncutler@suse.com>
Tue, 18 Jul 2017 20:12:57 +0000 (22:12 +0200)
Clean up option naming.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 489e810c37ed6fb9d32d1015634041a577501ee4)

src/common/config_opts.h
src/mon/PGMonitor.cc

index 1c55505c47d80348c29a3ff59955f5f22d68b9b2..984e51894d78e0ade01c1c70c10a2fbb495fb1ab 100644 (file)
@@ -305,7 +305,7 @@ OPTION(mon_crush_min_required_version, OPT_STR, "firefly")
 OPTION(mon_warn_on_crush_straw_calc_version_zero, OPT_BOOL, true) // warn if crush straw_calc_version==0
 OPTION(mon_warn_on_osd_down_out_interval_zero, OPT_BOOL, true) // warn if 'mon_osd_down_out_interval == 0'
 OPTION(mon_warn_on_cache_pools_without_hit_sets, OPT_BOOL, true)
-OPTION(mon_warn_osd_usage_percent, OPT_FLOAT, .40) // warn if difference in usage percent between OSDs exceeds specified percent
+OPTION(mon_warn_osd_usage_min_max_delta, OPT_FLOAT, .40) // warn if difference between min and max OSD utilizations exceeds specified amount
 OPTION(mon_min_osdmap_epochs, OPT_INT, 500)
 OPTION(mon_max_pgmap_epochs, OPT_INT, 500)
 OPTION(mon_max_log_epochs, OPT_INT, 500)
index d3761dd95cbf5683d833655e2c2c621fcc28592f..5e5644daf88391b90542457e5b9e066e6295413d 100644 (file)
@@ -1796,21 +1796,26 @@ void PGMonitor::get_health(list<pair<health_status_t,string> >& summary,
     }
   }
 
-  if (g_conf->mon_warn_osd_usage_percent) {
-    float max_osd_perc_avail = 0.0, min_osd_perc_avail = 1.0;
+  if (g_conf->mon_warn_osd_usage_min_max_delta) {
+    float max_osd_usage = 0.0, min_osd_usage = 1.0;
     for (auto p = pg_map.osd_stat.begin(); p != pg_map.osd_stat.end(); ++p) {
       // kb should never be 0, but avoid divide by zero in case of corruption
       if (p->second.kb <= 0)
         continue;
-      float perc_avail = ((float)(p->second.kb - p->second.kb_avail)) / ((float)p->second.kb);
-      if (perc_avail > max_osd_perc_avail)
-        max_osd_perc_avail = perc_avail;
-      if (perc_avail < min_osd_perc_avail)
-        min_osd_perc_avail = perc_avail;
-    }
-    if ((max_osd_perc_avail - min_osd_perc_avail) > g_conf->mon_warn_osd_usage_percent) {
+      float usage = ((float)p->second.kb_used) / ((float)p->second.kb);
+      if (usage > max_osd_usage)
+        max_osd_usage = usage;
+      if (usage < min_osd_usage)
+        min_osd_usage = usage;
+    }
+    float diff = max_osd_usage - min_osd_usage;
+    if (diff > g_conf->mon_warn_osd_usage_min_max_delta) {
       ostringstream ss;
-      ss << "Difference in osd space utilization " << ((max_osd_perc_avail - min_osd_perc_avail) *100) << "% greater than " << (g_conf->mon_warn_osd_usage_percent * 100) << "%";
+      ss << "difference between min (" << roundf(min_osd_usage*1000.0)/100.0
+        << "%) and max (" << roundf(max_osd_usage*1000.0)/100.0
+        << "%) osd usage " << roundf(diff*1000.0)/100.0 << "% > "
+        << roundf(g_conf->mon_warn_osd_usage_min_max_delta*1000.0)/100.0
+        << " (mon_warn_osd_usage_min_max_delta)";
       summary.push_back(make_pair(HEALTH_WARN, ss.str()));
       if (detail)
         detail->push_back(make_pair(HEALTH_WARN, ss.str()));