From 884f4d02c69eea4dc09e399527b1206dd3c08bd2 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Thu, 28 Jan 2021 11:25:03 +0300 Subject: [PATCH] Fix handling value mappings for ItemID mode, fix #1148 --- src/datasource-zabbix/timeseries.ts | 2 +- src/datasource-zabbix/utils.ts | 2 +- .../zabbix/connectors/zabbix_api/zabbixAPIConnector.ts | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/datasource-zabbix/timeseries.ts b/src/datasource-zabbix/timeseries.ts index 4d56250cc..3a77ee49b 100644 --- a/src/datasource-zabbix/timeseries.ts +++ b/src/datasource-zabbix/timeseries.ts @@ -69,7 +69,7 @@ function downsample(datapoints, time_to, ms_interval, func) { * Detects interval between data points and aligns time series. If there's no value in the interval, puts null as a value. */ export function align(datapoints: TimeSeriesPoints, interval?: number): TimeSeriesPoints { - if (interval) { + if (!interval) { interval = detectSeriesInterval(datapoints); } diff --git a/src/datasource-zabbix/utils.ts b/src/datasource-zabbix/utils.ts index 0b58123de..9fd7c849c 100644 --- a/src/datasource-zabbix/utils.ts +++ b/src/datasource-zabbix/utils.ts @@ -450,7 +450,7 @@ export function convertZabbixUnit(zabbixUnit: string): string { export function getValueMapping(item, valueMappings: any[]): ValueMapping[] | null { const { valuemapid } = item; - const mapping = valueMappings.find(m => m.valuemapid === valuemapid); + const mapping = valueMappings?.find(m => m.valuemapid === valuemapid); if (!mapping) { return null; } diff --git a/src/datasource-zabbix/zabbix/connectors/zabbix_api/zabbixAPIConnector.ts b/src/datasource-zabbix/zabbix/connectors/zabbix_api/zabbixAPIConnector.ts index cf1fef0db..ae1686333 100644 --- a/src/datasource-zabbix/zabbix/connectors/zabbix_api/zabbixAPIConnector.ts +++ b/src/datasource-zabbix/zabbix/connectors/zabbix_api/zabbixAPIConnector.ts @@ -204,11 +204,15 @@ export class ZabbixAPIConnector { const params = { itemids: itemids, output: [ - 'name', 'key_', + 'name', + 'key_', 'value_type', 'hostid', 'status', - 'state' + 'state', + 'units', + 'valuemapid', + 'delay' ], webitems: true, selectHosts: ['hostid', 'name']