From 38489265a63c64f94f9e484f183e22a914e1fc81 Mon Sep 17 00:00:00 2001 From: "Javier M. Mellid" Date: Wed, 10 Feb 2016 17:44:50 +0100 Subject: [PATCH] rgw: add bucket request payment feature usage statistics integration Add usage statistics support for the bucket request payment feature. Fixes: #13834 Signed-off-by: Javier M. Mellid --- src/rgw/rgw_log.cc | 7 ++++++- src/rgw/rgw_usage.cc | 11 ++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/rgw/rgw_log.cc b/src/rgw/rgw_log.cc index c600386f4b32f6..5589cf5e76ad7f 100644 --- a/src/rgw/rgw_log.cc +++ b/src/rgw/rgw_log.cc @@ -195,7 +195,12 @@ static void log_usage(struct req_state *s, const string& op_name) if (!s->err.is_err()) data.successful_ops = 1; - entry.add(op_name, data); + string op_name_with_payer = op_name; + + if (s->bucket_info.requester_pays) + op_name_with_payer.append("_payer_" + s->user.user_id.to_str()); + + entry.add(op_name_with_payer, data); utime_t ts = ceph_clock_now(s->cct); diff --git a/src/rgw/rgw_usage.cc b/src/rgw/rgw_usage.cc index f8495c529e8acf..c3a14411c8060d 100644 --- a/src/rgw/rgw_usage.cc +++ b/src/rgw/rgw_usage.cc @@ -20,7 +20,16 @@ static void dump_usage_categories_info(Formatter *formatter, const rgw_usage_log continue; const rgw_usage_data& usage = uiter->second; formatter->open_object_section("entry"); - formatter->dump_string("category", uiter->first); + string name = uiter->first; + std::size_t pos = name.find("_payer_"); + if (string::npos != pos) { + formatter->dump_string("category", name.substr(0, pos)); + pos += 7; + string payer = name.substr(pos, name.length()); + formatter->dump_string("payer", payer); + } else { + formatter->dump_string("category", name); + } formatter->dump_int("bytes_sent", usage.bytes_sent); formatter->dump_int("bytes_received", usage.bytes_received); formatter->dump_int("ops", usage.ops);