diff options
author | Nikhil Kshirsagar <nkshirsagar@gmail.com> | 2021-12-15 13:47:45 +0530 |
---|---|---|
committer | Jake Hunsaker <jhunsake@redhat.com> | 2022-01-05 10:48:13 -0500 |
commit | 0a9e5dfc6b022b510498131ccc7aebbcbe1ec6b3 (patch) | |
tree | 5d02df84c11fcadc93d65debcb4e3b34645e919c | |
parent | 304c9ef6c1015f1ebe1a8d569c3e16bada4d23f1 (diff) | |
download | sos-0a9e5dfc6b022b510498131ccc7aebbcbe1ec6b3.tar.gz |
[ceph_mds] Collect mds specific data in ceph_mds
Enhance the ceph_mds plugin to collect data specific
to mds nodes.
Related: #1945
Resolves: #2800
Signed-off-by: Nikhil Kshirsagar <nkshirsagar@gmail.com>
-rw-r--r-- | sos/report/plugins/ceph_mds.py | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/sos/report/plugins/ceph_mds.py b/sos/report/plugins/ceph_mds.py index 38ba95c9..c105ee5d 100644 --- a/sos/report/plugins/ceph_mds.py +++ b/sos/report/plugins/ceph_mds.py @@ -25,7 +25,6 @@ class CephMDS(Plugin, RedHatPlugin, UbuntuPlugin): }) self.add_copy_spec([ - "/var/log/ceph.log", "/var/log/ceph/ceph-mds*.log", "/var/lib/ceph/bootstrap-mds/", "/var/lib/ceph/mds/", @@ -45,4 +44,54 @@ class CephMDS(Plugin, RedHatPlugin, UbuntuPlugin): "/etc/ceph/*bindpass*" ]) + ceph_cmds = [ + "cache status", + "client ls", + "config diff", + "config show", + "damage ls", + "dump loads", + "dump tree", + "dump_blocked_ops", + "dump_historic_ops", + "dump_historic_ops_by_duration", + "dump_mempools", + "dump_ops_in_flight", + "get subtrees", + "objecter_requests", + "ops", + "perf histogram dump", + "perf histogram schema", + "perf schema", + "perf dump", + "status", + "version", + "session ls" + ] + + mds_ids = [] + # Get the ceph user processes + out = self.exec_cmd('ps -u ceph -o args') + + if out['status'] == 0: + # Extract the OSD ids from valid output lines + for procs in out['output'].splitlines(): + proc = procs.split() + if len(proc) < 6: + continue + if proc[4] == '--id' and "ceph-mds" in proc[0]: + mds_ids.append("mds.%s" % proc[5]) + + # If containerized, run commands in containers + try: + cname = self.get_all_containers_by_regex("ceph-mds*")[0][1] + except Exception: + cname = None + + self.add_cmd_output([ + "ceph daemon %s %s" + % (mdsid, cmd) for mdsid in mds_ids for cmd in ceph_cmds + ], container=cname) + + # vim: set et ts=4 sw=4 : |