diff --git a/web/static/js/graph.js b/web/static/js/graph.js index aac2daabbf..4f045e4cb8 100644 --- a/web/static/js/graph.js +++ b/web/static/js/graph.js @@ -385,7 +385,8 @@ Prometheus.Graph.prototype.metricToTsName = function(labels) { Prometheus.Graph.prototype.parseValue = function(value) { if (value == "NaN" || value == "Inf" || value == "-Inf") { - return 0; // TODO: what should we really do here? + // Can't display these values on a graph, so display a gap instead. + return null; } else { return parseFloat(value); } diff --git a/web/static/js/prom_console.js b/web/static/js/prom_console.js index fab2a7b6d5..889e19edd1 100644 --- a/web/static/js/prom_console.js +++ b/web/static/js/prom_console.js @@ -376,6 +376,15 @@ PromConsole.Graph = function(params) { }; +PromConsole.Graph.prototype._parseValue = function(value) { + if (value == "NaN" || value == "Inf" || value == "-Inf") { + // Can't display these values on a graph, so display a gap instead. + return null; + } else { + return parseFloat(value); + } +} + PromConsole.Graph.prototype._render = function(data) { var palette = new Rickshaw.Color.Palette(); var series = []; @@ -399,7 +408,7 @@ PromConsole.Graph.prototype._render = function(data) { for (var e = 0; e < data.length; e++) { for (var i = 0; i < data[e].value.length; i++) { series[seriesLen++] = { - data: data[e].value[i].values.map(function(s) {return {x: s[0], y: parseFloat(s[1])} }), + data: data[e].value[i].values.map(function(s) {return {x: s[0], y: self._parseValue(s[1])} }), color: palette.color(), name: nameFunc(data[e].value[i].metric), };