aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 :