From: Sage Weil Date: Mon, 9 Sep 2013 23:36:22 +0000 (-0700) Subject: osd: expose bytes used/avail via perf / asok X-Git-Tag: v0.71~143^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=deea63f7a8fa3b37e247eec55acbef7fb99b446b;p=ceph.git osd: expose bytes used/avail via perf / asok This values are already sent to the monitor. Expose them via the admin socket too so collectd/diamond/whatever can pick them up. Signed-off-by: Sage Weil --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index b7782471f598..faf826248252 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1462,6 +1462,10 @@ void OSD::create_logger() osd_plb.add_u64_counter(l_osd_waiting_for_map, "messages_delayed_for_map"); // dup osdmap epochs + osd_plb.add_u64(l_osd_stat_bytes, "stat_bytes"); + osd_plb.add_u64(l_osd_stat_bytes_used, "stat_bytes_used"); + osd_plb.add_u64(l_osd_stat_bytes_avail, "stat_bytes_avail"); + logger = osd_plb.create_perf_counters(); cct->get_perfcounters_collection()->add(logger); } @@ -2590,9 +2594,17 @@ void OSD::update_osd_stat() struct statfs stbuf; store->statfs(&stbuf); - osd_stat.kb = stbuf.f_blocks * stbuf.f_bsize / 1024; - osd_stat.kb_used = (stbuf.f_blocks - stbuf.f_bfree) * stbuf.f_bsize / 1024; - osd_stat.kb_avail = stbuf.f_bavail * stbuf.f_bsize / 1024; + uint64_t bytes = stbuf.f_blocks * stbuf.f_bsize; + uint64_t used = (stbuf.f_blocks - stbuf.f_bfree) * stbuf.f_bsize; + uint64_t avail = stbuf.f_bavail * stbuf.f_bsize; + + osd_stat.kb = bytes >> 10; + osd_stat.kb_used = used >> 10; + osd_stat.kb_avail = avail >> 10; + + logger->set(l_osd_stat_bytes, bytes); + logger->set(l_osd_stat_bytes_used, used); + logger->set(l_osd_stat_bytes_avail, avail); osd_stat.hb_in.clear(); for (map::iterator p = heartbeat_peers.begin(); p != heartbeat_peers.end(); ++p) diff --git a/src/osd/OSD.h b/src/osd/OSD.h index e537249e8d66..239ce88dcb32 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -115,6 +115,10 @@ enum { l_osd_waiting_for_map, + l_osd_stat_bytes, + l_osd_stat_bytes_used, + l_osd_stat_bytes_avail, + l_osd_last, };