1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
# This file is part of the sos project: https://github.com/sosreport/sos
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# version 2 of the GNU General Public License.
#
# See the LICENSE file in the source distribution for further information.
from sos.report.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin
class pmem(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
"""This plugin collects data from Persistent Memory devices,
commonly referred to as NVDIMM's or Storage Class Memory (SCM)
"""
short_desc = 'Persistent Memory Devices'
plugin_name = 'pmem'
profiles = ('storage', 'hardware', 'memory')
# Utilities can be installed by package or self compiled
packages = ('ndctl', 'daxctl', 'ipmctl')
commands = ('ndctl', 'daxctl', 'ipmctl')
def setup(self):
# Copy the contents of the /etc/ndctl directory
# and /etc/ipmctl.conf file
self.add_copy_spec([
"/etc/ndctl",
"/etc/ipmctl.conf"
])
""" Use the ndctl-list(1) command to collect:
-i Include idle (not enabled) devices in the listing
-vvv Increase verbosity of the output
-B Include bus info in the listing
-D Include dimm info in the listing
-F Include dimm firmware info in the listing
-H Include dimm health info in the listing
-M Include media errors (badblocks) in the listing
-N Include namespace info in the listing
-R Include region info in the listing
-X Include device-dax info in the listing
Output is JSON formatted
"""
self.add_cmd_output([
"ndctl --version",
"ndctl list -vvv",
"ndctl list -iBDFHMNRX",
"ndctl read-labels -j all"
])
""" Use the daxctl-list(1) command to collect:
-i Include idle (not enabled / zero-sized) devices in the listing
-D Include device-dax instance info in the listing
-R Include region info in the listing
Output is JSON formatted
"""
self.add_cmd_output([
"daxctl list",
"daxctl list -iDR"
])
""" Use the ipmctl(1) command to collect data from
Intel(R) Optane(TM) Persistent Memory Modules.
"""
self.add_cmd_output([
"ipmctl version",
"ipmctl show -cap",
"ipmctl show -dimm",
"ipmctl show -a -dimm",
"ipmctl show -dimm -pcd",
"ipmctl show -dimm -performance",
"ipmctl show -error Thermal -dimm",
"ipmctl show -error Media -dimm",
"ipmctl show -event",
"ipmctl show -firmware",
"ipmctl show -memoryresources",
"ipmctl show -preferences",
"ipmctl show -region",
"ipmctl show -sensor",
"ipmctl show -socket",
"ipmctl show -system",
"ipmctl show -system -capabilities",
"ipmctl show -system -host",
"ipmctl show -topology"
])
# vim: set et ts=4 sw=4 :
|