aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNikhil Kshirsagar <nkshirsagar@gmail.com>2021-12-15 13:47:45 +0530
committerJake Hunsaker <jhunsake@redhat.com>2022-01-05 10:48:13 -0500
commit0a9e5dfc6b022b510498131ccc7aebbcbe1ec6b3 (patch)
tree5d02df84c11fcadc93d65debcb4e3b34645e919c
parent304c9ef6c1015f1ebe1a8d569c3e16bada4d23f1 (diff)
downloadsos-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.py51
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 :