diff --git a/public/app/plugins/datasource/influxdb/influx_series.js b/public/app/plugins/datasource/influxdb/influx_series.js index 19e20390fd2..2815330a683 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 (_.includes(self.annotation.tagsColumn.replace(' ', '').split(","), 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] }; 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'); + }); + }); });