From 9fbb1214aec88e37caaf0330273fd0737c176ff6 Mon Sep 17 00:00:00 2001 From: Adrian Lopez Date: Mon, 4 Apr 2016 16:57:34 +0200 Subject: [PATCH 1/3] Allow to show multiple tags with annotations with InfluxDB datasource --- public/app/plugins/datasource/influxdb/influx_series.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/public/app/plugins/datasource/influxdb/influx_series.js b/public/app/plugins/datasource/influxdb/influx_series.js index 19e20390fd2..deb37b9dc0a 100644 --- a/public/app/plugins/datasource/influxdb/influx_series.js +++ b/public/app/plugins/datasource/influxdb/influx_series.js @@ -81,7 +81,7 @@ function (_, TableModel) { _.each(this.series, function (series) { var titleCol = null; var timeCol = null; - var tagsCol = null; + var tagsCol = []; var textCol = null; _.each(series.columns, function(column, index) { @@ -89,7 +89,7 @@ function (_, TableModel) { if (column === 'sequence_number') { return; } if (!titleCol) { titleCol = index; } if (column === self.annotation.titleColumn) { titleCol = index; return; } - if (column === self.annotation.tagsColumn) { tagsCol = index; return; } + if (self.annotation.tagsColumn.includes(column)) { tagsCol.push(index); return; } if (column === self.annotation.textColumn) { textCol = index; return; } }); @@ -98,7 +98,7 @@ function (_, TableModel) { annotation: self.annotation, time: + new Date(value[timeCol]), title: value[titleCol], - tags: value[tagsCol], + tags: tagsCol.map(function(t) { return value[t]; }), text: value[textCol] }; From 395b834a23d7dd3ca8ad2655887e6e9d384e0d20 Mon Sep 17 00:00:00 2001 From: Adrian Lopez Date: Wed, 7 Dec 2016 12:23:57 +0100 Subject: [PATCH 2/3] Better match for culumn inside tagsColumn --- public/app/plugins/datasource/influxdb/influx_series.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/app/plugins/datasource/influxdb/influx_series.js b/public/app/plugins/datasource/influxdb/influx_series.js index deb37b9dc0a..039696f1c0b 100644 --- a/public/app/plugins/datasource/influxdb/influx_series.js +++ b/public/app/plugins/datasource/influxdb/influx_series.js @@ -89,7 +89,7 @@ function (_, TableModel) { if (column === 'sequence_number') { return; } if (!titleCol) { titleCol = index; } if (column === self.annotation.titleColumn) { titleCol = index; return; } - if (self.annotation.tagsColumn.includes(column)) { tagsCol.push(index); return; } + if (_.contains(tagsColumn.split(","), column)) { tagsCol.push(index); return; } if (column === self.annotation.textColumn) { textCol = index; return; } }); From ce4e71364c03d5caaa52bd1bdc1202f71878ab4d Mon Sep 17 00:00:00 2001 From: bergquist Date: Mon, 12 Dec 2016 14:55:39 +0100 Subject: [PATCH 3/3] test(influxdb): adds tests for supporting multiple tags --- .../datasource/influxdb/influx_series.js | 2 +- .../influxdb/specs/influx_series_specs.ts | 30 ++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/public/app/plugins/datasource/influxdb/influx_series.js b/public/app/plugins/datasource/influxdb/influx_series.js index 039696f1c0b..2815330a683 100644 --- a/public/app/plugins/datasource/influxdb/influx_series.js +++ b/public/app/plugins/datasource/influxdb/influx_series.js @@ -89,7 +89,7 @@ function (_, TableModel) { if (column === 'sequence_number') { return; } if (!titleCol) { titleCol = index; } if (column === self.annotation.titleColumn) { titleCol = index; return; } - if (_.contains(tagsColumn.split(","), column)) { tagsCol.push(index); return; } + if (_.includes(self.annotation.tagsColumn.replace(' ', '').split(","), column)) { tagsCol.push(index); return; } if (column === self.annotation.textColumn) { textCol = index; return; } }); diff --git a/public/app/plugins/datasource/influxdb/specs/influx_series_specs.ts b/public/app/plugins/datasource/influxdb/specs/influx_series_specs.ts index c60c45aa13c..da6c14719a2 100644 --- a/public/app/plugins/datasource/influxdb/specs/influx_series_specs.ts +++ b/public/app/plugins/datasource/influxdb/specs/influx_series_specs.ts @@ -2,7 +2,6 @@ import {describe, beforeEach, it, sinon, expect} from 'test/lib/common'; import InfluxSeries from '../influx_series'; describe('when generating timeseries from influxdb response', function() { - describe('given multiple fields for series', function() { var options = { alias: '', @@ -68,6 +67,7 @@ describe('when generating timeseries from influxdb response', function() { }); }); + describe('given measurement with default fieldname', function() { var options = { series: [ { @@ -96,6 +96,7 @@ describe('when generating timeseries from influxdb response', function() { }); }); + describe('given two series', function() { var options = { alias: '', @@ -206,5 +207,32 @@ describe('when generating timeseries from influxdb response', function() { }); }); + describe('given annotation response', function() { + var options = { + alias: '', + annotation: { + tagsColumn: 'datacenter, source' + }, + series: [ + { + name: "logins.count", + tags: {datacenter: 'Africa', server: 'server2'}, + columns: ["time", "datacenter", "hostname", "source", "value"], + values: [ + [1481549440372, "America", "10.1.100.10", "backend", 215.7432653659507], + ] + } + ] + }; + + it('should multiple tags', function() { + var series = new InfluxSeries(options); + var annotations = series.getAnnotations(); + + expect(annotations[0].tags.length).to.be(2); + expect(annotations[0].tags[0]).to.be('America'); + expect(annotations[0].tags[1]).to.be('backend'); + }); + }); });