InfluxDB: fix data format (use data frames), #1255
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { DataSourceApi } from '@grafana/data';
|
import { ArrayVector, DataFrame, dataFrameToJSON, DataSourceApi, Field, FieldType, MutableDataFrame, TIME_SERIES_TIME_FIELD_NAME, toDataFrame } from '@grafana/data';
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { compactQuery } from '../../../utils';
|
import { compactQuery } from '../../../utils';
|
||||||
import { consolidateByTrendColumns, DBConnector, HISTORY_TO_TABLE_MAP } from '../dbConnector';
|
import { consolidateByTrendColumns, DBConnector, HISTORY_TO_TABLE_MAP } from '../dbConnector';
|
||||||
@@ -105,7 +105,7 @@ function handleInfluxHistoryResponse(results) {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
const seriesList = [];
|
const frames: DataFrame[] = [];
|
||||||
for (let i = 0; i < results.length; i++) {
|
for (let i = 0; i < results.length; i++) {
|
||||||
const result = results[i];
|
const result = results[i];
|
||||||
|
|
||||||
@@ -122,19 +122,34 @@ function handleInfluxHistoryResponse(results) {
|
|||||||
|
|
||||||
for (let y = 0; y < influxSeriesList.length; y++) {
|
for (let y = 0; y < influxSeriesList.length; y++) {
|
||||||
const influxSeries = influxSeriesList[y];
|
const influxSeries = influxSeriesList[y];
|
||||||
const datapoints = [];
|
const tsBuffer = [];
|
||||||
|
const valuesBuffer = [];
|
||||||
if (influxSeries.values) {
|
if (influxSeries.values) {
|
||||||
for (i = 0; i < influxSeries.values.length; i++) {
|
for (i = 0; i < influxSeries.values.length; i++) {
|
||||||
datapoints[i] = [influxSeries.values[i][1], influxSeries.values[i][0]];
|
tsBuffer.push(influxSeries.values[i][0]);
|
||||||
|
valuesBuffer.push(influxSeries.values[i][1])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const timeSeries = {
|
const timeFiled: Field<number> = {
|
||||||
name: influxSeries.tags.itemid,
|
name: TIME_SERIES_TIME_FIELD_NAME,
|
||||||
points: datapoints
|
type: FieldType.time,
|
||||||
|
config: {},
|
||||||
|
values: new ArrayVector(tsBuffer),
|
||||||
};
|
};
|
||||||
seriesList.push(timeSeries);
|
|
||||||
|
const valueFiled: Field<number | null> = {
|
||||||
|
name: influxSeries?.tags?.itemid,
|
||||||
|
type: FieldType.number,
|
||||||
|
config: {},
|
||||||
|
values: new ArrayVector(valuesBuffer),
|
||||||
|
};
|
||||||
|
|
||||||
|
frames.push(new MutableDataFrame({
|
||||||
|
name: influxSeries?.tags?.itemid,
|
||||||
|
fields: [timeFiled, valueFiled]
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return seriesList;
|
return frames.map(f => dataFrameToJSON(f));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user