From af04e6c1cb90e08ef51979d45225e9761f7d85aa Mon Sep 17 00:00:00 2001 From: Michael Still Date: Wed, 5 Jan 2022 16:58:21 +1100 Subject: [PATCH] Add monitoring of SFP temperatures. This is useful when tracking thermal issues in a single SFP. --- mktxp/collector/monitor_collector.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mktxp/collector/monitor_collector.py b/mktxp/collector/monitor_collector.py index 3ef50e5..7b7e5b2 100644 --- a/mktxp/collector/monitor_collector.py +++ b/mktxp/collector/monitor_collector.py @@ -25,7 +25,7 @@ class MonitorCollector(BaseCollector): if not router_entry.config_entry.monitor: return - monitor_labels = ['status', 'rate', 'full_duplex', 'name'] + monitor_labels = ['status', 'rate', 'full_duplex', 'name', 'sfp_temperature'] monitor_records = InterfaceMonitorMetricsDataSource.metric_records(router_entry, metric_labels = monitor_labels, include_comments = True) if monitor_records: # translate records to appropriate values @@ -47,6 +47,9 @@ class MonitorCollector(BaseCollector): monitor_rates_metrics = BaseCollector.gauge_collector('interface_full_duplex', 'Full duplex data transmission', full_duplex_records, 'full_duplex', ['name']) yield monitor_rates_metrics + sfp_temperature_metrics = BaseCollector.gauge_collector('interface_sfp_temperature', 'Current SFP temperature', monitor_records, 'sfp_temperature', ['name']) + yield sfp_temperature_metrics + # Helpers @staticmethod def _translated_values(monitor_label, value): @@ -54,7 +57,8 @@ class MonitorCollector(BaseCollector): 'status': lambda value: '1' if value=='link-ok' else '0', 'rate': lambda value: MonitorCollector._rates(value), 'full_duplex': lambda value: '1' if value=='true' else '0', - 'name': lambda value: value + 'name': lambda value: value, + 'sfp_temperature': lambda value: value }[monitor_label](value) @staticmethod