From a902c15b6fe3612ab5d979d1e9bd3693ee0995bd Mon Sep 17 00:00:00 2001 From: Arseniy Kuznetsov Date: Sun, 2 Oct 2022 12:34:54 +0100 Subject: [PATCH] bug fixes --- mktxp/collector/base_collector.py | 30 +++++------------------------- setup.py | 2 +- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/mktxp/collector/base_collector.py b/mktxp/collector/base_collector.py index b73ce39..d52036f 100644 --- a/mktxp/collector/base_collector.py +++ b/mktxp/collector/base_collector.py @@ -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 diff --git a/setup.py b/setup.py index e477b45..c5a82ad 100755 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ with open(path.join(pkg_dir, 'README.md'), encoding='utf-8') as f: setup( name='mktxp', - version='0.36', + version='0.37', url='https://github.com/akpw/mktxp',