diff --git a/public/app/plugins/datasource/influxdb/datasource.ts b/public/app/plugins/datasource/influxdb/datasource.ts index 12230973923..6d183769005 100644 --- a/public/app/plugins/datasource/influxdb/datasource.ts +++ b/public/app/plugins/datasource/influxdb/datasource.ts @@ -8,6 +8,7 @@ import { DataQueryResponse, dateTime, LoadingState, + QueryResultMeta, } from '@grafana/data'; import InfluxSeries from './influx_series'; import InfluxQueryModel from './influx_query_model'; @@ -135,9 +136,15 @@ export default class InfluxDatasource extends DataSourceWithBackend { - if (result.data && result.data.results) { - const errors = result.data.results.filter((elem: any) => elem.error); - if (errors.length > 0) { - throw { - message: 'InfluxDB Error: ' + errors[0].error, - data: result.data, - }; + const { data } = result; + if (data) { + data.executedQueryString = q; + if (data.results) { + const errors = result.data.results.filter((elem: any) => elem.error); + if (errors.length > 0) { + throw { + message: 'InfluxDB Error: ' + errors[0].error, + data, + }; + } } } - return result.data; + return data; }, (err: any) => { if ((Number.isInteger(err.status) && err.status !== 0) || err.status >= 300) { diff --git a/public/app/plugins/datasource/influxdb/influx_series.ts b/public/app/plugins/datasource/influxdb/influx_series.ts index 1ea68c6b314..79cdab185cc 100644 --- a/public/app/plugins/datasource/influxdb/influx_series.ts +++ b/public/app/plugins/datasource/influxdb/influx_series.ts @@ -1,20 +1,24 @@ import _ from 'lodash'; import TableModel from 'app/core/table_model'; -import { FieldType } from '@grafana/data'; +import { FieldType, QueryResultMeta, TimeSeries, TableData } from '@grafana/data'; export default class InfluxSeries { + refId: string; series: any; alias: any; annotation: any; + meta?: QueryResultMeta; - constructor(options: { series: any; alias?: any; annotation?: any }) { + constructor(options: { series: any; alias?: any; annotation?: any; meta?: QueryResultMeta; refId?: string }) { this.series = options.series; this.alias = options.alias; this.annotation = options.annotation; + this.meta = options.meta; + this.refId = options.refId; } - getTimeSeries() { - const output: any[] = []; + getTimeSeries(): TimeSeries[] { + const output: TimeSeries[] = []; let i, j; if (this.series.length === 0) { @@ -47,7 +51,7 @@ export default class InfluxSeries { } } - output.push({ target: seriesName, datapoints: datapoints }); + output.push({ target: seriesName, datapoints: datapoints, meta: this.meta, refId: this.refId }); } }); @@ -143,10 +147,13 @@ export default class InfluxSeries { return list; } - getTable() { + getTable(): TableData { const table = new TableModel(); let i, j; + table.refId = this.refId; + table.meta = this.meta; + if (this.series.length === 0) { return table; }