From d3bf7eb74edf379d77042cf1e22225fc5ade5f4e Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Wed, 22 Sep 2021 14:57:38 +0300 Subject: [PATCH] Fix conversion to wide data frame, fixes #1309 --- src/datasource-zabbix/responseHandler.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/datasource-zabbix/responseHandler.ts b/src/datasource-zabbix/responseHandler.ts index 91465b0..e66cd6c 100644 --- a/src/datasource-zabbix/responseHandler.ts +++ b/src/datasource-zabbix/responseHandler.ts @@ -316,7 +316,8 @@ export function alignFrames(data: MutableDataFrame[]): MutableDataFrame[] { } export function convertToWide(data: MutableDataFrame[]): DataFrame[] { - const timeField = data[0].fields.find(f => f.type === FieldType.time); + const maxLengthIndex = getLongestFrame(data); + const timeField = data[maxLengthIndex].fields.find(f => f.type === FieldType.time); if (!timeField) { return []; } @@ -347,6 +348,20 @@ export function convertToWide(data: MutableDataFrame[]): DataFrame[] { return [frame]; } +function getLongestFrame(data: MutableDataFrame[]): number { + let maxLengthIndex = 0; + let maxLength = 0; + for (let i = 0; i < data.length; i++) { + const timeField = data[i].fields.find(f => f.type === FieldType.time); + if (timeField.values.length > maxLength) { + maxLength = timeField.values.length; + maxLengthIndex = i; + } + } + + return maxLengthIndex; +} + function sortTimeseries(timeseries) { // Sort trend data, issue #202 _.forEach(timeseries, series => {