From 99d22c5dfd655c0610596f8cecf38ca309ec1ff4 Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Sun, 2 Dec 2018 18:31:53 +0200 Subject: [PATCH] mgr/osd_perf_query: add query to test all supported subkeys Signed-off-by: Mykola Golub --- src/pybind/mgr/osd_perf_query/module.py | 27 +++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/pybind/mgr/osd_perf_query/module.py b/src/pybind/mgr/osd_perf_query/module.py index 56604d44b844..44f8e1192dd3 100644 --- a/src/pybind/mgr/osd_perf_query/module.py +++ b/src/pybind/mgr/osd_perf_query/module.py @@ -23,7 +23,8 @@ class OSDPerfQuery(MgrModule): COMMANDS = [ { "cmd": "osd perf query add " - "name=query,type=CephChoices,strings=client_id|rbd_image_id", + "name=query,type=CephChoices," + "strings=client_id|rbd_image_id|all_subkeys", "desc": "add osd perf query", "perm": "w" }, @@ -62,14 +63,32 @@ class OSDPerfQuery(MgrModule): ], } + ALL_SUBKEYS_QUERY = { + 'key_descriptor': [ + {'type': 'client_id', 'regex': '^.*$'}, + {'type': 'client_address', 'regex': '^.*$'}, + {'type': 'pool_id', 'regex': '^.*$'}, + {'type': 'namespace', 'regex': '^.*$'}, + {'type': 'osd_id', 'regex': '^.*$'}, + {'type': 'pg_id', 'regex': '^.*$'}, + {'type': 'object_name', 'regex': '^.*$'}, + {'type': 'snap_id', 'regex': '^.*$'}, + ], + 'performance_counter_descriptors': [ + 'write_ops', 'read_ops', + ], + } + queries = {} def handle_command(self, inbuf, cmd): if cmd['prefix'] == "osd perf query add": if cmd['query'] == 'rbd_image_id': query = self.RBD_IMAGE_ID_QUERY - else: + elif cmd['query'] == 'rbd_image_id': query = self.CLIENT_ID_QUERY + else: + query = self.ALL_SUBKEYS_QUERY query_id = self.add_osd_perf_query(query) if query_id is None: return -errno.EINVAL, "", "Invalid query" @@ -94,7 +113,7 @@ class OSDPerfQuery(MgrModule): if query == self.RBD_IMAGE_ID_QUERY: column_names = ["pool_id", "rbd image_id"] else: - column_names = ["client_id"] + column_names = [sk['type'] for sk in query['key_descriptor']] for d in descriptors: desc = d if d in ['write_bytes', 'read_bytes']: @@ -109,7 +128,7 @@ class OSDPerfQuery(MgrModule): if query == self.RBD_IMAGE_ID_QUERY: row = [c['k'][0][0], c['k'][1][1]] else: - row = [c['k'][0][0]] + row = [sk[0] for sk in c['k']] counters = c['c'] for i in range(len(descriptors)): if descriptors[i] in ['write_bytes', 'read_bytes']: -- 2.47.3