From 863d6619ba923d7b95ab78c1bffbdc2290650467 Mon Sep 17 00:00:00 2001 From: Dana Van Aken Date: Tue, 1 Oct 2019 01:21:46 -0400 Subject: [PATCH] Fixed incorrect parsing behavior for float-type metrics --- server/website/website/fixtures/postgres-92_metrics.json | 4 ++-- server/website/website/fixtures/postgres-93_metrics.json | 4 ++-- server/website/website/fixtures/postgres-94_metrics.json | 4 ++-- server/website/website/fixtures/postgres-96_metrics.json | 4 ++-- server/website/website/parser/base.py | 5 +++-- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/server/website/website/fixtures/postgres-92_metrics.json b/server/website/website/fixtures/postgres-92_metrics.json index 0045ef4..aa2d809 100644 --- a/server/website/website/fixtures/postgres-92_metrics.json +++ b/server/website/website/fixtures/postgres-92_metrics.json @@ -246,7 +246,7 @@ "dbms": 2, "name": "pg_stat_database.blk_read_time", "summary": "\"Time spent reading data file blocks by backends in this database, in milliseconds\"", - "vartype": 2, + "vartype": 3, "metric_type": 1, "scope": "database" }, @@ -312,7 +312,7 @@ "dbms": 2, "name": "pg_stat_database.blk_write_time", "summary": "\"Time spent writing data file blocks by backends in this database, in milliseconds\"", - "vartype": 2, + "vartype": 3, "metric_type": 1, "scope": "database" }, diff --git a/server/website/website/fixtures/postgres-93_metrics.json b/server/website/website/fixtures/postgres-93_metrics.json index 54003d3..d5a9fe8 100644 --- a/server/website/website/fixtures/postgres-93_metrics.json +++ b/server/website/website/fixtures/postgres-93_metrics.json @@ -246,7 +246,7 @@ "dbms": 3, "name": "pg_stat_database.blk_read_time", "summary": "\"Time spent reading data file blocks by backends in this database, in milliseconds\"", - "vartype": 2, + "vartype": 3, "metric_type": 1, "scope": "database" }, @@ -312,7 +312,7 @@ "dbms": 3, "name": "pg_stat_database.blk_write_time", "summary": "\"Time spent writing data file blocks by backends in this database, in milliseconds\"", - "vartype": 2, + "vartype": 3, "metric_type": 1, "scope": "database" }, diff --git a/server/website/website/fixtures/postgres-94_metrics.json b/server/website/website/fixtures/postgres-94_metrics.json index c1352eb..9a8d91b 100644 --- a/server/website/website/fixtures/postgres-94_metrics.json +++ b/server/website/website/fixtures/postgres-94_metrics.json @@ -323,7 +323,7 @@ "dbms": 4, "name": "pg_stat_database.blk_read_time", "summary": "\"Time spent reading data file blocks by backends in this database, in milliseconds\"", - "vartype": 2, + "vartype": 3, "metric_type": 1, "scope": "database" }, @@ -389,7 +389,7 @@ "dbms": 4, "name": "pg_stat_database.blk_write_time", "summary": "\"Time spent writing data file blocks by backends in this database, in milliseconds\"", - "vartype": 2, + "vartype": 3, "metric_type": 1, "scope": "database" }, diff --git a/server/website/website/fixtures/postgres-96_metrics.json b/server/website/website/fixtures/postgres-96_metrics.json index d297421..52b1157 100644 --- a/server/website/website/fixtures/postgres-96_metrics.json +++ b/server/website/website/fixtures/postgres-96_metrics.json @@ -323,7 +323,7 @@ "dbms": 1, "name": "pg_stat_database.blk_read_time", "summary": "\"Time spent reading data file blocks by backends in this database, in milliseconds\"", - "vartype": 2, + "vartype": 3, "metric_type": 1, "scope": "database" }, @@ -389,7 +389,7 @@ "dbms": 1, "name": "pg_stat_database.blk_write_time", "summary": "\"Time spent writing data file blocks by backends in this database, in milliseconds\"", - "vartype": 2, + "vartype": 3, "metric_type": 1, "scope": "database" }, diff --git a/server/website/website/parser/base.py b/server/website/website/parser/base.py index 3c831f0..f57783d 100644 --- a/server/website/website/parser/base.py +++ b/server/website/website/parser/base.py @@ -291,7 +291,8 @@ class BaseParser(object, metaclass=ABCMeta): valid_metrics[name] = values[0] elif metric.metric_type == MetricType.COUNTER or \ metric.metric_type == MetricType.STATISTICS: - values = [int(v) for v in values if v is not None] + conv_fn = int if metric.vartype == VarType.INTEGER else float + values = [conv_fn(v) for v in values if v is not None] if len(values) == 0: valid_metrics[name] = 0 else: @@ -359,7 +360,7 @@ class BaseParser(object, metaclass=ABCMeta): return int(round(int_value)) def format_real(self, real_value, metadata): - return float(real_value) + return round(float(real_value), 3) def format_string(self, string_value, metadata): return string_value