]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: add store statfs parameters to bluestore perf counters
authorIgor Fedotov <ifedotov@mirantis.com>
Tue, 26 Jul 2016 16:26:37 +0000 (19:26 +0300)
committerIgor Fedotov <ifedotov@mirantis.com>
Tue, 26 Jul 2016 16:28:02 +0000 (19:28 +0300)
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
src/os/bluestore/BlueStore.cc
src/os/bluestore/BlueStore.h

index e8548b1f60cab08149cc154073e9fcd838787349..3923a980340f3f58da365bd601ef32bd143a5560 100644 (file)
@@ -1522,10 +1522,30 @@ void BlueStore::_init_logger()
   b.add_u64(l_bluestore_wal_write_ops, "wal_write_ops", "Sum for wal write op");
   b.add_u64(l_bluestore_wal_write_bytes, "wal_write_bytes", "Sum for wal write bytes");
   b.add_u64(l_bluestore_write_penalty_read_ops, " write_penalty_read_ops", "Sum for write penalty read ops");
+  b.add_u64(l_bluestore_allocated, "bluestore_allocated", "Sum for allocated bytes");
+  b.add_u64(l_bluestore_stored, "bluestore_stored", "Sum for stored bytes");
+  b.add_u64(l_bluestore_compressed, "bluestore_compressed", "Sum for stored compressed bytes");
+  b.add_u64(l_bluestore_compressed_allocated, "bluestore_compressed_allocated", "Sum for bytes allocated for compressed data");
+  b.add_u64(l_bluestore_compressed_original, "bluestore_compressed_original", "Sum for original bytes that were compressed");
   logger = b.create_perf_counters();
   g_ceph_context->get_perfcounters_collection()->add(logger);
 }
 
+int BlueStore::_reload_logger()
+{
+  struct store_statfs_t store_statfs;
+
+  int r = statfs(&store_statfs);
+  if(r >= 0) {
+    logger->set(l_bluestore_allocated, store_statfs.allocated);
+    logger->set(l_bluestore_stored, store_statfs.stored);
+    logger->set(l_bluestore_compressed, store_statfs.compressed);
+    logger->set(l_bluestore_compressed_allocated, store_statfs.compressed_allocated);
+    logger->set(l_bluestore_compressed_original, store_statfs.compressed_original);
+  }
+  return r;
+}
+
 void BlueStore::_shutdown_logger()
 {
   g_ceph_context->get_perfcounters_collection()->remove(logger);
@@ -2754,6 +2774,10 @@ int BlueStore::mount()
   if (r < 0)
     goto out_alloc;
 
+  r = _reload_logger();
+  if (r < 0)
+    goto out_coll;
+
   if (bluefs) {
     r = _reconcile_bluefs_freespace();
     if (r < 0)
@@ -4569,6 +4593,12 @@ void BlueStore::_txc_update_store_statfs(TransContext *txc)
   if (txc->statfs_delta.is_empty())
     return;
 
+  logger->inc(l_bluestore_allocated, txc->statfs_delta.allocated());
+  logger->inc(l_bluestore_stored, txc->statfs_delta.stored());
+  logger->inc(l_bluestore_compressed, txc->statfs_delta.compressed());
+  logger->inc(l_bluestore_compressed_allocated, txc->statfs_delta.compressed_allocated());
+  logger->inc(l_bluestore_compressed_original, txc->statfs_delta.compressed_original());
+
   bufferlist bl;
   txc->statfs_delta.encode(bl);
 
index 200adcd038025494c34692377c5d73c3875f86a0..54ddbdea6bd6c541606d7ce5cb3ad835176180db 100644 (file)
@@ -61,6 +61,11 @@ enum {
   l_bluestore_wal_write_ops,
   l_bluestore_wal_write_bytes,
   l_bluestore_write_penalty_read_ops,
+  l_bluestore_allocated,
+  l_bluestore_stored,
+  l_bluestore_compressed,
+  l_bluestore_compressed_allocated,
+  l_bluestore_compressed_original,
   l_bluestore_last
 };
 
@@ -1191,6 +1196,7 @@ private:
 
   void _init_logger();
   void _shutdown_logger();
+  int _reload_logger();
 
   int _open_path();
   void _close_path();