From 569cdf391b77af0eca95157add917767ec1c75b8 Mon Sep 17 00:00:00 2001 From: Richard Tief Date: Mon, 26 Feb 2024 15:16:02 +0100 Subject: [PATCH] cleanup, move label extension to a dedicated function --- BaseCollector.py | 6 ++++++ collectors/PropertiesCollector.py | 15 +++++---------- collectors/SDRSPropertiesCollector.py | 6 ++---- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/BaseCollector.py b/BaseCollector.py index 01f5f957..b4cd1b68 100644 --- a/BaseCollector.py +++ b/BaseCollector.py @@ -374,6 +374,12 @@ def generate_alert_metrics(self, label_names: list) -> InfoMetricFamily: labels=label_names) return alert_metric + def add_metric_labels(self, metric_object: GaugeMetricFamily, labels): + if labels[0] not in metric_object._labelnames: + for label in labels: + metric_object._labelnames += (label,) + return + def describe(self): collector_config = self.read_collector_config() for metric in collector_config[self.name]: diff --git a/collectors/PropertiesCollector.py b/collectors/PropertiesCollector.py index 9473c3b4..a4131c20 100644 --- a/collectors/PropertiesCollector.py +++ b/collectors/PropertiesCollector.py @@ -67,21 +67,17 @@ def collect(self): if statkey in self.nested_value_metric_keys: add_labels, add_label_value_list, add_value = self.unlock_nested_values(statkey, metric_value) - if add_labels[0] not in metrics[statkey]['gauge']._labelnames: - for add_label in add_labels: - metrics[statkey]['gauge']._labelnames += (add_label,) + + self.add_metric_labels(metrics[statkey]['gauge'], add_labels) for add_label_value in add_label_value_list: - _ = [labels.append(l) for l in add_label_value] - metrics[statkey]['gauge'].add_metric(labels=labels, value=add_value) - _ = [labels.remove(l) for l in add_label_value] + metrics[statkey]['gauge'].add_metric(labels=labels+add_label_value, value=add_value) continue if statkey in metrics: # enum metrics if metrics[statkey]['expected']: - if 'state' not in metrics[statkey]['gauge']._labelnames: - metrics[statkey]['gauge']._labelnames += ('state',) + self.add_metric_labels(metrics[statkey]['gauge'], ['state']) state = metric_value if metric_value else 'n/a' labels.append(state) @@ -91,8 +87,7 @@ def collect(self): # string values elif metric_value: metric_suffix = metrics[statkey]['metric_suffix'] - if metric_suffix not in metrics[statkey]['gauge']._labelnames: - metrics[statkey]['gauge']._labelnames += (metric_suffix,) + self.add_metric_labels(metrics[statkey]['gauge'], [metric_suffix]) labels.append(metric_value) metrics[statkey]['gauge'].add_metric(labels=labels, value=1) diff --git a/collectors/SDRSPropertiesCollector.py b/collectors/SDRSPropertiesCollector.py index 86b674db..ef23f4ee 100644 --- a/collectors/SDRSPropertiesCollector.py +++ b/collectors/SDRSPropertiesCollector.py @@ -35,10 +35,8 @@ def config_sdrsconfig_vmStorageAntiAffinityRules(self, metric_value): rule_labels = ['rule', 'rule_name', 'rule_type', 'valid', 'virtualmachine'] rule_label_values = [] - value = 0 - for i, rule in enumerate(rules): - mapped_vms = self.vm_mapping_helper(rule.get('virtualMachines'), []) + mapped_vms = self.vm_mapping_helper(rule.get('virtualMachines', [])) for vm in mapped_vms: rule_label_values.append([ f'{i+1}/{amount_rules}', @@ -47,7 +45,7 @@ def config_sdrsconfig_vmStorageAntiAffinityRules(self, metric_value): str(rule.get('valid')).lower(), vm ]) - return rule_labels, rule_label_values, len(mapped_vms) + return rule_labels, rule_label_values, 1 def vm_mapping_helper(self, vm_list): mapped_vms = []