From be6ce973a66aa21b35760dc3b4271e682a4d596b Mon Sep 17 00:00:00 2001 From: Ali Maredia Date: Thu, 19 Oct 2023 20:44:52 +0000 Subject: [PATCH] rgw: remove move's, rename put/get counters, revert exporter changes Signed-off-by: Ali Maredia --- doc/radosgw/metrics.rst | 38 +++++++++++++-------------- src/exporter/DaemonMetricCollector.cc | 7 ++--- src/rgw/rgw_file.cc | 6 ++--- src/rgw/rgw_op.cc | 18 ++++++------- src/rgw/rgw_perf_counters.cc | 20 +++++++------- src/rgw/rgw_perf_counters.h | 12 ++++----- 6 files changed, 49 insertions(+), 52 deletions(-) diff --git a/doc/radosgw/metrics.rst b/doc/radosgw/metrics.rst index 75ef782fa6aa9..dd5c56c1752ab 100644 --- a/doc/radosgw/metrics.rst +++ b/doc/radosgw/metrics.rst @@ -20,22 +20,22 @@ The following metrics related to S3 or Swift operations are tracked per Ceph Obj * - Name - Type - Description - * - put_ops + * - put_obj_ops - Counter - Number of put operations - * - put_b + * - put_obj_bytes - Counter - Number of bytes put - * - put_initial_lat + * - put_obj_lat - Guage - Total latency of put operations - * - get_ops + * - get_obj_ops - Counter - Number of get operations - * - get_b + * - get_obj_bytes - Counter - Number of bytes from get requests - * - get_initial_lat + * - get_obj_lat - Guage - Total latency of get operations * - del_obj_ops @@ -82,16 +82,16 @@ To view op metrics in the Ceph Object Gateway go to the ``rgw_op`` section of th { "labels": {}, "counters": { - "put_ops": 2, - "put_b": 5327, - "put_initial_lat": { + "put_obj_ops": 2, + "put_obj_bytes": 5327, + "put_obj_lat": { "avgcount": 2, "sum": 2.818064835, "avgtime": 1.409032417 }, - "get_ops": 5, - "get_b": 5325, - "get_initial_lat": { + "get_obj_ops": 5, + "get_obj_bytes": 5325, + "get_obj_lat": { "avgcount": 2, "sum": 0.003000069, "avgtime": 0.001500034 @@ -108,7 +108,7 @@ To view op metrics in the Ceph Object Gateway go to the ``rgw_op`` section of th ] Op Metrics Labels --------------------- +----------------- Op metrics can also be tracked per-user or per-bucket. These metrics are exported to Prometheus with labels like Bucket = {name} or User = {userid}:: @@ -119,16 +119,16 @@ Op metrics can also be tracked per-user or per-bucket. These metrics are exporte "Bucket": "bucket1" }, "counters": { - "put_ops": 2, - "put_b": 5327, - "put_initial_lat": { + "put_obj_ops": 2, + "put_obj_bytes": 5327, + "put_obj_lat": { "avgcount": 2, "sum": 2.818064835, "avgtime": 1.409032417 }, - "get_ops": 5, - "get_b": 5325, - "get_initial_lat": { + "get_obj_ops": 5, + "get_obj_bytes": 5325, + "get_obj_lat": { "avgcount": 2, "sum": 0.003000069, "avgtime": 0.001500034 diff --git a/src/exporter/DaemonMetricCollector.cc b/src/exporter/DaemonMetricCollector.cc index 23a0dd550f1c9..ebe85c3041e5a 100644 --- a/src/exporter/DaemonMetricCollector.cc +++ b/src/exporter/DaemonMetricCollector.cc @@ -160,11 +160,8 @@ void DaemonMetricCollector::dump_asok_metrics() { labels.insert(multisite_labels_and_name.first.begin(), multisite_labels_and_name.first.end()); counter_name = multisite_labels_and_name.second; } - auto counters_values_itr = counters_values.find(counter_name_init); - if (counters_values_itr != counters_values.end()) { - auto perf_values = counters_values_itr->value(); - dump_asok_metric(counter_group, perf_values, counter_name, labels); - } + auto perf_values = counters_values.at(counter_name_init); + dump_asok_metric(counter_group, perf_values, counter_name, labels); } } } diff --git a/src/rgw/rgw_file.cc b/src/rgw/rgw_file.cc index ca149ad836b89..045c18cafe2a0 100644 --- a/src/rgw/rgw_file.cc +++ b/src/rgw/rgw_file.cc @@ -1839,7 +1839,7 @@ namespace rgw { ceph_assert(! slo_info); counters = rgw::op_counters::get(state); - rgw::op_counters::inc(counters, l_rgw_op_put, 1); + rgw::op_counters::inc(counters, l_rgw_op_put_obj, 1); op_ret = -EINVAL; if (state->object->empty()) { @@ -1945,7 +1945,7 @@ namespace rgw { real_time appx_t = real_clock::now(); state->obj_size = bytes_written; - rgw::op_counters::inc(counters, l_rgw_op_put_b, state->obj_size); + rgw::op_counters::inc(counters, l_rgw_op_put_obj_b, state->obj_size); // flush data in filters op_ret = filter->process({}, state->obj_size); @@ -2028,7 +2028,7 @@ namespace rgw { } done: - rgw::op_counters::tinc(counters, l_rgw_op_put_lat, state->time_elapsed()); + rgw::op_counters::tinc(counters, l_rgw_op_put_obj_lat, state->time_elapsed()); return op_ret; } /* exec_finish */ diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 29a1f36c0273d..5e0fd42f7da0b 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -1693,7 +1693,7 @@ int RGWGetObj::read_user_manifest_part(rgw::sal::Bucket* bucket, } auto counters = rgw::op_counters::get(s); - rgw::op_counters::inc(counters, l_rgw_op_get_b, cur_end - cur_ofs); + rgw::op_counters::inc(counters, l_rgw_op_get_obj_b, cur_end - cur_ofs); filter->fixup_range(cur_ofs, cur_end); op_ret = read_op->iterate(this, cur_ofs, cur_end, filter, s->yield); if (op_ret >= 0) @@ -1767,7 +1767,7 @@ static int iterate_user_manifest_parts(const DoutPrefixProvider *dpp, } rgw::op_counters::CountersContainer counters; - rgw::op_counters::tinc(counters, l_rgw_op_get_lat, + rgw::op_counters::tinc(counters, l_rgw_op_get_obj_lat, (ceph_clock_now() - start_time)); if (found_start && !handled_end) { @@ -1864,7 +1864,7 @@ static int iterate_slo_parts(const DoutPrefixProvider *dpp, } rgw::op_counters::CountersContainer counters; - rgw::op_counters::tinc(counters, l_rgw_op_get_lat, + rgw::op_counters::tinc(counters, l_rgw_op_get_obj_lat, (ceph_clock_now() - start_time)); if (found_start) { @@ -2213,7 +2213,7 @@ void RGWGetObj::execute(optional_yield y) map::iterator attr_iter; auto counters = rgw::op_counters::get(s); - rgw::op_counters::inc(counters, l_rgw_op_get, 1); + rgw::op_counters::inc(counters, l_rgw_op_get_obj, 1); std::unique_ptr read_op(s->object->get_read_op()); @@ -2411,14 +2411,14 @@ void RGWGetObj::execute(optional_yield y) return; } - rgw::op_counters::inc(counters, l_rgw_op_get_b, end-ofs); + rgw::op_counters::inc(counters, l_rgw_op_get_obj_b, end-ofs); op_ret = read_op->iterate(this, ofs_x, end_x, filter, s->yield); if (op_ret >= 0) op_ret = filter->flush(); - rgw::op_counters::tinc(counters, l_rgw_op_get_lat, s->time_elapsed()); + rgw::op_counters::tinc(counters, l_rgw_op_get_obj_lat, s->time_elapsed()); if (op_ret < 0) { goto done_err; @@ -4030,11 +4030,11 @@ void RGWPutObj::execute(optional_yield y) auto counters = rgw::op_counters::get(s); bool need_calc_md5 = (dlo_manifest == NULL) && (slo_info == NULL); - rgw::op_counters::inc(counters, l_rgw_op_put, 1); + rgw::op_counters::inc(counters, l_rgw_op_put_obj, 1); // report latency on return auto put_lat = make_scope_guard([&] { - rgw::op_counters::tinc(counters, l_rgw_op_put_lat, s->time_elapsed()); + rgw::op_counters::tinc(counters, l_rgw_op_put_obj_lat, s->time_elapsed()); }); op_ret = -EINVAL; @@ -4309,7 +4309,7 @@ void RGWPutObj::execute(optional_yield y) s->obj_size = ofs; s->object->set_obj_size(ofs); - rgw::op_counters::inc(counters, l_rgw_op_put_b, s->obj_size); + rgw::op_counters::inc(counters, l_rgw_op_put_obj_b, s->obj_size); op_ret = do_aws4_auth_completion(); if (op_ret < 0) { diff --git a/src/rgw/rgw_perf_counters.cc b/src/rgw/rgw_perf_counters.cc index f2d245c27d2ed..c3e89211cca6c 100644 --- a/src/rgw/rgw_perf_counters.cc +++ b/src/rgw/rgw_perf_counters.cc @@ -64,13 +64,13 @@ void add_rgw_op_counters(PerfCountersBuilder *lpcb) { // description must match general rgw counters description above lpcb->set_prio_default(PerfCountersBuilder::PRIO_USEFUL); - lpcb->add_u64_counter(l_rgw_op_put, "put_ops", "Puts"); - lpcb->add_u64_counter(l_rgw_op_put_b, "put_b", "Size of puts"); - lpcb->add_time_avg(l_rgw_op_put_lat, "put_initial_lat", "Put latency"); + lpcb->add_u64_counter(l_rgw_op_put_obj, "put_obj_ops", "Puts"); + lpcb->add_u64_counter(l_rgw_op_put_obj_b, "put_obj_bytes", "Size of puts"); + lpcb->add_time_avg(l_rgw_op_put_obj_lat, "put_obj_lat", "Put latency"); - lpcb->add_u64_counter(l_rgw_op_get, "get_ops", "Gets"); - lpcb->add_u64_counter(l_rgw_op_get_b, "get_b", "Size of gets"); - lpcb->add_time_avg(l_rgw_op_get_lat, "get_initial_lat", "Get latency"); + lpcb->add_u64_counter(l_rgw_op_get_obj, "get_obj_ops", "Gets"); + lpcb->add_u64_counter(l_rgw_op_get_obj_b, "get_obj_bytes", "Size of gets"); + lpcb->add_time_avg(l_rgw_op_get_obj_lat, "get_obj_lat", "Get latency"); lpcb->add_u64_counter(l_rgw_op_del_obj, "del_obj_ops", "Delete objects"); lpcb->add_u64_counter(l_rgw_op_del_obj_b, "del_obj_bytes", "Size of delete objects"); @@ -129,18 +129,18 @@ CountersContainer get(req_state *s) { if (user_counters_cache && !s->user->get_id().id.empty()) { if (s->user->get_tenant().empty()) { - key = std::move(ceph::perf_counters::key_create(rgw_op_counters_key, {{"User", s->user->get_id().id}})); + key = ceph::perf_counters::key_create(rgw_op_counters_key, {{"User", s->user->get_id().id}}); } else { - key = std::move(ceph::perf_counters::key_create(rgw_op_counters_key, {{"User", s->user->get_id().id}, {"Tenant", s->user->get_tenant()}})); + key = ceph::perf_counters::key_create(rgw_op_counters_key, {{"User", s->user->get_id().id}, {"Tenant", s->user->get_tenant()}}); } counters.user_counters = user_counters_cache->get(key); } if (bucket_counters_cache && !s->bucket_name.empty()) { if (s->bucket_tenant.empty()) { - key = std::move(ceph::perf_counters::key_create(rgw_op_counters_key, {{"Bucket", s->bucket_name}})); + key = ceph::perf_counters::key_create(rgw_op_counters_key, {{"Bucket", s->bucket_name}}); } else { - key = std::move(ceph::perf_counters::key_create(rgw_op_counters_key, {{"Bucket", s->bucket_name}, {"Tenant", s->bucket_tenant}})); + key = ceph::perf_counters::key_create(rgw_op_counters_key, {{"Bucket", s->bucket_name}, {"Tenant", s->bucket_tenant}}); } counters.bucket_counters = bucket_counters_cache->get(key); } diff --git a/src/rgw/rgw_perf_counters.h b/src/rgw/rgw_perf_counters.h index e9068f4c9ff21..5abd7e44b13d4 100644 --- a/src/rgw/rgw_perf_counters.h +++ b/src/rgw/rgw_perf_counters.h @@ -55,13 +55,13 @@ enum { enum { l_rgw_op_first = 16000, - l_rgw_op_put, - l_rgw_op_put_b, - l_rgw_op_put_lat, + l_rgw_op_put_obj, + l_rgw_op_put_obj_b, + l_rgw_op_put_obj_lat, - l_rgw_op_get, - l_rgw_op_get_b, - l_rgw_op_get_lat, + l_rgw_op_get_obj, + l_rgw_op_get_obj_b, + l_rgw_op_get_obj_lat, l_rgw_op_del_obj, l_rgw_op_del_obj_b, -- 2.39.5