Skip to content
This repository was archived by the owner on Dec 11, 2022. It is now read-only.

Commit 7fdcba4

Browse files
committed
Fixe multy series
1 parent 9e106e1 commit 7fdcba4

File tree

4 files changed

+48
-15
lines changed

4 files changed

+48
-15
lines changed

dist/module.js

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34551,7 +34551,9 @@ function () {
3455134551
var data = [];
3455234552

3455334553
for (var i = 0; i < responses.length; i++) {
34554-
data.push(responses[i]);
34554+
for (var x = 0; x < responses[i].length; x++) {
34555+
data.push(responses[i][x]);
34556+
}
3455534557
}
3455634558

3455734559
return {
@@ -35836,8 +35838,14 @@ Object.defineProperty(exports, "__esModule", {
3583635838
value: true
3583735839
});
3583835840

35841+
var _lodash = __webpack_require__(/*! lodash */ "lodash");
35842+
35843+
var _lodash2 = _interopRequireDefault(_lodash);
35844+
3583935845
var _lodashEs = __webpack_require__(/*! lodash-es */ "../node_modules/lodash-es/lodash.js");
3584035846

35847+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35848+
3584135849
var ResponseParser =
3584235850
/** @class */
3584335851
function () {
@@ -36003,7 +36011,7 @@ function () {
3600336011
timeIndex = i;
3600436012
}
3600536013

36006-
if (metricIndex === -1 && results.schema.fields[i].type === 'STRING') {
36014+
if (metricIndex === -1 && results.schema.fields[i].name === 'metric') {
3600736015
metricIndex = i;
3600836016
}
3600936017

@@ -36020,7 +36028,7 @@ function () {
3602036028
};
3602136029

3602236030
ResponseParser._buildDataPoints = function (results, timeIndex, metricIndex, valueIndex) {
36023-
var dataPoints = [];
36031+
var data = [];
3602436032
var metricName = '';
3602536033

3602636034
for (var _i = 0, _a = results.rows; _i < _a.length; _i++) {
@@ -36029,14 +36037,28 @@ function () {
3602936037
if (row) {
3603036038
var epoch = Number(row.f[timeIndex].v) * 1000;
3603136039
metricName = metricIndex > -1 ? row.f[metricIndex].v : results.schema.fields[valueIndex].name;
36032-
dataPoints.push([Number(row.f[valueIndex].v), epoch]);
36040+
var bucket = ResponseParser.findOrCreateBucket(data, metricName);
36041+
bucket.datapoints.push([Number(row.f[valueIndex].v), epoch]);
3603336042
}
3603436043
}
3603536044

36036-
return {
36037-
target: metricName,
36038-
datapoints: dataPoints
36039-
};
36045+
return data;
36046+
};
36047+
36048+
ResponseParser.findOrCreateBucket = function (data, target) {
36049+
var dataTarget = _lodash2.default.find(data, ['target', target]);
36050+
36051+
if (!dataTarget) {
36052+
dataTarget = {
36053+
target: target,
36054+
datapoints: [],
36055+
refId: '',
36056+
query: ''
36057+
};
36058+
data.push(dataTarget);
36059+
}
36060+
36061+
return dataTarget;
3604036062
};
3604136063

3604236064
ResponseParser._convertValues = function (v, type) {

dist/module.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/datasource.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,9 @@ export class BigQueryDatasource {
217217
return this.$q.all(allQueryPromise).then((responses): any => {
218218
let data = [];
219219
for (let i = 0; i < responses.length; i++) {
220-
221-
data.push(responses[i]);
220+
for (let x = 0; x < responses[i].length; x++) {
221+
data.push(responses[i][x]);
222+
}
222223
}
223224
return {data: data};
224225
});

src/response_parser.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export default class ResponseParser {
138138
if (timeIndex === -1 && ['DATE', 'TIMESTAMP', 'DATETIME'].includes(results.schema.fields[i].type)) {
139139
timeIndex = i;
140140
}
141-
if (metricIndex === -1 && results.schema.fields[i].type === 'STRING') {
141+
if (metricIndex === -1 && results.schema.fields[i].name === 'metric') {
142142
metricIndex = i;
143143
}
144144
if (valueIndex === -1 && ['INT64', 'NUMERIC', 'FLOAT64', 'FLOAT', 'INT', 'INTEGER'].includes(results.schema.fields[i].type)) {
@@ -152,18 +152,28 @@ export default class ResponseParser {
152152
}
153153

154154
static _buildDataPoints(results, timeIndex, metricIndex, valueIndex) {
155-
const dataPoints = [];
155+
const data = [];
156156
let metricName = '';
157157
for (const row of results.rows) {
158158
if (row) {
159159
const epoch = Number(row.f[timeIndex].v) * 1000;
160160
metricName = metricIndex > -1 ? row.f[metricIndex].v : results.schema.fields[valueIndex].name;
161-
dataPoints.push([Number(row.f[valueIndex].v), epoch]);
161+
const bucket = ResponseParser.findOrCreateBucket(data, metricName);
162+
bucket.datapoints.push([Number(row.f[valueIndex].v), epoch]);
162163
}
163164
}
164-
return {target: metricName, datapoints: dataPoints};
165+
return data;
165166
}
166167

168+
static findOrCreateBucket(data, target): DataTarget {
169+
let dataTarget = _.find(data, ['target', target]);
170+
if (!dataTarget) {
171+
dataTarget = { target: target, datapoints: [], refId: '', query: '' };
172+
data.push(dataTarget);
173+
}
174+
175+
return dataTarget;
176+
}
167177
static _convertValues(v, type) {
168178
if (['INT64', 'NUMERIC', 'FLOAT64', 'FLOAT', 'INT', 'INTEGER'].includes(type)) {
169179
return Number(v);

0 commit comments

Comments
 (0)