From: Igor Fedotov Date: Tue, 26 Jul 2016 16:26:37 +0000 (+0300) Subject: os/bluestore: add store statfs parameters to bluestore perf counters X-Git-Tag: ses5-milestone5~131^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bf5c61a1f76cd12d3cadecfe18f19fc216fa1ba3;p=ceph.git os/bluestore: add store statfs parameters to bluestore perf counters Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index e8548b1f60ca..3923a980340f 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -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); diff --git a/src/os/bluestore/BlueStore.h b/src/os/bluestore/BlueStore.h index 200adcd03802..54ddbdea6bd6 100644 --- a/src/os/bluestore/BlueStore.h +++ b/src/os/bluestore/BlueStore.h @@ -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();