mysql-connector: fix reapplying functions to targets with equal items
This commit is contained in:
4
dist/datasource-zabbix/datasource.js
vendored
4
dist/datasource-zabbix/datasource.js
vendored
@@ -426,10 +426,10 @@ System.register(['lodash', 'app/core/utils/datemath', './utils', './migrations',
|
|||||||
var aliasFunctions = bindFunctionDefs(target.functions, 'Alias');
|
var aliasFunctions = bindFunctionDefs(target.functions, 'Alias');
|
||||||
|
|
||||||
// Apply transformation functions
|
// Apply transformation functions
|
||||||
timeseries_data = _.map(timeseries_data, function (timeseries) {
|
timeseries_data = _.cloneDeep(_.map(timeseries_data, function (timeseries) {
|
||||||
timeseries.datapoints = sequence(transformFunctions)(timeseries.datapoints);
|
timeseries.datapoints = sequence(transformFunctions)(timeseries.datapoints);
|
||||||
return timeseries;
|
return timeseries;
|
||||||
});
|
}));
|
||||||
|
|
||||||
// Apply filter functions
|
// Apply filter functions
|
||||||
if (filterFunctions.length) {
|
if (filterFunctions.length) {
|
||||||
|
|||||||
2
dist/datasource-zabbix/datasource.js.map
vendored
2
dist/datasource-zabbix/datasource.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/datasource-zabbix/zabbixDBConnector.js
vendored
4
dist/datasource-zabbix/zabbixDBConnector.js
vendored
@@ -157,7 +157,6 @@ System.register(['angular', 'lodash'], function (_export, _context) {
|
|||||||
var hosts = _.uniqBy(_.flatten(_.map(items, 'hosts')), 'hostid'); //uniqBy is needed to deduplicate
|
var hosts = _.uniqBy(_.flatten(_.map(items, 'hosts')), 'hostid'); //uniqBy is needed to deduplicate
|
||||||
var grafanaSeries = _.map(time_series, function (series) {
|
var grafanaSeries = _.map(time_series, function (series) {
|
||||||
var itemid = series.name;
|
var itemid = series.name;
|
||||||
var datapoints = series.points;
|
|
||||||
var item = _.find(items, { 'itemid': itemid });
|
var item = _.find(items, { 'itemid': itemid });
|
||||||
var alias = item.name;
|
var alias = item.name;
|
||||||
if (_.keys(hosts).length > 1 && addHostName) {
|
if (_.keys(hosts).length > 1 && addHostName) {
|
||||||
@@ -165,6 +164,9 @@ System.register(['angular', 'lodash'], function (_export, _context) {
|
|||||||
var host = _.find(hosts, { 'hostid': item.hostid });
|
var host = _.find(hosts, { 'hostid': item.hostid });
|
||||||
alias = host.name + ": " + alias;
|
alias = host.name + ": " + alias;
|
||||||
}
|
}
|
||||||
|
// zabbixCachingProxy deduplicates requests and returns one time series for equal queries.
|
||||||
|
// Clone is needed to prevent changing of series object shared between all targets.
|
||||||
|
var datapoints = _.cloneDeep(series.points);
|
||||||
return {
|
return {
|
||||||
target: alias,
|
target: alias,
|
||||||
datapoints: datapoints
|
datapoints: datapoints
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
4
dist/test/datasource-zabbix/datasource.js
vendored
4
dist/test/datasource-zabbix/datasource.js
vendored
@@ -289,10 +289,10 @@ var ZabbixAPIDatasource = function () {
|
|||||||
var aliasFunctions = bindFunctionDefs(target.functions, 'Alias');
|
var aliasFunctions = bindFunctionDefs(target.functions, 'Alias');
|
||||||
|
|
||||||
// Apply transformation functions
|
// Apply transformation functions
|
||||||
timeseries_data = _lodash2.default.map(timeseries_data, function (timeseries) {
|
timeseries_data = _lodash2.default.cloneDeep(_lodash2.default.map(timeseries_data, function (timeseries) {
|
||||||
timeseries.datapoints = sequence(transformFunctions)(timeseries.datapoints);
|
timeseries.datapoints = sequence(transformFunctions)(timeseries.datapoints);
|
||||||
return timeseries;
|
return timeseries;
|
||||||
});
|
}));
|
||||||
|
|
||||||
// Apply filter functions
|
// Apply filter functions
|
||||||
if (filterFunctions.length) {
|
if (filterFunctions.length) {
|
||||||
|
|||||||
@@ -195,7 +195,6 @@ function convertGrafanaTSResponse(time_series, items, addHostName) {
|
|||||||
var hosts = _lodash2.default.uniqBy(_lodash2.default.flatten(_lodash2.default.map(items, 'hosts')), 'hostid'); //uniqBy is needed to deduplicate
|
var hosts = _lodash2.default.uniqBy(_lodash2.default.flatten(_lodash2.default.map(items, 'hosts')), 'hostid'); //uniqBy is needed to deduplicate
|
||||||
var grafanaSeries = _lodash2.default.map(time_series, function (series) {
|
var grafanaSeries = _lodash2.default.map(time_series, function (series) {
|
||||||
var itemid = series.name;
|
var itemid = series.name;
|
||||||
var datapoints = series.points;
|
|
||||||
var item = _lodash2.default.find(items, { 'itemid': itemid });
|
var item = _lodash2.default.find(items, { 'itemid': itemid });
|
||||||
var alias = item.name;
|
var alias = item.name;
|
||||||
if (_lodash2.default.keys(hosts).length > 1 && addHostName) {
|
if (_lodash2.default.keys(hosts).length > 1 && addHostName) {
|
||||||
@@ -203,6 +202,9 @@ function convertGrafanaTSResponse(time_series, items, addHostName) {
|
|||||||
var host = _lodash2.default.find(hosts, { 'hostid': item.hostid });
|
var host = _lodash2.default.find(hosts, { 'hostid': item.hostid });
|
||||||
alias = host.name + ": " + alias;
|
alias = host.name + ": " + alias;
|
||||||
}
|
}
|
||||||
|
// zabbixCachingProxy deduplicates requests and returns one time series for equal queries.
|
||||||
|
// Clone is needed to prevent changing of series object shared between all targets.
|
||||||
|
var datapoints = _lodash2.default.cloneDeep(series.points);
|
||||||
return {
|
return {
|
||||||
target: alias,
|
target: alias,
|
||||||
datapoints: datapoints
|
datapoints: datapoints
|
||||||
|
|||||||
@@ -217,10 +217,10 @@ class ZabbixAPIDatasource {
|
|||||||
let aliasFunctions = bindFunctionDefs(target.functions, 'Alias');
|
let aliasFunctions = bindFunctionDefs(target.functions, 'Alias');
|
||||||
|
|
||||||
// Apply transformation functions
|
// Apply transformation functions
|
||||||
timeseries_data = _.map(timeseries_data, timeseries => {
|
timeseries_data = _.cloneDeep(_.map(timeseries_data, timeseries => {
|
||||||
timeseries.datapoints = sequence(transformFunctions)(timeseries.datapoints);
|
timeseries.datapoints = sequence(transformFunctions)(timeseries.datapoints);
|
||||||
return timeseries;
|
return timeseries;
|
||||||
});
|
}));
|
||||||
|
|
||||||
// Apply filter functions
|
// Apply filter functions
|
||||||
if (filterFunctions.length) {
|
if (filterFunctions.length) {
|
||||||
|
|||||||
@@ -171,13 +171,15 @@ function convertGrafanaTSResponse(time_series, items, addHostName) {
|
|||||||
var hosts = _.uniqBy(_.flatten(_.map(items, 'hosts')), 'hostid'); //uniqBy is needed to deduplicate
|
var hosts = _.uniqBy(_.flatten(_.map(items, 'hosts')), 'hostid'); //uniqBy is needed to deduplicate
|
||||||
let grafanaSeries = _.map(time_series, series => {
|
let grafanaSeries = _.map(time_series, series => {
|
||||||
let itemid = series.name;
|
let itemid = series.name;
|
||||||
let datapoints = series.points;
|
|
||||||
var item = _.find(items, {'itemid': itemid});
|
var item = _.find(items, {'itemid': itemid});
|
||||||
var alias = item.name;
|
var alias = item.name;
|
||||||
if (_.keys(hosts).length > 1 && addHostName) { //only when actual multi hosts selected
|
if (_.keys(hosts).length > 1 && addHostName) { //only when actual multi hosts selected
|
||||||
var host = _.find(hosts, {'hostid': item.hostid});
|
var host = _.find(hosts, {'hostid': item.hostid});
|
||||||
alias = host.name + ": " + alias;
|
alias = host.name + ": " + alias;
|
||||||
}
|
}
|
||||||
|
// zabbixCachingProxy deduplicates requests and returns one time series for equal queries.
|
||||||
|
// Clone is needed to prevent changing of series object shared between all targets.
|
||||||
|
let datapoints = _.cloneDeep(series.points);
|
||||||
return {
|
return {
|
||||||
target: alias,
|
target: alias,
|
||||||
datapoints: datapoints
|
datapoints: datapoints
|
||||||
|
|||||||
Reference in New Issue
Block a user