From 9c9e17aba7d1995dd8a1abdcece42c04f4af4095 Mon Sep 17 00:00:00 2001 From: Andreas Wirooks <4233401+nudgegoonies@users.noreply.github.com> Date: Fri, 23 Nov 2018 16:29:56 +0100 Subject: [PATCH] Handle 'Unknown' as measurement value. (#1113) We use the output-compatible perccli and storcli.py does not handle 'Unknown' as a result: ``` sg="Error parsing \"/var/lib/node_exporter/perccli.prom\": text format parsing error in line 222: expected float as value, got \"Unknown\"" source="textfile.go:212" ``` I know, the perccli should not return 'Unknown' but this error breaks all other useful measurements because the prom file is not parsable. My if condition fixes this. Signed-off-by: Andreas Wirooks --- text_collector_examples/storcli.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/text_collector_examples/storcli.py b/text_collector_examples/storcli.py index 65fc00f3b6..9935e884ab 100755 --- a/text_collector_examples/storcli.py +++ b/text_collector_examples/storcli.py @@ -198,8 +198,9 @@ def print_all_metrics(metrics): print('# HELP {}{} MegaRAID {}'.format(metric_prefix, metric, metric.replace('_', ' '))) print('# TYPE {}{} gauge'.format(metric_prefix, metric)) for measurement in measurements: - print('{}{}{} {}'.format(metric_prefix, metric, '{' + measurement['labels'] + '}', - measurement['value'])) + if measurement['value'] != 'Unknown': + print('{}{}{} {}'.format(metric_prefix, metric, '{' + measurement['labels'] + '}', + measurement['value'])) def get_storcli_json(storcli_args):