]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/osd_perf_query: add query to test all supported subkeys
authorMykola Golub <mgolub@suse.com>
Sun, 2 Dec 2018 16:31:53 +0000 (18:31 +0200)
committerMykola Golub <mgolub@suse.com>
Tue, 4 Dec 2018 11:20:04 +0000 (11:20 +0000)
Signed-off-by: Mykola Golub <mgolub@suse.com>
src/pybind/mgr/osd_perf_query/module.py

index 56604d44b8445b65856f6c799d178d95de6e2553..44f8e1192dd353fd34dd11091a4a7b767a1b8b8d 100644 (file)
@@ -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']: