From 8167352772984cb94f5f0cfc31631b09ee06b02d Mon Sep 17 00:00:00 2001 From: Iury Gregory Melo Ferreira Date: Mon, 8 Apr 2019 13:24:34 +0200 Subject: [PATCH] Updates for Prometheus Exporter - Split requirements in test-requirements and requirements - Update .gitignore - Initial Parser for IPMI metrics that was collected and tests (This will be added in another PR: Cable, Drive, Processor, Battery, Module, Entity, Add-in, Critical, Voltage, OS, Event, Physical) - Update Prometheus Driver to generate files with the metrics in prometheus format - Create simple driver to be used when we want to collect sample of data --- .gitignore | 2 + ironic_prometheus_exporter/messaging.py | 40 +- .../parsers/__init__.py | 0 ironic_prometheus_exporter/parsers/ipmi.py | 616 +++++ ironic_prometheus_exporter/parsers/manager.py | 26 + ironic_prometheus_exporter/tests/data.json | 2348 +++++++++++++++++ ironic_prometheus_exporter/tests/data2.json | 2348 +++++++++++++++++ .../tests/test_driver.py | 64 +- .../tests/test_ipmi_parser.py | 124 + requirements.txt | 4 +- setup.cfg | 1 + test-requirements.txt | 3 + tox.ini | 4 +- 13 files changed, 5562 insertions(+), 18 deletions(-) create mode 100644 ironic_prometheus_exporter/parsers/__init__.py create mode 100644 ironic_prometheus_exporter/parsers/ipmi.py create mode 100644 ironic_prometheus_exporter/parsers/manager.py create mode 100644 ironic_prometheus_exporter/tests/data.json create mode 100644 ironic_prometheus_exporter/tests/data2.json create mode 100644 ironic_prometheus_exporter/tests/test_ipmi_parser.py create mode 100644 test-requirements.txt diff --git a/.gitignore b/.gitignore index f5e0225..bff8e24 100644 --- a/.gitignore +++ b/.gitignore @@ -126,3 +126,5 @@ dmypy.json # End of https://www.gitignore.io/api/python .stestr/ +AUTHORS +ChangeLog diff --git a/ironic_prometheus_exporter/messaging.py b/ironic_prometheus_exporter/messaging.py index e3bb27c..7cc57d8 100644 --- a/ironic_prometheus_exporter/messaging.py +++ b/ironic_prometheus_exporter/messaging.py @@ -1,12 +1,13 @@ import os -import json +from ironic_prometheus_exporter.parsers import manager from oslo_config import cfg from oslo_messaging.notify import notifier + prometheus_opts = [ - cfg.StrOpt('file_path', required=True, - help='Path for the json file where the metrics will be stored.') + cfg.StrOpt('files_dir', required=True, + help='Directory where the files will be written.') ] @@ -18,13 +19,32 @@ class PrometheusFileDriver(notifier.Driver): """Publish notifications into a File to be used by Prometheus""" def __init__(self, conf, topics, transport): - self.file_path = conf.oslo_messaging_notifications.file_path - if not self.file_path.endswith('.json'): - raise Exception('The file should end with .json') - if not os.path.exists(os.path.dirname(self.file_path)): - os.makedirs(os.path.dirname(self.file_path)) + self.files_dir = conf.oslo_messaging_notifications.files_dir + if not os.path.exists(self.files_dir): + os.makedirs(os.path.dirname(self.files_dir)) super(PrometheusFileDriver, self).__init__(conf, topics, transport) def notify(self, ctxt, message, priority, retry): - with open(self.file_path, 'w') as prometheus_file: - json.dump(message, prometheus_file) + try: + node_parser_manager = manager.ParserManager(message) + node_metrics = node_parser_manager.merge_information() + node_name = message['payload']['node_name'] + node_file = open(os.path.join(self.files_dir, node_name), 'w') + node_file.write(node_metrics) + node_file.close() + except Exception as e: + print(e) + + +class SimpleFileDriver(notifier.Driver): + + def __init__(self, conf, topics, transport): + self.files_dir = conf.oslo_messaging_notifications.files_dir + if not os.path.exists(self.files_dir): + os.makedirs(os.path.dirname(self.files_dir)) + super(SimpleFileDriver, self).__init__(conf, topics, transport) + + def notify(self, ctx, message, priority, retry): + file = open(os.path.join(self.files_dir, 'simplefile'), 'w') + file.write(message) + file.close() diff --git a/ironic_prometheus_exporter/parsers/__init__.py b/ironic_prometheus_exporter/parsers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ironic_prometheus_exporter/parsers/ipmi.py b/ironic_prometheus_exporter/parsers/ipmi.py new file mode 100644 index 0000000..6889559 --- /dev/null +++ b/ironic_prometheus_exporter/parsers/ipmi.py @@ -0,0 +1,616 @@ +import re + +# NOTE (iurygregory): most of the sensor readings come in the ipmi format +# each type of sensor consider a different range of values that aren't integers +# (eg: 0h, 2eh), 0h will be published as 0 and the other values as 1, this way +# we will be able to create prometheus alerts. +# Documentation: https://www.intel.com/content/www/us/en/servers/ipmi/ +# ipmi-second-gen-interface-spec-v2-rev1-1.html + + +def add_prometheus_type(name, metric_type): + return '# TYPE %s %s' % (name, metric_type) + + +class Management(object): + + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_' + metric_dic = {} + for entry in self.payload: + e = entry.lower().split() + label = '_'.join(e[:-1]) + metric_name = prefix + label + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + if self.payload[entry]['Sensor Reading'] == "0h": + entries_values[entry] = 0 + else: + entries_values[entry] = 1 + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) + + +class Temperature(object): + + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_' + sufix = 'temp_celcius' + metric_dic = {} + for entry in self.payload: + e = entry.split()[0] + label = e.lower() + metric_name = prefix + sufix + if label not in sufix: + metric_name = prefix + label + "_" + sufix + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + value = self.payload[entry]['Sensor Reading'].split() + if not re.search(r'(\d+(\.\d*)?|\.\d+)', value[0]): + raise Exception("No valid value in Sensor Reading") + entries_values[entry] = value[0] + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) + + +class System(object): + + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_system_' + metric_dic = {} + for entry in self.payload: + e = entry.lower().split() + label = '_'.join(e[:-1]) + metric_name = prefix + label + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + if self.payload[entry]['Sensor Reading'] == 'No Reading': + entries_values[entry] = None + else: + if self.payload[entry]['Sensor Reading'] == "0h": + entries_values[entry] = 0 + else: + entries_values[entry] = 1 + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + if values[e] is None: + continue + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) + + +class Current(object): + + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_' + metric_dic = {} + for entry in self.payload: + e = re.sub(r'[\d]', '', entry.lower()).split() + label = '_'.join(e[:-1]) + sufix = '_' + self.payload[entry]['Sensor Reading'].split()[-1] + metric_name = prefix + label + sufix.lower() + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + value = self.payload[entry]['Sensor Reading'].split() + if not re.search(r'(\d+(\.\d*)?|\.\d+)', value[0]): + raise Exception("No valid value in Sensor Reading") + entries_values[entry] = value[0] + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) + + +class Version(object): + + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_' + metric_dic = {} + for entry in self.payload: + e = entry.lower().split() + label = '_'.join(e[:-1]) + metric_name = prefix + label + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + if self.payload[entry]['Sensor Reading'] == 'No Reading': + entries_values[entry] = None + else: + if self.payload[entry]['Sensor Reading'] == "0h": + entries_values[entry] = 0 + else: + entries_values[entry] = 1 + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + if values[e] is None: + continue + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) + + +class Memory(object): + + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_' + metric_dic = {} + for entry in self.payload: + e = entry.lower().split() + label = '_'.join(e[:-1]) + if 'memory' not in label: + label = 'memory_' + label + metric_name = prefix + label.replace('-', '_') + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + if self.payload[entry]['Sensor Reading'] == 'No Reading': + entries_values[entry] = None + else: + if self.payload[entry]['Sensor Reading'] == "0h": + entries_values[entry] = 0 + else: + entries_values[entry] = 1 + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + if values[e] is None: + continue + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) + + +class Power(object): + + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_power_' + metric_dic = {} + for entry in self.payload: + e = entry.lower().split() + label = '_'.join(e[:-1]) + metric_name = prefix + label.replace('-', '_') + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + no_values = ['No Reading', 'Disabled'] + if self.payload[entry]['Sensor Reading'] in no_values: + entries_values[entry] = None + else: + if self.payload[entry]['Sensor Reading'] == "0h": + entries_values[entry] = 0 + else: + entries_values[entry] = 1 + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + if values[e] is None: + continue + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) + + +class Watchdog2(object): + + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_' + metric_dic = {} + for entry in self.payload: + e = entry.lower().split() + label = '_'.join(e[:-1]) + metric_name = prefix + label.replace('-', '_') + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + no_values = ['No Reading', 'Disabled'] + if self.payload[entry]['Sensor Reading'] in no_values: + entries_values[entry] = None + else: + if self.payload[entry]['Sensor Reading'] == "0h": + entries_values[entry] = 0 + else: + entries_values[entry] = 1 + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + if values[e] is None: + continue + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) + + +class Fan(object): + def __init__(self, payload, node_name): + self.payload = payload + self.node_name = node_name + + def _metric_names(self): + prefix = 'baremetal_' + metric_dic = {} + for entry in self.payload: + sufix = '' + e = re.sub(r'[\d].*$', '', entry.lower()) + e = re.sub(r'[\(\)]', '', e).split() + label = '_'.join(e) + label_unit = self.payload[entry]['Sensor Reading'].split() + if len(label_unit) > 1: + sufix = '_' + label_unit[-1].lower() + metric_name = prefix + label.replace('-', '_') + sufix + if metric_name in metric_dic: + metric_dic[metric_name].append(entry) + else: + metric_dic[metric_name] = [entry] + return metric_dic + + def _extract_labels(self, entries): + deafult_label = 'node_name="%s"' % self.node_name + if len(entries) == 1: + return {entries[0]: '{%s}' % deafult_label} + entries_labels = {} + for entry in entries: + try: + sensor = self.payload[entry]['Sensor ID'].split() + sensor_id = str(int(re.sub(r'[\(\)]', '', sensor[-1]), 0)) + metric_label = [deafult_label, + 'sensor="%s"' % (sensor[0] + sensor_id)] + entries_labels[entry] = '{%s}' % ','.join(metric_label) + except Exception as e: + print(e) + return entries_labels + + def _extract_values(self, entries): + entries_values = {} + for entry in entries: + try: + no_values = ['No Reading', 'Disabled'] + if self.payload[entry]['Sensor Reading'] in no_values: + entries_values[entry] = None + else: + values = self.payload[entry]['Sensor Reading'].split() + if len(values) > 1: + entries_values[entry] = values[0] + elif values[0] == "0h": + entries_values[entry] = 0 + else: + entries_values[entry] = 1 + except Exception as e: + print(e) + return entries_values + + def prometheus_format(self): + prometheus_info = [] + available_metrics = self._metric_names() + + for metric in available_metrics: + prometheus_info.append(add_prometheus_type(metric, 'gauge')) + entries = available_metrics[metric] + labels = self._extract_labels(entries) + values = self._extract_values(entries) + for e in entries: + if values[e] is None: + continue + prometheus_info.append("%s%s %s" % (metric, labels[e], + values[e])) + return '\n'.join(prometheus_info) diff --git a/ironic_prometheus_exporter/parsers/manager.py b/ironic_prometheus_exporter/parsers/manager.py new file mode 100644 index 0000000..33ed22c --- /dev/null +++ b/ironic_prometheus_exporter/parsers/manager.py @@ -0,0 +1,26 @@ +from ironic_prometheus_exporter.parsers import ipmi + + +class ParserManager(object): + + def __init__(self, data): + + node_name = data['payload']['node_name'] + payload = data['payload']['payload'] + self.ipmi_objects = [ + ipmi.Management(payload['Management'], node_name), + ipmi.Temperature(payload['Temperature'], node_name), + ipmi.System(payload['System'], node_name), + ipmi.Current(payload['Current'], node_name), + ipmi.Version(payload['Version'], node_name), + ipmi.Memory(payload['Memory'], node_name), + ipmi.Power(payload['Power'], node_name), + ipmi.Watchdog2(payload['Watchdog2'], node_name), + ipmi.Fan(payload['Fan'], node_name) + ] + + def merge_information(self): + info = '' + for obj in self.ipmi_objects: + info += obj.prometheus_format() + '\n' + return info.rstrip('\n') diff --git a/ironic_prometheus_exporter/tests/data.json b/ironic_prometheus_exporter/tests/data.json new file mode 100644 index 0000000..50c6518 --- /dev/null +++ b/ironic_prometheus_exporter/tests/data.json @@ -0,0 +1,2348 @@ +{ + "priority": "INFO", + "event_type": "hardware.ipmi.metrics", + "timestamp": "2019-03-29 20:12:26.885347", + "publisher_id": "None.localhost.localdomain", + "payload": { + "instance_uuid": "ac2aa2fd-6e1a-41c8-a114-2084c8705228", + "node_uuid": "ac2aa2fd-6e1a-41c8-a114-2084c8705228", + "event_type": "hardware.ipmi.metrics.update", + "timestamp": "2019-03-29T20:12:22.989020", + "node_name": "knilab-master-u9", + "message_id": "85d6b2c8-fe57-432d-868a-330e0e28cf34", + "payload": { + "Management": { + "Front LED Panel (0x23)": { + "Sensor ID": "Front LED Panel (0x23)", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Management Subsys Health", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Management Subsys Health (0x28)", + "Sensor Reading": "0h", + "OEM": "0" + } + }, + "Temperature": { + "Inlet Temp (0x5)": { + "Sensor ID": "Inlet Temp (0x5)", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr- unc+ ucr+", + "Deassertions Enabled": "lnc- lcr- unc+ ucr+", + "Readable Thresholds": "lcr lnc unc ucr", + "Settable Thresholds": "lnc unc", + "Status": "ok", + "Sensor Reading": "21 (+/- 1) degrees C", + "Event Message Control": "Per-threshold", + "Upper non-critical": "42.000", + "Positive Hysteresis": "2.000", + "Negative Hysteresis": "2.000", + "Threshold Read Mask": "lcr lnc unc ucr", + "Maximum sensor range": "Unspecified", + "Minimum sensor range": "Unspecified", + "Assertion Events": "", + "Normal Minimum": "11.000", + "Sensor Type (Threshold)": "Temperature (0x01)", + "Lower critical": "-7.000", + "Lower non-critical": "3.000", + "Normal Maximum": "69.000", + "Upper critical": "47.000", + "Nominal Reading": "23.000" + }, + "Exhaust Temp (0x6)": { + "Status": "ok", + "Normal Maximum": "69.000", + "Nominal Reading": "23.000", + "Sensor Reading": "36 (+/- 1) degrees C", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "", + "Normal Minimum": "11.000", + "Upper non-critical": "70.000", + "Event Message Control": "Per-threshold", + "Positive Hysteresis": "1.000", + "Sensor ID": "Exhaust Temp (0x6)", + "Sensor Type (Threshold)": "Temperature (0x01)", + "Lower critical": "3.000", + "Negative Hysteresis": "1.000", + "Lower non-critical": "8.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc unc ucr", + "Upper critical": "75.000", + "Settable Thresholds": "", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "Temp (0x1)": { + "Status": "ok", + "Normal Maximum": "69.000", + "Nominal Reading": "23.000", + "Sensor Reading": "44 (+/- 1) degrees C", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "lcr- ucr+", + "Normal Minimum": "11.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "1.000", + "Sensor ID": "Temp (0x1)", + "Sensor Type (Threshold)": "Temperature (0x01)", + "Lower critical": "3.000", + "Deassertions Enabled": "lcr- ucr+", + "Threshold Read Mask": "lcr ucr", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "No Thresholds", + "Upper critical": "83.000", + "Settable Thresholds": "No Thresholds", + "Negative Hysteresis": "1.000", + "Assertion Events": "" + }, + "Temp (0x2)": { + "Status": "ok", + "Normal Maximum": "69.000", + "Nominal Reading": "23.000", + "Sensor Reading": "43 (+/- 1) degrees C", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "lcr- ucr+", + "Normal Minimum": "11.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "1.000", + "Sensor ID": "Temp (0x2)", + "Sensor Type (Threshold)": "Temperature (0x01)", + "Lower critical": "3.000", + "Deassertions Enabled": "lcr- ucr+", + "Threshold Read Mask": "lcr ucr", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "No Thresholds", + "Upper critical": "83.000", + "Settable Thresholds": "No Thresholds", + "Negative Hysteresis": "1.000", + "Assertion Events": "" + } + }, + "Unknown": { + "MSR Info Log (0x28)": { + "Sensor ID": "MSR Info Log (0x28)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "QPI Link Err (0x29)": { + "Sensor ID": "QPI Link Err (0x29)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Memory Config (0x44)": { + "Sensor ID": "Memory Config (0x44)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "2fh" + }, + "NonFatalPCIErARI (0x3e)": { + "Sensor ID": "NonFatalPCIErARI (0x3e)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "4eh" + }, + "FatalPCIExpEr (0x3f)": { + "Sensor ID": "FatalPCIExpEr (0x3f)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc3)", + "OEM": "0", + "Sensor Reading": "4dh" + }, + "Redundancy (0x79)": { + "Sensor ID": "Redundancy (0x79)", + "Entity ID": "11.3 (Add-in Card)", + "Assertions Enabled": "Unknown", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc9)", + "Sensor Reading": "Disabled", + "OEM": "0", + "Assertion Events": "Unknown" + }, + "LT/Flex Addr (0x25)": { + "Sensor ID": "LT/Flex Addr (0x25)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan2A Status (0xe4)": { + "Sensor ID": "Fan2A Status (0xe4)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "MRC Warning (0x36)": { + "Sensor ID": "MRC Warning (0x36)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc8)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "SD2 (0x7b)": { + "Sensor ID": "SD2 (0x7b)", + "Entity ID": "11.3 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc9)", + "OEM": "0", + "Sensor Reading": "Disabled" + }, + "Non Fatal PCI Er (0x26)": { + "Sensor ID": "Non Fatal PCI Er (0x26)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan4A Status (0xe8)": { + "Sensor ID": "Fan4A Status (0xe8)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan6B Status (0xed)": { + "Sensor ID": "Fan6B Status (0xed)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "SD1 (0x7a)": { + "Sensor ID": "SD1 (0x7a)", + "Entity ID": "11.3 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc9)", + "OEM": "0", + "Sensor Reading": "Disabled" + }, + "Fatal IO Error (0x27)": { + "Sensor ID": "Fatal IO Error (0x27)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc3)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan3B Status (0xe7)": { + "Sensor ID": "Fan3B Status (0xe7)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Link Warning (0x33)": { + "Sensor ID": "Link Warning (0x33)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NonFatalPCIExpEr (0x40)": { + "Sensor ID": "NonFatalPCIExpEr (0x40)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "2eh" + }, + "CPU Link Info (0x42)": { + "Sensor ID": "CPU Link Info (0x42)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "2eh" + }, + "NVDIMM Warning (0x46)": { + "Sensor ID": "NVDIMM Warning (0x46)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "2eh" + }, + "Fan2B Status (0xe5)": { + "Sensor ID": "Fan2B Status (0xe5)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "QPIRC Warning (0x31)": { + "Sensor ID": "QPIRC Warning (0x31)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc8)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan8B Status (0xf1)": { + "Sensor ID": "Fan8B Status (0xf1)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Chipset Info (0x43)": { + "Sensor ID": "Chipset Info (0x43)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "31h" + }, + "Fan5B Status (0xeb)": { + "Sensor ID": "Fan5B Status (0xeb)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Link Error (0x34)": { + "Sensor ID": "Link Error (0x34)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc3)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Link Warning (0x32)": { + "Sensor ID": "Link Warning (0x32)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Additional Info (0x2e)": { + "Sensor ID": "Additional Info (0x2e)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "CPU TDP (0x2f)": { + "Sensor ID": "CPU TDP (0x2f)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan6A Status (0xec)": { + "Sensor ID": "Fan6A Status (0xec)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NonFatalPCIErBus (0x39)": { + "Sensor ID": "NonFatalPCIErBus (0x39)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "4eh" + }, + "Fan1A Status (0xe2)": { + "Sensor ID": "Fan1A Status (0xe2)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "QPIRC Warning (0x30)": { + "Sensor ID": "QPIRC Warning (0x30)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc8)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NonFatalSSDEr (0x3b)": { + "Sensor ID": "NonFatalSSDEr (0x3b)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "53h" + }, + "Fan7B Status (0xef)": { + "Sensor ID": "Fan7B Status (0xef)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan1B Status (0xe3)": { + "Sensor ID": "Fan1B Status (0xe3)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "MRC Warning (0x35)": { + "Sensor ID": "MRC Warning (0x35)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc8)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan3A Status (0xe6)": { + "Sensor ID": "Fan3A Status (0xe6)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NVDIMM Error (0x47)": { + "Sensor ID": "NVDIMM Error (0x47)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc3)", + "OEM": "0", + "Sensor Reading": "2eh" + }, + "Fan4B Status (0xe9)": { + "Sensor ID": "Fan4B Status (0xe9)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan8A Status (0xf0)": { + "Sensor ID": "Fan8A Status (0xf0)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NVDIMM Info (0x48)": { + "Sensor ID": "NVDIMM Info (0x48)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc4)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Power Optimized (0x75)": { + "Sensor ID": "Power Optimized (0x75)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc0)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan7A Status (0xee)": { + "Sensor ID": "Fan7A Status (0xee)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan5A Status (0xea)": { + "Sensor ID": "Fan5A Status (0xea)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Err Reg Pointer (0x1a)": { + "Sensor ID": "Err Reg Pointer (0x1a)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "No Reading" + } + }, + "System": { + "POST Err (0x1e)": { + "Sensor ID": "POST Err (0x1e)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "System Firmwares (0x0f)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "Unknown (0x8)": { + "States Asserted": "System Event", + "Sensor ID": "Unknown (0x8)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "System Event (0x12)", + "Sensor Reading": "0h", + "OEM": "0" + } + }, + "Current": { + "Current 2 (0x6c)": { + "Status": "ok", + "Sensor Reading": "0.600 (+/- 0) Amps", + "Entity ID": "10.2 (Power Supply)", + "Assertions Enabled": "", + "Event Message Control": "Per-threshold", + "Normal Maximum": "0.000", + "Positive Hysteresis": "Unspecified", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Current (0x03)", + "Negative Hysteresis": "Unspecified", + "Nominal Reading": "0.000", + "Readable Thresholds": "No Thresholds", + "Sensor ID": "Current 2 (0x6c)", + "Settable Thresholds": "No Thresholds", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "Current 1 (0x6b)": { + "Status": "ok", + "Sensor Reading": "0.600 (+/- 0) Amps", + "Entity ID": "10.1 (Power Supply)", + "Assertions Enabled": "", + "Event Message Control": "Per-threshold", + "Normal Maximum": "0.000", + "Positive Hysteresis": "Unspecified", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Current (0x03)", + "Negative Hysteresis": "Unspecified", + "Nominal Reading": "0.000", + "Readable Thresholds": "No Thresholds", + "Sensor ID": "Current 1 (0x6b)", + "Settable Thresholds": "No Thresholds", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "Pwr Consumption (0x76)": { + "Status": "ok", + "Normal Maximum": "1056.000", + "Sensor Reading": "264 (+/- 0) Watts", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+ ucr+", + "Event Message Control": "Per-threshold", + "Upper non-critical": "1738.000", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "Unspecified", + "Sensor ID": "Pwr Consumption (0x76)", + "Sensor Type (Threshold)": "Current (0x03)", + "Readable Thresholds": "unc ucr", + "Deassertions Enabled": "unc+ ucr+", + "Nominal Reading": "1034.000", + "Maximum sensor range": "5588.000", + "Upper critical": "1914.000", + "Settable Thresholds": "unc", + "Negative Hysteresis": "Unspecified", + "Assertion Events": "" + } + }, + "Version": { + "Hdwr version err (0x1f)": { + "Sensor ID": "Hdwr version err (0x1f)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Version Change (0x2b)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "Chassis Mismatch (0x37)": { + "States Asserted": "Version Change", + "Sensor ID": "Chassis Mismatch (0x37)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Version Change (0x2b)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "TPM Presence (0x41)": { + "States Asserted": "Version Change", + "Sensor ID": "TPM Presence (0x41)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Version Change (0x2b)", + "Sensor Reading": "2eh", + "OEM": "0" + } + }, + "Memory": { + "Mem ECC Warning (0x1b)": { + "Sensor ID": "Mem ECC Warning (0x1b)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "POST Pkg Repair (0x45)": { + "States Asserted": "Memory", + "Sensor ID": "POST Pkg Repair (0x45)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "2eh", + "OEM": "0" + }, + "iDPT Mem Fail (0x2b)": { + "States Asserted": "Memory", + "Sensor ID": "iDPT Mem Fail (0x2b)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "Memory Spared (0x11)": { + "States Asserted": "Memory", + "Sensor ID": "Memory Spared (0x11)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "Memory Mirrored (0x12)": { + "States Asserted": "Memory", + "Sensor ID": "Memory Mirrored (0x12)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "USB Over-current (0x1d)": { + "Sensor ID": "USB Over-current (0x1d)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "ECC Uncorr Err (0x2)": { + "States Asserted": "Memory", + "Sensor ID": "ECC Uncorr Err (0x2)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "abh", + "OEM": "0" + }, + "B (0xd6)": { + "States Asserted": "Memory", + "Sensor ID": "B (0xd6)", + "Entity ID": "32.1 (Memory Device)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Memory" + }, + "A (0xca)": { + "States Asserted": "Memory", + "Sensor ID": "A (0xca)", + "Entity ID": "32.1 (Memory Device)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Memory" + }, + "ECC Corr Err (0x1)": { + "States Asserted": "Memory", + "Sensor ID": "ECC Corr Err (0x1)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "ach", + "OEM": "0" + } + }, + "Other": { + "CPU Usage (0x80)": { + "Status": "ok", + "Normal Maximum": "102.000", + "Sensor Reading": "0 (+/- 0) percent", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+", + "Normal Minimum": "10.000", + "Upper non-critical": "101.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "2.000", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Other (0x0b)", + "Deassertions Enabled": "unc-", + "Nominal Reading": "10.000", + "Readable Thresholds": "unc", + "Sensor ID": "CPU Usage (0x80)", + "Settable Thresholds": "unc", + "Negative Hysteresis": "2.000", + "Assertion Events": "" + }, + "Unresp sensor (0xfe)": { + "Sensor ID": "Unresp sensor (0xfe)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Other (0x0b)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "SYS Usage (0x7f)": { + "Status": "ok", + "Normal Maximum": "102.000", + "Sensor Reading": "0 (+/- 0) percent", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+", + "Normal Minimum": "10.000", + "Upper non-critical": "101.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "2.000", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Other (0x0b)", + "Deassertions Enabled": "unc-", + "Nominal Reading": "10.000", + "Readable Thresholds": "unc", + "Sensor ID": "SYS Usage (0x7f)", + "Settable Thresholds": "unc", + "Negative Hysteresis": "2.000", + "Assertion Events": "" + }, + "IO Usage (0x7d)": { + "Status": "ok", + "Normal Maximum": "102.000", + "Sensor Reading": "0 (+/- 0) percent", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+", + "Normal Minimum": "10.000", + "Upper non-critical": "101.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "2.000", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Other (0x0b)", + "Deassertions Enabled": "unc-", + "Nominal Reading": "10.000", + "Readable Thresholds": "unc", + "Sensor ID": "IO Usage (0x7d)", + "Settable Thresholds": "unc", + "Negative Hysteresis": "2.000", + "Assertion Events": "" + }, + "MEM Usage (0x7e)": { + "Status": "ok", + "Normal Maximum": "102.000", + "Sensor Reading": "0 (+/- 0) percent", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+", + "Normal Minimum": "10.000", + "Upper non-critical": "101.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "2.000", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Other (0x0b)", + "Deassertions Enabled": "unc-", + "Nominal Reading": "10.000", + "Readable Thresholds": "unc", + "Sensor ID": "MEM Usage (0x7e)", + "Settable Thresholds": "unc", + "Negative Hysteresis": "2.000", + "Assertion Events": "" + } + }, + "Power": { + "Status (0x86)": { + "States Asserted": "Power Supply", + "Sensor Reading": "0h", + "Entity ID": "10.2 (Power Supply)", + "Assertions Enabled": "Power Supply", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Power Supply", + "Sensor Type (Discrete)": "Power Supply (0x08)", + "Sensor ID": "Status (0x86)", + "OEM": "0", + "Assertion Events": "Power Supply" + }, + "Status (0x85)": { + "States Asserted": "Power Supply", + "Sensor Reading": "0h", + "Entity ID": "10.1 (Power Supply)", + "Assertions Enabled": "Power Supply", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Power Supply", + "Sensor Type (Discrete)": "Power Supply (0x08)", + "Sensor ID": "Status (0x85)", + "OEM": "0", + "Assertion Events": "Power Supply" + }, + "PS Redundancy (0x77)": { + "Sensor ID": "PS Redundancy (0x77)", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Power Supply", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Power Supply (0x08)", + "Sensor Reading": "Disabled", + "OEM": "0", + "Assertion Events": "Power Supply" + } + }, + "Watchdog2": { + "OS Watchdog (0x71)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Watchdog2", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Watchdog2", + "Sensor Type (Discrete)": "Watchdog2 (0x23)", + "Sensor ID": "OS Watchdog (0x71)", + "OEM": "0" + }, + "OS Watchdog Time (0x23)": { + "Sensor ID": "OS Watchdog Time (0x23)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Watchdog2 (0x23)", + "OEM": "0", + "Sensor Reading": "0h" + } + }, + "Fan": { + "Fan4A (0x3b)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9960 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan4A (0x3b)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan1B (0x40)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan1B (0x40)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan8B (0x47)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan8B (0x47)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan3A (0x3a)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan3A (0x3a)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan2A (0x39)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan2A (0x39)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan6B (0x45)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan6B (0x45)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan5A (0x3c)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9720 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan5A (0x3c)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan3B (0x42)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan3B (0x42)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan7A (0x3e)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan7A (0x3e)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan7B (0x46)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan7B (0x46)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan Redundancy (0x78)": { + "States Asserted": "Fan", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Fan", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Fan (0x04)", + "Sensor ID": "Fan Redundancy (0x78)", + "OEM": "0", + "Assertion Events": "Fan" + }, + "Fan4B (0x43)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5880 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan4B (0x43)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan1A (0x38)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan1A (0x38)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan6A (0x3d)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan6A (0x3d)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan2B (0x41)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan2B (0x41)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan5B (0x44)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5640 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan5B (0x44)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan8A (0x3f)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9240 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan8A (0x3f)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + } + }, + "Cable": { + "Signal Cable (0x5f)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Signal Cable (0x5f)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable PCIe B2 (0xbf)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe B2 (0xbf)", + "OEM": "0" + }, + "Cable PCIe B1 (0xbd)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe B1 (0xbd)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Riser 2 Presence (0x4e)": { + "States Asserted": "Cable / Interconnect", + "Sensor ID": "Riser 2 Presence (0x4e)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Power JBP1 (0x5e)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Power JBP1 (0x5e)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Intrusion Cable (0x51)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Intrusion Cable (0x51)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable PCIe B0 (0xc9)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe B0 (0xc9)", + "OEM": "0" + }, + "Cable PCIe A0 (0xc8)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe A0 (0xc8)", + "OEM": "0" + }, + "Cable SAS A0 (0xc0)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS A0 (0xc0)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS B2 (0xc5)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS B2 (0xc5)", + "OEM": "0" + }, + "Cable SAS B0 (0xc7)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS B0 (0xc7)", + "OEM": "0" + }, + "Cable PCIe B0 (0xbb)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe B0 (0xbb)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS B0 (0xc1)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS B0 (0xc1)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Signal Cable (0x5d)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Signal Cable (0x5d)", + "OEM": "0" + }, + "Cable PCIe A2 (0xbe)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe A2 (0xbe)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable PCIe A1 (0xbc)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe A1 (0xbc)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS A0 (0xc6)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS A0 (0xc6)", + "OEM": "0" + }, + "Cable PCIe A0 (0xba)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe A0 (0xba)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Riser Config Err (0x6f)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Riser Config Err (0x6f)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS B1 (0xc3)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS B1 (0xc3)", + "OEM": "0" + }, + "VGA Cable Pres (0x52)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "VGA Cable Pres (0x52)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS A1 (0xc2)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS A1 (0xc2)", + "OEM": "0" + }, + "Riser 1 Presence (0x4d)": { + "States Asserted": "Cable / Interconnect", + "Sensor ID": "Riser 1 Presence (0x4d)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Power JBP2 (0x60)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.3 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Power JBP2 (0x60)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS A2 (0xc4)": { + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS A2 (0xc4)", + "OEM": "0" + }, + "Power Cable (0x5c)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Power Cable (0x5c)", + "OEM": "0" + } + }, + "Drive": { + "Drive 0 (0x98)": { + "States Asserted": "Drive Slot / Bay", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Drive Slot / Bay", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Drive Slot / Bay", + "Sensor Type (Discrete)": "Drive Slot / Bay (0x0d)", + "Sensor ID": "Drive 0 (0x98)", + "OEM": "0", + "Assertion Events": "Drive Slot / Bay" + } + }, + "Processor": { + "Status (0x82)": { + "States Asserted": "Processor", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Processor", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Processor", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor ID": "Status (0x82)", + "OEM": "0", + "Assertion Events": "Processor" + }, + "Status (0x81)": { + "States Asserted": "Processor", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Processor", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Processor", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor ID": "Status (0x81)", + "OEM": "0", + "Assertion Events": "Processor" + }, + "CPU Protocol Err (0xa)": { + "States Asserted": "Processor", + "Sensor ID": "CPU Protocol Err (0xa)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "CPUMachineCheck (0x3c)": { + "States Asserted": "Processor", + "Sensor ID": "CPUMachineCheck (0x3c)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor Reading": "51h", + "OEM": "0" + }, + "CPU Machine Chk (0xd)": { + "States Asserted": "Processor", + "Sensor ID": "CPU Machine Chk (0xd)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor Reading": "0h", + "OEM": "0" + } + }, + "Battery": { + "CMOS Battery (0x87)": { + "States Asserted": "Battery", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Battery", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Battery", + "Sensor Type (Discrete)": "Battery (0x29)", + "Sensor ID": "CMOS Battery (0x87)", + "OEM": "0", + "Assertion Events": "Battery" + }, + "NVDIMM Battery (0x6a)": { + "Sensor Reading": "Disabled", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Battery", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Battery", + "Sensor Type (Discrete)": "Battery (0x29)", + "Sensor ID": "NVDIMM Battery (0x6a)", + "OEM": "0", + "Assertion Events": "Battery" + }, + "ROMB Battery (0x88)": { + "Sensor Reading": "Disabled", + "Entity ID": "11.2 (Add-in Card)", + "Assertions Enabled": "Battery", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Battery", + "Sensor Type (Discrete)": "Battery (0x29)", + "Sensor ID": "ROMB Battery (0x88)", + "OEM": "0", + "Assertion Events": "Battery" + } + }, + "Module": { + "SD (0x7c)": { + "Sensor ID": "SD (0x7c)", + "Entity ID": "11.4 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Module / Board (0x15)", + "OEM": "0", + "Sensor Reading": "Disabled" + } + }, + "Entity": { + "Dedicated NIC (0x70)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Dedicated NIC (0x70)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "BP0 Presence (0x59)": { + "States Asserted": "Entity Presence", + "Sensor ID": "BP0 Presence (0x59)", + "Entity ID": "26.1 (Disk Drive Bay)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "CP Right Pres (0x57)": { + "States Asserted": "Entity Presence", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Entity Presence", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Entity Presence", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor ID": "CP Right Pres (0x57)", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "TPM Presence (0x54)": { + "States Asserted": "Entity Presence", + "Sensor ID": "TPM Presence (0x54)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x49)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x49)", + "Entity ID": "10.2 (Power Supply)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x66)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x66)", + "Entity ID": "3.1 (Processor)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x67)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x67)", + "Entity ID": "3.2 (Processor)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "BP1 Presence (0x5a)": { + "States Asserted": "Entity Presence", + "Sensor ID": "BP1 Presence (0x5a)", + "Entity ID": "26.2 (Disk Drive Bay)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x58)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x58)", + "Entity ID": "11.2 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x4a)": { + "States Asserted": "Entity Presence", + "Sensor Reading": "0h", + "Entity ID": "11.1 (Add-in Card)", + "Assertions Enabled": "Entity Presence", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor ID": "Presence (0x4a)", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "CP Left Pres (0x56)": { + "States Asserted": "Entity Presence", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Entity Presence", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Entity Presence", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor ID": "CP Left Pres (0x56)", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x4b)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x4b)", + "Entity ID": "11.3 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x4c)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x4c)", + "Entity ID": "11.4 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x48)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x48)", + "Entity ID": "10.1 (Power Supply)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + } + }, + "Add-in": { + "Status (0x53)": { + "Sensor ID": "Status (0x53)", + "Entity ID": "11.5 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Add-in Card (0x17)", + "OEM": "0", + "Sensor Reading": "0h" + } + }, + "Critical": { + "Chipset Err (0x19)": { + "Sensor ID": "Chipset Err (0x19)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "PCIE Fatal Err (0x18)": { + "Sensor ID": "PCIE Fatal Err (0x18)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "PCI System Err (0x5)": { + "States Asserted": "Critical Interrupt", + "Sensor ID": "PCI System Err (0x5)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor Reading": "95h", + "OEM": "0" + }, + "PCIe Slot3 (0x8d)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Critical Interrupt", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Critical Interrupt", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor ID": "PCIe Slot3 (0x8d)", + "OEM": "0" + }, + "FatalPCIErARI (0x3d)": { + "States Asserted": "Critical Interrupt", + "Sensor ID": "FatalPCIErARI (0x3d)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor Reading": "4eh", + "OEM": "0" + }, + "Fatal PCI SSD Er (0x3a)": { + "States Asserted": "Critical Interrupt", + "Sensor ID": "Fatal PCI SSD Er (0x3a)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor Reading": "4fh", + "OEM": "0" + }, + "PCIe Slot1 (0x8b)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Critical Interrupt", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Critical Interrupt", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor ID": "PCIe Slot1 (0x8b)", + "OEM": "0" + }, + "PCIe Slot2 (0x8c)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Critical Interrupt", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Critical Interrupt", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor ID": "PCIe Slot2 (0x8c)", + "OEM": "0" + }, + "FatalPCIErrOnBus (0x38)": { + "States Asserted": "Critical Interrupt", + "Sensor ID": "FatalPCIErrOnBus (0x38)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor Reading": "4eh", + "OEM": "0" + }, + "PCI Parity Err (0x4)": { + "Sensor ID": "PCI Parity Err (0x4)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "OEM": "0", + "Sensor Reading": "No Reading" + } + }, + "Voltage": { + "VCCIO PG (0x34)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VCCIO PG (0x34)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "Voltage 1 (0x6d)": { + "Status": "ok", + "Sensor Reading": "208 (+/- 0) Volts", + "Entity ID": "10.1 (Power Supply)", + "Assertions Enabled": "", + "Event Message Control": "Per-threshold", + "Normal Maximum": "0.000", + "Positive Hysteresis": "Unspecified", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Voltage (0x02)", + "Negative Hysteresis": "Unspecified", + "Nominal Reading": "0.000", + "Readable Thresholds": "No Thresholds", + "Sensor ID": "Voltage 1 (0x6d)", + "Settable Thresholds": "No Thresholds", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "DIMM PG (0x7)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "DIMM PG (0x7)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "PS1 PG FAIL (0x9)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "PS1 PG FAIL (0x9)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VPP PG (0x28)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VPP PG (0x28)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VPP PG (0x32)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VPP PG (0x32)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VDDQ PG (0x2e)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VDDQ PG (0x2e)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VCORE PG (0x35)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VCORE PG (0x35)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VTT PG (0x29)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VTT PG (0x29)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "PVNN SW PG (0x11)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "PVNN SW PG (0x11)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "3.3V B PG (0x15)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "3.3V B PG (0x15)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VSBM SW PG (0x13)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VSBM SW PG (0x13)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "2.5V SW PG (0xf)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "2.5V SW PG (0xf)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VTT PG (0x33)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VTT PG (0x33)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VPP PG (0x25)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VPP PG (0x25)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VSA PG (0x37)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VSA PG (0x37)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "5V SW PG (0x10)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "5V SW PG (0x10)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "3.3V A PG (0x14)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "3.3V A PG (0x14)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "Pfault Fail Safe (0x74)": { + "Sensor ID": "Pfault Fail Safe (0x74)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "VCORE PG (0x2b)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VCORE PG (0x2b)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "PS2 PG FAIL (0xa)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "PS2 PG FAIL (0xa)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "FIVR PG (0x36)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "FIVR PG (0x36)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VDDQ PG (0x24)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VDDQ PG (0x24)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VDDQ PG (0x31)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VDDQ PG (0x31)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "BP0 PG (0xb)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "BP0 PG (0xb)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "BP1 PG (0xc)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "BP1 PG (0xc)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VDDQ PG (0x27)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VDDQ PG (0x27)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VCCIO PG (0x2a)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VCCIO PG (0x2a)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "FIVR PG (0x2c)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "FIVR PG (0x2c)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "1.8V SW PG (0xe)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "1.8V SW PG (0xe)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "Voltage 2 (0x6e)": { + "Status": "ok", + "Sensor Reading": "208 (+/- 0) Volts", + "Entity ID": "10.2 (Power Supply)", + "Assertions Enabled": "", + "Event Message Control": "Per-threshold", + "Normal Maximum": "0.000", + "Positive Hysteresis": "Unspecified", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Voltage (0x02)", + "Negative Hysteresis": "Unspecified", + "Nominal Reading": "0.000", + "Readable Thresholds": "No Thresholds", + "Sensor ID": "Voltage 2 (0x6e)", + "Settable Thresholds": "No Thresholds", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "VSB11 SW PG (0x12)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VSB11 SW PG (0x12)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VPP PG (0x2f)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VPP PG (0x2f)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VSA PG (0x2d)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VSA PG (0x2d)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VTT PG (0x26)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VTT PG (0x26)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "BP2 PG (0xd)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "BP2 PG (0xd)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "NDC PG (0x8)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "NDC PG (0x8)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VTT PG (0x30)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VTT PG (0x30)", + "OEM": "0", + "Assertion Events": "Voltage" + } + }, + "OS": { + "TXT Status (0x2a)": { + "States Asserted": "OS Critical Stop", + "Sensor ID": "TXT Status (0x2a)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "OS Critical Stop (0x20)", + "Sensor Reading": "0h", + "OEM": "0" + } + }, + "Event": { + "SBE Log Disabled (0x6)": { + "States Asserted": "Event Logging Disabled", + "Sensor ID": "SBE Log Disabled (0x6)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Event Logging Disabled (0x10)", + "Sensor Reading": "a4h", + "OEM": "0" + }, + "SEL (0x72)": { + "Sensor ID": "SEL (0x72)", + "Entity ID": "0.1 (Unspecified)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Event Logging Disabled (0x10)", + "OEM": "0", + "Sensor Reading": "No Reading" + } + }, + "Physical": { + "Intrusion (0x73)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Physical Security", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Physical Security", + "Sensor Type (Discrete)": "Physical Security (0x05)", + "Sensor ID": "Intrusion (0x73)", + "OEM": "0" + } + } + } + }, + "message_id": "2c0da1e8-1958-484f-9bdd-9117d717f7fa" +} diff --git a/ironic_prometheus_exporter/tests/data2.json b/ironic_prometheus_exporter/tests/data2.json new file mode 100644 index 0000000..8347861 --- /dev/null +++ b/ironic_prometheus_exporter/tests/data2.json @@ -0,0 +1,2348 @@ +{ + "priority": "INFO", + "event_type": "hardware.ipmi.metrics", + "timestamp": "2019-03-29 20:12:26.885347", + "publisher_id": "None.localhost.localdomain", + "payload": { + "instance_uuid": "ac2aa2fd-6e1a-41c8-a114-2084c8705228", + "node_uuid": "ac2aa2fd-6e1a-41c8-a114-2084c8705228", + "event_type": "hardware.ipmi.metrics.update", + "timestamp": "2019-03-29T20:22:22.989020", + "node_name": "knilab-master-u8", + "message_id": "85d6b2c8-fe57-432d-868a-330e0e28cf34", + "payload": { + "Management": { + "Front LED Panel (0x23)": { + "Sensor ID": "Front LED Panel (0x23)", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Management Subsys Health", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Management Subsys Health (0x28)", + "Sensor Reading": "0h", + "OEM": "0" + } + }, + "Temperature": { + "Inlet Temp (0x5)": { + "Sensor ID": "Inlet Temp (0x5)", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr- unc+ ucr+", + "Deassertions Enabled": "lnc- lcr- unc+ ucr+", + "Readable Thresholds": "lcr lnc unc ucr", + "Settable Thresholds": "lnc unc", + "Status": "ok", + "Sensor Reading": "21 (+/- 1) degrees C", + "Event Message Control": "Per-threshold", + "Upper non-critical": "42.000", + "Positive Hysteresis": "2.000", + "Negative Hysteresis": "2.000", + "Threshold Read Mask": "lcr lnc unc ucr", + "Maximum sensor range": "Unspecified", + "Minimum sensor range": "Unspecified", + "Assertion Events": "", + "Normal Minimum": "11.000", + "Sensor Type (Threshold)": "Temperature (0x01)", + "Lower critical": "-7.000", + "Lower non-critical": "3.000", + "Normal Maximum": "69.000", + "Upper critical": "47.000", + "Nominal Reading": "23.000" + }, + "Exhaust Temp (0x6)": { + "Status": "ok", + "Normal Maximum": "69.000", + "Nominal Reading": "23.000", + "Sensor Reading": "36 (+/- 1) degrees C", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "", + "Normal Minimum": "11.000", + "Upper non-critical": "70.000", + "Event Message Control": "Per-threshold", + "Positive Hysteresis": "1.000", + "Sensor ID": "Exhaust Temp (0x6)", + "Sensor Type (Threshold)": "Temperature (0x01)", + "Lower critical": "3.000", + "Negative Hysteresis": "1.000", + "Lower non-critical": "8.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc unc ucr", + "Upper critical": "75.000", + "Settable Thresholds": "", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "Temp (0x1)": { + "Status": "ok", + "Normal Maximum": "69.000", + "Nominal Reading": "23.000", + "Sensor Reading": "44 (+/- 1) degrees C", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "lcr- ucr+", + "Normal Minimum": "11.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "1.000", + "Sensor ID": "Temp (0x1)", + "Sensor Type (Threshold)": "Temperature (0x01)", + "Lower critical": "3.000", + "Deassertions Enabled": "lcr- ucr+", + "Threshold Read Mask": "lcr ucr", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "No Thresholds", + "Upper critical": "83.000", + "Settable Thresholds": "No Thresholds", + "Negative Hysteresis": "1.000", + "Assertion Events": "" + }, + "Temp (0x2)": { + "Status": "ok", + "Normal Maximum": "69.000", + "Nominal Reading": "23.000", + "Sensor Reading": "43 (+/- 1) degrees C", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "lcr- ucr+", + "Normal Minimum": "11.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "1.000", + "Sensor ID": "Temp (0x2)", + "Sensor Type (Threshold)": "Temperature (0x01)", + "Lower critical": "3.000", + "Deassertions Enabled": "lcr- ucr+", + "Threshold Read Mask": "lcr ucr", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "No Thresholds", + "Upper critical": "83.000", + "Settable Thresholds": "No Thresholds", + "Negative Hysteresis": "1.000", + "Assertion Events": "" + } + }, + "Unknown": { + "MSR Info Log (0x28)": { + "Sensor ID": "MSR Info Log (0x28)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "QPI Link Err (0x29)": { + "Sensor ID": "QPI Link Err (0x29)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Memory Config (0x44)": { + "Sensor ID": "Memory Config (0x44)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "2fh" + }, + "NonFatalPCIErARI (0x3e)": { + "Sensor ID": "NonFatalPCIErARI (0x3e)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "4eh" + }, + "FatalPCIExpEr (0x3f)": { + "Sensor ID": "FatalPCIExpEr (0x3f)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc3)", + "OEM": "0", + "Sensor Reading": "4dh" + }, + "Redundancy (0x79)": { + "Sensor ID": "Redundancy (0x79)", + "Entity ID": "11.3 (Add-in Card)", + "Assertions Enabled": "Unknown", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc9)", + "Sensor Reading": "Disabled", + "OEM": "0", + "Assertion Events": "Unknown" + }, + "LT/Flex Addr (0x25)": { + "Sensor ID": "LT/Flex Addr (0x25)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan2A Status (0xe4)": { + "Sensor ID": "Fan2A Status (0xe4)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "MRC Warning (0x36)": { + "Sensor ID": "MRC Warning (0x36)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc8)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "SD2 (0x7b)": { + "Sensor ID": "SD2 (0x7b)", + "Entity ID": "11.3 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc9)", + "OEM": "0", + "Sensor Reading": "Disabled" + }, + "Non Fatal PCI Er (0x26)": { + "Sensor ID": "Non Fatal PCI Er (0x26)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan4A Status (0xe8)": { + "Sensor ID": "Fan4A Status (0xe8)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan6B Status (0xed)": { + "Sensor ID": "Fan6B Status (0xed)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "SD1 (0x7a)": { + "Sensor ID": "SD1 (0x7a)", + "Entity ID": "11.3 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc9)", + "OEM": "0", + "Sensor Reading": "Disabled" + }, + "Fatal IO Error (0x27)": { + "Sensor ID": "Fatal IO Error (0x27)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc3)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan3B Status (0xe7)": { + "Sensor ID": "Fan3B Status (0xe7)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Link Warning (0x33)": { + "Sensor ID": "Link Warning (0x33)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NonFatalPCIExpEr (0x40)": { + "Sensor ID": "NonFatalPCIExpEr (0x40)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "2eh" + }, + "CPU Link Info (0x42)": { + "Sensor ID": "CPU Link Info (0x42)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "2eh" + }, + "NVDIMM Warning (0x46)": { + "Sensor ID": "NVDIMM Warning (0x46)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "2eh" + }, + "Fan2B Status (0xe5)": { + "Sensor ID": "Fan2B Status (0xe5)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "QPIRC Warning (0x31)": { + "Sensor ID": "QPIRC Warning (0x31)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc8)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan8B Status (0xf1)": { + "Sensor ID": "Fan8B Status (0xf1)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Chipset Info (0x43)": { + "Sensor ID": "Chipset Info (0x43)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "31h" + }, + "Fan5B Status (0xeb)": { + "Sensor ID": "Fan5B Status (0xeb)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Link Error (0x34)": { + "Sensor ID": "Link Error (0x34)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc3)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Link Warning (0x32)": { + "Sensor ID": "Link Warning (0x32)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Additional Info (0x2e)": { + "Sensor ID": "Additional Info (0x2e)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "CPU TDP (0x2f)": { + "Sensor ID": "CPU TDP (0x2f)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan6A Status (0xec)": { + "Sensor ID": "Fan6A Status (0xec)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NonFatalPCIErBus (0x39)": { + "Sensor ID": "NonFatalPCIErBus (0x39)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "4eh" + }, + "Fan1A Status (0xe2)": { + "Sensor ID": "Fan1A Status (0xe2)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "QPIRC Warning (0x30)": { + "Sensor ID": "QPIRC Warning (0x30)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc8)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NonFatalSSDEr (0x3b)": { + "Sensor ID": "NonFatalSSDEr (0x3b)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc2)", + "OEM": "0", + "Sensor Reading": "53h" + }, + "Fan7B Status (0xef)": { + "Sensor ID": "Fan7B Status (0xef)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan1B Status (0xe3)": { + "Sensor ID": "Fan1B Status (0xe3)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "MRC Warning (0x35)": { + "Sensor ID": "MRC Warning (0x35)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc8)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan3A Status (0xe6)": { + "Sensor ID": "Fan3A Status (0xe6)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NVDIMM Error (0x47)": { + "Sensor ID": "NVDIMM Error (0x47)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc3)", + "OEM": "0", + "Sensor Reading": "2eh" + }, + "Fan4B Status (0xe9)": { + "Sensor ID": "Fan4B Status (0xe9)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan8A Status (0xf0)": { + "Sensor ID": "Fan8A Status (0xf0)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "NVDIMM Info (0x48)": { + "Sensor ID": "NVDIMM Info (0x48)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc4)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Power Optimized (0x75)": { + "Sensor ID": "Power Optimized (0x75)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc0)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan7A Status (0xee)": { + "Sensor ID": "Fan7A Status (0xee)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Fan5A Status (0xea)": { + "Sensor ID": "Fan5A Status (0xea)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xca)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "Err Reg Pointer (0x1a)": { + "Sensor ID": "Err Reg Pointer (0x1a)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Unknown (0xc1)", + "OEM": "0", + "Sensor Reading": "No Reading" + } + }, + "System": { + "POST Err (0x1e)": { + "Sensor ID": "POST Err (0x1e)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "System Firmwares (0x0f)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "Unknown (0x8)": { + "States Asserted": "System Event", + "Sensor ID": "Unknown (0x8)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "System Event (0x12)", + "Sensor Reading": "0h", + "OEM": "0" + } + }, + "Current": { + "Current 2 (0x6c)": { + "Status": "ok", + "Sensor Reading": "0.600 (+/- 0) Amps", + "Entity ID": "10.2 (Power Supply)", + "Assertions Enabled": "", + "Event Message Control": "Per-threshold", + "Normal Maximum": "0.000", + "Positive Hysteresis": "Unspecified", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Current (0x03)", + "Negative Hysteresis": "Unspecified", + "Nominal Reading": "0.000", + "Readable Thresholds": "No Thresholds", + "Sensor ID": "Current 2 (0x6c)", + "Settable Thresholds": "No Thresholds", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "Current 1 (0x6b)": { + "Status": "ok", + "Sensor Reading": "0.600 (+/- 0) Amps", + "Entity ID": "10.1 (Power Supply)", + "Assertions Enabled": "", + "Event Message Control": "Per-threshold", + "Normal Maximum": "0.000", + "Positive Hysteresis": "Unspecified", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Current (0x03)", + "Negative Hysteresis": "Unspecified", + "Nominal Reading": "0.000", + "Readable Thresholds": "No Thresholds", + "Sensor ID": "Current 1 (0x6b)", + "Settable Thresholds": "No Thresholds", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "Pwr Consumption (0x76)": { + "Status": "ok", + "Normal Maximum": "1056.000", + "Sensor Reading": "264 (+/- 0) Watts", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+ ucr+", + "Event Message Control": "Per-threshold", + "Upper non-critical": "1738.000", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "Unspecified", + "Sensor ID": "Pwr Consumption (0x76)", + "Sensor Type (Threshold)": "Current (0x03)", + "Readable Thresholds": "unc ucr", + "Deassertions Enabled": "unc+ ucr+", + "Nominal Reading": "1034.000", + "Maximum sensor range": "5588.000", + "Upper critical": "1914.000", + "Settable Thresholds": "unc", + "Negative Hysteresis": "Unspecified", + "Assertion Events": "" + } + }, + "Version": { + "Hdwr version err (0x1f)": { + "Sensor ID": "Hdwr version err (0x1f)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Version Change (0x2b)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "Chassis Mismatch (0x37)": { + "States Asserted": "Version Change", + "Sensor ID": "Chassis Mismatch (0x37)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Version Change (0x2b)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "TPM Presence (0x41)": { + "States Asserted": "Version Change", + "Sensor ID": "TPM Presence (0x41)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Version Change (0x2b)", + "Sensor Reading": "2eh", + "OEM": "0" + } + }, + "Memory": { + "Mem ECC Warning (0x1b)": { + "Sensor ID": "Mem ECC Warning (0x1b)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "POST Pkg Repair (0x45)": { + "States Asserted": "Memory", + "Sensor ID": "POST Pkg Repair (0x45)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "2eh", + "OEM": "0" + }, + "iDPT Mem Fail (0x2b)": { + "States Asserted": "Memory", + "Sensor ID": "iDPT Mem Fail (0x2b)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "Memory Spared (0x11)": { + "States Asserted": "Memory", + "Sensor ID": "Memory Spared (0x11)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "Memory Mirrored (0x12)": { + "States Asserted": "Memory", + "Sensor ID": "Memory Mirrored (0x12)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "USB Over-current (0x1d)": { + "Sensor ID": "USB Over-current (0x1d)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "ECC Uncorr Err (0x2)": { + "States Asserted": "Memory", + "Sensor ID": "ECC Uncorr Err (0x2)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "abh", + "OEM": "0" + }, + "B (0xd6)": { + "States Asserted": "Memory", + "Sensor ID": "B (0xd6)", + "Entity ID": "32.1 (Memory Device)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Memory" + }, + "A (0xca)": { + "States Asserted": "Memory", + "Sensor ID": "A (0xca)", + "Entity ID": "32.1 (Memory Device)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Memory" + }, + "ECC Corr Err (0x1)": { + "States Asserted": "Memory", + "Sensor ID": "ECC Corr Err (0x1)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Memory (0x0c)", + "Sensor Reading": "ach", + "OEM": "0" + } + }, + "Other": { + "CPU Usage (0x80)": { + "Status": "ok", + "Normal Maximum": "102.000", + "Sensor Reading": "0 (+/- 0) percent", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+", + "Normal Minimum": "10.000", + "Upper non-critical": "101.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "2.000", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Other (0x0b)", + "Deassertions Enabled": "unc-", + "Nominal Reading": "10.000", + "Readable Thresholds": "unc", + "Sensor ID": "CPU Usage (0x80)", + "Settable Thresholds": "unc", + "Negative Hysteresis": "2.000", + "Assertion Events": "" + }, + "Unresp sensor (0xfe)": { + "Sensor ID": "Unresp sensor (0xfe)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Other (0x0b)", + "OEM": "0", + "Sensor Reading": "0h" + }, + "SYS Usage (0x7f)": { + "Status": "ok", + "Normal Maximum": "102.000", + "Sensor Reading": "0 (+/- 0) percent", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+", + "Normal Minimum": "10.000", + "Upper non-critical": "101.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "2.000", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Other (0x0b)", + "Deassertions Enabled": "unc-", + "Nominal Reading": "10.000", + "Readable Thresholds": "unc", + "Sensor ID": "SYS Usage (0x7f)", + "Settable Thresholds": "unc", + "Negative Hysteresis": "2.000", + "Assertion Events": "" + }, + "IO Usage (0x7d)": { + "Status": "ok", + "Normal Maximum": "102.000", + "Sensor Reading": "0 (+/- 0) percent", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+", + "Normal Minimum": "10.000", + "Upper non-critical": "101.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "2.000", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Other (0x0b)", + "Deassertions Enabled": "unc-", + "Nominal Reading": "10.000", + "Readable Thresholds": "unc", + "Sensor ID": "IO Usage (0x7d)", + "Settable Thresholds": "unc", + "Negative Hysteresis": "2.000", + "Assertion Events": "" + }, + "MEM Usage (0x7e)": { + "Status": "ok", + "Normal Maximum": "102.000", + "Sensor Reading": "0 (+/- 0) percent", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "unc+", + "Normal Minimum": "10.000", + "Upper non-critical": "101.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "2.000", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Other (0x0b)", + "Deassertions Enabled": "unc-", + "Nominal Reading": "10.000", + "Readable Thresholds": "unc", + "Sensor ID": "MEM Usage (0x7e)", + "Settable Thresholds": "unc", + "Negative Hysteresis": "2.000", + "Assertion Events": "" + } + }, + "Power": { + "Status (0x86)": { + "States Asserted": "Power Supply", + "Sensor Reading": "0h", + "Entity ID": "10.2 (Power Supply)", + "Assertions Enabled": "Power Supply", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Power Supply", + "Sensor Type (Discrete)": "Power Supply (0x08)", + "Sensor ID": "Status (0x86)", + "OEM": "0", + "Assertion Events": "Power Supply" + }, + "Status (0x85)": { + "States Asserted": "Power Supply", + "Sensor Reading": "0h", + "Entity ID": "10.1 (Power Supply)", + "Assertions Enabled": "Power Supply", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Power Supply", + "Sensor Type (Discrete)": "Power Supply (0x08)", + "Sensor ID": "Status (0x85)", + "OEM": "0", + "Assertion Events": "Power Supply" + }, + "PS Redundancy (0x77)": { + "Sensor ID": "PS Redundancy (0x77)", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Power Supply", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Power Supply (0x08)", + "Sensor Reading": "Disabled", + "OEM": "0", + "Assertion Events": "Power Supply" + } + }, + "Watchdog2": { + "OS Watchdog (0x71)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Watchdog2", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Watchdog2", + "Sensor Type (Discrete)": "Watchdog2 (0x23)", + "Sensor ID": "OS Watchdog (0x71)", + "OEM": "0" + }, + "OS Watchdog Time (0x23)": { + "Sensor ID": "OS Watchdog Time (0x23)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Watchdog2 (0x23)", + "OEM": "0", + "Sensor Reading": "0h" + } + }, + "Fan": { + "Fan4A (0x3b)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9960 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan4A (0x3b)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan1B (0x40)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan1B (0x40)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan8B (0x47)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan8B (0x47)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan3A (0x3a)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan3A (0x3a)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan2A (0x39)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan2A (0x39)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan6B (0x45)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan6B (0x45)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan5A (0x3c)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9720 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan5A (0x3c)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan3B (0x42)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan3B (0x42)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan7A (0x3e)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan7A (0x3e)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan7B (0x46)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan7B (0x46)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan Redundancy (0x78)": { + "States Asserted": "Fan", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Fan", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Fan (0x04)", + "Sensor ID": "Fan Redundancy (0x78)", + "OEM": "0", + "Assertion Events": "Fan" + }, + "Fan4B (0x43)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5880 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan4B (0x43)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan1A (0x38)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan1A (0x38)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan6A (0x3d)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9360 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan6A (0x3d)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan2B (0x41)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5520 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan2B (0x41)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan5B (0x44)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "6720.000", + "Sensor Reading": "5640 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan5B (0x44)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + }, + "Fan8A (0x3f)": { + "Status": "ok", + "Normal Maximum": "23640.000", + "Nominal Reading": "10080.000", + "Sensor Reading": "9240 (+/- 120) RPM", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "lnc- lcr-", + "Normal Minimum": "16680.000", + "Event Message Control": "Per-threshold", + "Minimum sensor range": "Unspecified", + "Positive Hysteresis": "120.000", + "Sensor Type (Threshold)": "Fan (0x04)", + "Lower critical": "600.000", + "Deassertions Enabled": "lnc- lcr-", + "Lower non-critical": "840.000", + "Maximum sensor range": "Unspecified", + "Readable Thresholds": "lcr lnc", + "Sensor ID": "Fan8A (0x3f)", + "Settable Thresholds": "", + "Threshold Read Mask": "lcr lnc", + "Negative Hysteresis": "120.000", + "Assertion Events": "" + } + }, + "Cable": { + "Signal Cable (0x5f)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Signal Cable (0x5f)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable PCIe B2 (0xbf)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe B2 (0xbf)", + "OEM": "0" + }, + "Cable PCIe B1 (0xbd)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe B1 (0xbd)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Riser 2 Presence (0x4e)": { + "States Asserted": "Cable / Interconnect", + "Sensor ID": "Riser 2 Presence (0x4e)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Power JBP1 (0x5e)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Power JBP1 (0x5e)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Intrusion Cable (0x51)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Intrusion Cable (0x51)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable PCIe B0 (0xc9)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe B0 (0xc9)", + "OEM": "0" + }, + "Cable PCIe A0 (0xc8)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe A0 (0xc8)", + "OEM": "0" + }, + "Cable SAS A0 (0xc0)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS A0 (0xc0)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS B2 (0xc5)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS B2 (0xc5)", + "OEM": "0" + }, + "Cable SAS B0 (0xc7)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS B0 (0xc7)", + "OEM": "0" + }, + "Cable PCIe B0 (0xbb)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe B0 (0xbb)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS B0 (0xc1)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS B0 (0xc1)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Signal Cable (0x5d)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Signal Cable (0x5d)", + "OEM": "0" + }, + "Cable PCIe A2 (0xbe)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe A2 (0xbe)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable PCIe A1 (0xbc)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe A1 (0xbc)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS A0 (0xc6)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS A0 (0xc6)", + "OEM": "0" + }, + "Cable PCIe A0 (0xba)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable PCIe A0 (0xba)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Riser Config Err (0x6f)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Riser Config Err (0x6f)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS B1 (0xc3)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS B1 (0xc3)", + "OEM": "0" + }, + "VGA Cable Pres (0x52)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "VGA Cable Pres (0x52)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS A1 (0xc2)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS A1 (0xc2)", + "OEM": "0" + }, + "Riser 1 Presence (0x4d)": { + "States Asserted": "Cable / Interconnect", + "Sensor ID": "Riser 1 Presence (0x4d)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Power JBP2 (0x60)": { + "States Asserted": "Cable / Interconnect", + "Sensor Reading": "0h", + "Entity ID": "26.3 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Power JBP2 (0x60)", + "OEM": "0", + "Assertion Events": "Cable / Interconnect" + }, + "Cable SAS A2 (0xc4)": { + "Sensor Reading": "0h", + "Entity ID": "26.2 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Cable SAS A2 (0xc4)", + "OEM": "0" + }, + "Power Cable (0x5c)": { + "Sensor Reading": "Disabled", + "Entity ID": "26.1 (Disk Drive Bay)", + "Assertions Enabled": "Cable / Interconnect", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Cable / Interconnect", + "Sensor Type (Discrete)": "Cable / Interconnect (0x1b)", + "Sensor ID": "Power Cable (0x5c)", + "OEM": "0" + } + }, + "Drive": { + "Drive 0 (0x98)": { + "States Asserted": "Drive Slot / Bay", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Drive Slot / Bay", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Drive Slot / Bay", + "Sensor Type (Discrete)": "Drive Slot / Bay (0x0d)", + "Sensor ID": "Drive 0 (0x98)", + "OEM": "0", + "Assertion Events": "Drive Slot / Bay" + } + }, + "Processor": { + "Status (0x82)": { + "States Asserted": "Processor", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Processor", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Processor", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor ID": "Status (0x82)", + "OEM": "0", + "Assertion Events": "Processor" + }, + "Status (0x81)": { + "States Asserted": "Processor", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Processor", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Processor", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor ID": "Status (0x81)", + "OEM": "0", + "Assertion Events": "Processor" + }, + "CPU Protocol Err (0xa)": { + "States Asserted": "Processor", + "Sensor ID": "CPU Protocol Err (0xa)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor Reading": "0h", + "OEM": "0" + }, + "CPUMachineCheck (0x3c)": { + "States Asserted": "Processor", + "Sensor ID": "CPUMachineCheck (0x3c)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor Reading": "51h", + "OEM": "0" + }, + "CPU Machine Chk (0xd)": { + "States Asserted": "Processor", + "Sensor ID": "CPU Machine Chk (0xd)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Processor (0x07)", + "Sensor Reading": "0h", + "OEM": "0" + } + }, + "Battery": { + "CMOS Battery (0x87)": { + "States Asserted": "Battery", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Battery", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Battery", + "Sensor Type (Discrete)": "Battery (0x29)", + "Sensor ID": "CMOS Battery (0x87)", + "OEM": "0", + "Assertion Events": "Battery" + }, + "NVDIMM Battery (0x6a)": { + "Sensor Reading": "Disabled", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Battery", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Battery", + "Sensor Type (Discrete)": "Battery (0x29)", + "Sensor ID": "NVDIMM Battery (0x6a)", + "OEM": "0", + "Assertion Events": "Battery" + }, + "ROMB Battery (0x88)": { + "Sensor Reading": "Disabled", + "Entity ID": "11.2 (Add-in Card)", + "Assertions Enabled": "Battery", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Battery", + "Sensor Type (Discrete)": "Battery (0x29)", + "Sensor ID": "ROMB Battery (0x88)", + "OEM": "0", + "Assertion Events": "Battery" + } + }, + "Module": { + "SD (0x7c)": { + "Sensor ID": "SD (0x7c)", + "Entity ID": "11.4 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Module / Board (0x15)", + "OEM": "0", + "Sensor Reading": "Disabled" + } + }, + "Entity": { + "Dedicated NIC (0x70)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Dedicated NIC (0x70)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "BP0 Presence (0x59)": { + "States Asserted": "Entity Presence", + "Sensor ID": "BP0 Presence (0x59)", + "Entity ID": "26.1 (Disk Drive Bay)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "CP Right Pres (0x57)": { + "States Asserted": "Entity Presence", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Entity Presence", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Entity Presence", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor ID": "CP Right Pres (0x57)", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "TPM Presence (0x54)": { + "States Asserted": "Entity Presence", + "Sensor ID": "TPM Presence (0x54)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x49)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x49)", + "Entity ID": "10.2 (Power Supply)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x66)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x66)", + "Entity ID": "3.1 (Processor)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x67)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x67)", + "Entity ID": "3.2 (Processor)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "BP1 Presence (0x5a)": { + "States Asserted": "Entity Presence", + "Sensor ID": "BP1 Presence (0x5a)", + "Entity ID": "26.2 (Disk Drive Bay)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x58)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x58)", + "Entity ID": "11.2 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x4a)": { + "States Asserted": "Entity Presence", + "Sensor Reading": "0h", + "Entity ID": "11.1 (Add-in Card)", + "Assertions Enabled": "Entity Presence", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor ID": "Presence (0x4a)", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "CP Left Pres (0x56)": { + "States Asserted": "Entity Presence", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Entity Presence", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Entity Presence", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor ID": "CP Left Pres (0x56)", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x4b)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x4b)", + "Entity ID": "11.3 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x4c)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x4c)", + "Entity ID": "11.4 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + }, + "Presence (0x48)": { + "States Asserted": "Entity Presence", + "Sensor ID": "Presence (0x48)", + "Entity ID": "10.1 (Power Supply)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Entity Presence (0x25)", + "Sensor Reading": "0h", + "OEM": "0", + "Assertion Events": "Entity Presence" + } + }, + "Add-in": { + "Status (0x53)": { + "Sensor ID": "Status (0x53)", + "Entity ID": "11.5 (Add-in Card)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Add-in Card (0x17)", + "OEM": "0", + "Sensor Reading": "0h" + } + }, + "Critical": { + "Chipset Err (0x19)": { + "Sensor ID": "Chipset Err (0x19)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "PCIE Fatal Err (0x18)": { + "Sensor ID": "PCIE Fatal Err (0x18)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "PCI System Err (0x5)": { + "States Asserted": "Critical Interrupt", + "Sensor ID": "PCI System Err (0x5)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor Reading": "95h", + "OEM": "0" + }, + "PCIe Slot3 (0x8d)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Critical Interrupt", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Critical Interrupt", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor ID": "PCIe Slot3 (0x8d)", + "OEM": "0" + }, + "FatalPCIErARI (0x3d)": { + "States Asserted": "Critical Interrupt", + "Sensor ID": "FatalPCIErARI (0x3d)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor Reading": "4eh", + "OEM": "0" + }, + "Fatal PCI SSD Er (0x3a)": { + "States Asserted": "Critical Interrupt", + "Sensor ID": "Fatal PCI SSD Er (0x3a)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor Reading": "4fh", + "OEM": "0" + }, + "PCIe Slot1 (0x8b)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Critical Interrupt", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Critical Interrupt", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor ID": "PCIe Slot1 (0x8b)", + "OEM": "0" + }, + "PCIe Slot2 (0x8c)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Critical Interrupt", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Critical Interrupt", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor ID": "PCIe Slot2 (0x8c)", + "OEM": "0" + }, + "FatalPCIErrOnBus (0x38)": { + "States Asserted": "Critical Interrupt", + "Sensor ID": "FatalPCIErrOnBus (0x38)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "Sensor Reading": "4eh", + "OEM": "0" + }, + "PCI Parity Err (0x4)": { + "Sensor ID": "PCI Parity Err (0x4)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Critical Interrupt (0x13)", + "OEM": "0", + "Sensor Reading": "No Reading" + } + }, + "Voltage": { + "VCCIO PG (0x34)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VCCIO PG (0x34)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "Voltage 1 (0x6d)": { + "Status": "ok", + "Sensor Reading": "208 (+/- 0) Volts", + "Entity ID": "10.1 (Power Supply)", + "Assertions Enabled": "", + "Event Message Control": "Per-threshold", + "Normal Maximum": "0.000", + "Positive Hysteresis": "Unspecified", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Voltage (0x02)", + "Negative Hysteresis": "Unspecified", + "Nominal Reading": "0.000", + "Readable Thresholds": "No Thresholds", + "Sensor ID": "Voltage 1 (0x6d)", + "Settable Thresholds": "No Thresholds", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "DIMM PG (0x7)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "DIMM PG (0x7)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "PS1 PG FAIL (0x9)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "PS1 PG FAIL (0x9)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VPP PG (0x28)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VPP PG (0x28)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VPP PG (0x32)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VPP PG (0x32)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VDDQ PG (0x2e)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VDDQ PG (0x2e)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VCORE PG (0x35)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VCORE PG (0x35)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VTT PG (0x29)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VTT PG (0x29)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "PVNN SW PG (0x11)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "PVNN SW PG (0x11)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "3.3V B PG (0x15)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "3.3V B PG (0x15)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VSBM SW PG (0x13)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VSBM SW PG (0x13)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "2.5V SW PG (0xf)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "2.5V SW PG (0xf)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VTT PG (0x33)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VTT PG (0x33)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VPP PG (0x25)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VPP PG (0x25)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VSA PG (0x37)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VSA PG (0x37)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "5V SW PG (0x10)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "5V SW PG (0x10)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "3.3V A PG (0x14)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "3.3V A PG (0x14)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "Pfault Fail Safe (0x74)": { + "Sensor ID": "Pfault Fail Safe (0x74)", + "Entity ID": "7.1 (System Board)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "OEM": "0", + "Sensor Reading": "No Reading" + }, + "VCORE PG (0x2b)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VCORE PG (0x2b)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "PS2 PG FAIL (0xa)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "PS2 PG FAIL (0xa)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "FIVR PG (0x36)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "FIVR PG (0x36)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VDDQ PG (0x24)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VDDQ PG (0x24)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VDDQ PG (0x31)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VDDQ PG (0x31)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "BP0 PG (0xb)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "BP0 PG (0xb)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "BP1 PG (0xc)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "BP1 PG (0xc)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM345 VDDQ PG (0x27)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM345 VDDQ PG (0x27)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VCCIO PG (0x2a)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VCCIO PG (0x2a)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "FIVR PG (0x2c)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "FIVR PG (0x2c)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "1.8V SW PG (0xe)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "1.8V SW PG (0xe)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "Voltage 2 (0x6e)": { + "Status": "ok", + "Sensor Reading": "208 (+/- 0) Volts", + "Entity ID": "10.2 (Power Supply)", + "Assertions Enabled": "", + "Event Message Control": "Per-threshold", + "Normal Maximum": "0.000", + "Positive Hysteresis": "Unspecified", + "Maximum sensor range": "Unspecified", + "Sensor Type (Threshold)": "Voltage (0x02)", + "Negative Hysteresis": "Unspecified", + "Nominal Reading": "0.000", + "Readable Thresholds": "No Thresholds", + "Sensor ID": "Voltage 2 (0x6e)", + "Settable Thresholds": "No Thresholds", + "Minimum sensor range": "Unspecified", + "Assertion Events": "" + }, + "VSB11 SW PG (0x12)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VSB11 SW PG (0x12)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VPP PG (0x2f)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VPP PG (0x2f)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "VSA PG (0x2d)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "VSA PG (0x2d)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VTT PG (0x26)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.1 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VTT PG (0x26)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "BP2 PG (0xd)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "BP2 PG (0xd)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "NDC PG (0x8)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "NDC PG (0x8)", + "OEM": "0", + "Assertion Events": "Voltage" + }, + "MEM012 VTT PG (0x30)": { + "States Asserted": "Voltage", + "Sensor Reading": "0h", + "Entity ID": "3.2 (Processor)", + "Assertions Enabled": "Voltage", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Voltage (0x02)", + "Sensor ID": "MEM012 VTT PG (0x30)", + "OEM": "0", + "Assertion Events": "Voltage" + } + }, + "OS": { + "TXT Status (0x2a)": { + "States Asserted": "OS Critical Stop", + "Sensor ID": "TXT Status (0x2a)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "OS Critical Stop (0x20)", + "Sensor Reading": "0h", + "OEM": "0" + } + }, + "Event": { + "SBE Log Disabled (0x6)": { + "States Asserted": "Event Logging Disabled", + "Sensor ID": "SBE Log Disabled (0x6)", + "Entity ID": "34.1 (BIOS)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Event Logging Disabled (0x10)", + "Sensor Reading": "a4h", + "OEM": "0" + }, + "SEL (0x72)": { + "Sensor ID": "SEL (0x72)", + "Entity ID": "0.1 (Unspecified)", + "Event Message Control": "Per-threshold", + "Sensor Type (Discrete)": "Event Logging Disabled (0x10)", + "OEM": "0", + "Sensor Reading": "No Reading" + } + }, + "Physical": { + "Intrusion (0x73)": { + "Sensor Reading": "0h", + "Entity ID": "7.1 (System Board)", + "Assertions Enabled": "Physical Security", + "Event Message Control": "Per-threshold", + "Deassertions Enabled": "Physical Security", + "Sensor Type (Discrete)": "Physical Security (0x05)", + "Sensor ID": "Intrusion (0x73)", + "OEM": "0" + } + } + } + }, + "message_id": "2c0da1e8-1958-484f-9bdd-9117d717f7fa" +} diff --git a/ironic_prometheus_exporter/tests/test_driver.py b/ironic_prometheus_exporter/tests/test_driver.py index cb0f8c5..019314a 100644 --- a/ironic_prometheus_exporter/tests/test_driver.py +++ b/ironic_prometheus_exporter/tests/test_driver.py @@ -1,5 +1,8 @@ +import json +import os import oslo_messaging +from ironic_prometheus_exporter.messaging import PrometheusFileDriver from oslo_messaging.tests import utils as test_utils @@ -8,12 +11,65 @@ class TestPrometheusFileNotifier(test_utils.BaseTestCase): def setUp(self): super(TestPrometheusFileNotifier, self).setUp() - def test_notifier(self): - self.config(file_path='/tmp/ironic_prometheus_exporter/test.json', + def test_instanciate(self): + self.config(files_dir='/tmp/ironic_prometheus_exporter', group='oslo_messaging_notifications') transport = oslo_messaging.get_notification_transport(self.conf) oslo_messaging.Notifier(transport, driver='prometheus_exporter', topics=['my_topics']) - self.assertEqual(self.conf.oslo_messaging_notifications.file_path, - "/tmp/ironic_prometheus_exporter/test.json") + self.assertEqual(self.conf.oslo_messaging_notifications.files_dir, + "/tmp/ironic_prometheus_exporter") + self.assertTrue(os.path.isdir( + self.conf.oslo_messaging_notifications.files_dir)) + + def test_messages_from_same_node(self): + self.config(files_dir='/tmp/ironic_prometheus_exporter', + group='oslo_messaging_notifications') + transport = oslo_messaging.get_notification_transport(self.conf) + driver = PrometheusFileDriver(self.conf, None, transport) + + msg1 = json.load(open('./ironic_prometheus_exporter/tests/data.json')) + node1 = msg1['payload']['node_name'] + msg2 = json.load(open('./ironic_prometheus_exporter/tests/data2.json')) + # Override data2 node_name + msg2['payload']['node_name'] = node1 + node2 = msg2['payload']['node_name'] + self.assertNotEqual(msg1['payload']['timestamp'], + msg2['payload']['timestamp']) + + driver.notify(None, msg1, 'info', 0) + driver.notify(None, msg2, 'info', 0) + + DIR = self.conf.oslo_messaging_notifications.files_dir + all_files = [name for name in os.listdir(DIR) + if os.path.isfile(os.path.join(DIR, name))] + self.assertEqual(node1, node2) + self.assertEqual(len(all_files), 1) + self.assertTrue(node1 and node2 in all_files) + for f in all_files: + os.remove(os.path.join(DIR, f)) + + def test_messages_from_different_nodes(self): + self.config(files_dir='/tmp/ironic_prometheus_exporter', + group='oslo_messaging_notifications') + transport = oslo_messaging.get_notification_transport(self.conf) + driver = PrometheusFileDriver(self.conf, None, transport) + + msg1 = json.load(open('./ironic_prometheus_exporter/tests/data.json')) + node1 = msg1['payload']['node_name'] + msg2 = json.load(open('./ironic_prometheus_exporter/tests/data2.json')) + node2 = msg2['payload']['node_name'] + self.assertNotEqual(msg1['payload']['timestamp'], + msg2['payload']['timestamp']) + + driver.notify(None, msg1, 'info', 0) + driver.notify(None, msg2, 'info', 0) + + DIR = self.conf.oslo_messaging_notifications.files_dir + all_files = [name for name in os.listdir(DIR) + if os.path.isfile(os.path.join(DIR, name))] + self.assertEqual(len(all_files), 2) + self.assertTrue(node1 and node2 in all_files) + for f in all_files: + os.remove(os.path.join(DIR, f)) diff --git a/ironic_prometheus_exporter/tests/test_ipmi_parser.py b/ironic_prometheus_exporter/tests/test_ipmi_parser.py new file mode 100644 index 0000000..c33924e --- /dev/null +++ b/ironic_prometheus_exporter/tests/test_ipmi_parser.py @@ -0,0 +1,124 @@ +import json +import unittest + +from ironic_prometheus_exporter.parsers import ipmi, manager + + +DATA = json.load(open('./ironic_prometheus_exporter/tests/data.json')) + + +class TestPayloadManagementParser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['Management'] + + def test_parser(self): + management_parser = ipmi.Management(self.payload, self.node_name) + metrics = management_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 2) + + +class TestPayloadTemperatureParser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['Temperature'] + + def test_parser(self): + temperature_parser = ipmi.Temperature(self.payload, self.node_name) + metrics = temperature_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 7) + + +class TestPayloadSystemParser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['System'] + + def test_parser(self): + system_parser = ipmi.System(self.payload, self.node_name) + metrics = system_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 3) + + +class TestPayloadCurrentParser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['Current'] + + def test_parser(self): + current_parser = ipmi.Current(self.payload, self.node_name) + metrics = current_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 5) + + +class TestPayloadVersionParser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['Version'] + + def test_parser(self): + version_parser = ipmi.Version(self.payload, self.node_name) + metrics = version_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 5) + + +class TestPayloadMemoryParser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['Memory'] + + def test_parser(self): + memory_parser = ipmi.Memory(self.payload, self.node_name) + metrics = memory_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 18) + + +class TestPayloadPowerParser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['Power'] + + def test_parser(self): + power_parser = ipmi.Power(self.payload, self.node_name) + metrics = power_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 4) + + +class TestPayloadWatchdog2Parser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['Watchdog2'] + + def test_parser(self): + watchdog_parser = ipmi.Watchdog2(self.payload, self.node_name) + metrics = watchdog_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 4) + + +class TestPayloadFanParser(unittest.TestCase): + + def setUp(self): + self.node_name = DATA['payload']['node_name'] + self.payload = DATA['payload']['payload']['Fan'] + + def test_parser(self): + fan_parser = ipmi.Fan(self.payload, self.node_name) + metrics = fan_parser.prometheus_format() + self.assertEqual(len(metrics.split('\n')), 19) + + +class TestIpmiManager(unittest.TestCase): + + def test_manager(self): + node_manager = manager.ParserManager(DATA) + node_metrics = node_manager.merge_information() + print(node_metrics.split('\n')) + self.assertEqual(len(node_metrics.split('\n')), 67) diff --git a/requirements.txt b/requirements.txt index 5b26be1..5ebf238 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,3 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 -flake8 stevedore>=1.20.0 # Apache-2.0 -oslo.messaging!=9.0.0 # Apache-2.0 -stestr>=2.0.0 # Apache-2.0 +oslo.messaging==9.4.0 # Apache-2.0 diff --git a/setup.cfg b/setup.cfg index 2db708a..9ebe992 100644 --- a/setup.cfg +++ b/setup.cfg @@ -24,3 +24,4 @@ packages = [entry_points] oslo.messaging.notify.drivers = prometheus_exporter = ironic_prometheus_exporter.messaging:PrometheusFileDriver + file_exporter = ironic_prometheus_exporter.messaging:SimpleFileDriver diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..d229add --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,3 @@ +flake8 +stestr>=2.0.0 # Apache-2.0 +oslotest>=3.2.0 # Apache-2.0 diff --git a/tox.ini b/tox.ini index dbcb196..d0a3ff8 100644 --- a/tox.ini +++ b/tox.ini @@ -9,7 +9,9 @@ install_command = pip install {opts} {packages} setenv = VIRTUAL_ENV={envdir} PYTHONWARNINGS=default::DeprecationWarning -deps = -r{toxinidir}/requirements.txt +deps = + -r{toxinidir}/test-requirements.txt + -r{toxinidir}/requirements.txt commands = stestr run {posargs} [testenv:pep8]