diff --git a/collectors/PropertiesCollector.py b/collectors/PropertiesCollector.py index 85af5f6b..9473c3b4 100644 --- a/collectors/PropertiesCollector.py +++ b/collectors/PropertiesCollector.py @@ -9,7 +9,7 @@ class PropertiesCollector(BaseCollector): def get_resource_uuids(self): raise NotImplementedError("Please Implement this method") - def unlock_nested_values(self): + def unlock_nested_values(self, s, m): raise NotImplementedError("Please Implement this method") def get_labels(self, resource_id: str, project_ids: list): @@ -66,14 +66,15 @@ def collect(self): metric_value = value_entry.get('values', [False])[0] if statkey in self.nested_value_metric_keys: - n_labels, n_label_values, n_value = self.unlock_nested_values(statkey, metric_value) - labels.extend(n_label_values) - - if labels[0] not in metrics[statkey]['gauge']._labelnames: - for label in n_labels: - metrics[statkey]['gauge']._labelnames += (label,) - - metrics[statkey]['gauge'].add_metric(labels=labels, value=n_value) + 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,) + + 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] continue if statkey in metrics: diff --git a/collectors/SDRSPropertiesCollector.py b/collectors/SDRSPropertiesCollector.py index 3c0e353d..b9fde51c 100644 --- a/collectors/SDRSPropertiesCollector.py +++ b/collectors/SDRSPropertiesCollector.py @@ -32,19 +32,23 @@ def config_sdrsconfig_vmStorageAntiAffinityRules(self, metric_value): amount_rules = len(rules) if rules else 0 - rule_labels = ['rules', 'rule_name', 'rule_type', 'valid', 'virtualmachines'] + rule_labels = ['rule', 'rule_name', 'rule_type', 'valid', 'virtualmachine'] rule_label_values = [] - for i, rule in enumerate(rules): - rule_label_values.extend([ - f'{i+1}/{amount_rules}', - rule.get('name'), - rule.get('type'), - str(rule.get('valid')).lower(), - self.vm_mapping_helper(rule.get('virtualMachines')) - ]) + value = 0 - return rule_labels, rule_label_values, amount_rules + for i, rule in enumerate(rules): + mapped_vms = self.vm_mapping_helper(rule.get('virtualMachines')) + value = len(mapped_vms) + for vm in mapped_vms: + rule_label_values.append([ + f'{i+1}/{amount_rules}', + rule.get('name'), + rule.get('type'), + str(rule.get('valid')).lower(), + vm + ]) + return rule_labels, rule_label_values, value def vm_mapping_helper(self, vm_list): mapped_vms = [] @@ -53,4 +57,4 @@ def vm_mapping_helper(self, vm_list): for vm in vms: if rule_vm == vms[vm].get('internal_name'): mapped_vms.append(vms[vm].get('name')) - return str(mapped_vms) + return mapped_vms