mirror of
				https://github.com/KevinMidboe/mktxp-no-cli.git
				synced 2025-10-29 17:50:23 +00:00 
			
		
		
		
	bug fixes
This commit is contained in:
		| @@ -16,26 +16,6 @@ from prometheus_client.core import GaugeMetricFamily, CounterMetricFamily, InfoM | ||||
| from mktxp.cli.config.config import MKTXPConfigKeys | ||||
|       | ||||
|  | ||||
| def get_values(record, labels, default=''): | ||||
|     """Get a set of metrics by label. | ||||
|     None values are replaced with a default value. | ||||
|      | ||||
|     >>> get_values( | ||||
|     ...     {'interface': 'cap3', 'tx_rate': '12 Mbps', 'rx_rate': '390 Mbps', 'comment': None}, | ||||
|     ...     ['interface', 'tx_rate', 'rx_rate', 'comment'] | ||||
|     ... ) | ||||
|     {'interface': 'cap3', 'tx_rate': '12 Mbps', 'rx_rate': '390 Mbps', 'comment': ''} | ||||
|     """ | ||||
|     values = {} | ||||
|     for label in labels: | ||||
|         val = record.get(label) | ||||
|         if val is None: | ||||
|             val = default | ||||
|         values[label] = val | ||||
|      | ||||
|     return values | ||||
|  | ||||
|       | ||||
| class BaseCollector: | ||||
|     ''' Base Collector methods | ||||
|         For use by custom collector | ||||
| @@ -48,7 +28,7 @@ class BaseCollector: | ||||
|         collector = InfoMetricFamily(f'mktxp_{name}', decription) | ||||
|  | ||||
|         for router_record in router_records: | ||||
|             label_values = get_values(router_record, metric_labels) | ||||
|             label_values = {label: router_record.get(label) if router_record.get(label) else '' for label in metric_labels} | ||||
|             collector.add_metric(metric_labels, label_values) | ||||
|         return collector | ||||
|  | ||||
| @@ -59,13 +39,13 @@ class BaseCollector: | ||||
|         BaseCollector._add_id_labels(metric_labels) | ||||
|         collector = CounterMetricFamily(f'mktxp_{name}', decription, labels=metric_labels) | ||||
|  | ||||
|         for router_record in router_records:            | ||||
|             label_values = get_values(router_record, metric_labels) | ||||
|         for router_record in router_records: | ||||
|             label_values = [router_record.get(label) if router_record.get(label) else '' for label in metric_labels]         | ||||
|             collector.add_metric(label_values, router_record.get(metric_key, 0)) | ||||
|         return collector | ||||
|  | ||||
|     @staticmethod | ||||
|     def gauge_collector(name, decription, router_records, metric_key, metric_labels=None, add_id_labels = True): | ||||
|     def gauge_collector(name, decription, router_records, metric_key, metric_labels = None, add_id_labels = True): | ||||
|         if metric_labels is None: | ||||
|             metric_labels = []         | ||||
|         if add_id_labels: | ||||
| @@ -73,7 +53,7 @@ class BaseCollector: | ||||
|         collector = GaugeMetricFamily(f'mktxp_{name}', decription, labels=metric_labels) | ||||
|  | ||||
|         for router_record in router_records:        | ||||
|             label_values = get_values(router_record, metric_labels) | ||||
|             label_values = [router_record.get(label) if router_record.get(label) else '' for label in metric_labels]         | ||||
|             collector.add_metric(label_values, router_record.get(metric_key, 0)) | ||||
|         return collector | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user