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);
if (r < 0)
goto out_alloc;
+ r = _reload_logger();
+ if (r < 0)
+ goto out_coll;
+
if (bluefs) {
r = _reconcile_bluefs_freespace();
if (r < 0)
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);
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
};
void _init_logger();
void _shutdown_logger();
+ int _reload_logger();
int _open_path();
void _close_path();