table mode with triggers stats, #141
This commit is contained in:
48
dist/test/datasource-zabbix/responseHandler.js
vendored
48
dist/test/datasource-zabbix/responseHandler.js
vendored
@@ -8,8 +8,20 @@ var _lodash = require('lodash');
|
||||
|
||||
var _lodash2 = _interopRequireDefault(_lodash);
|
||||
|
||||
var _table_model = require('app/core/table_model');
|
||||
|
||||
var _table_model2 = _interopRequireDefault(_table_model);
|
||||
|
||||
var _constants = require('./constants');
|
||||
|
||||
var c = _interopRequireWildcard(_constants);
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
||||
|
||||
/**
|
||||
* Convert Zabbix API history.get response to Grafana format
|
||||
*
|
||||
@@ -113,13 +125,45 @@ function handleTriggersResponse(triggers, timeRange) {
|
||||
if (_lodash2.default.isNumber(triggers)) {
|
||||
return {
|
||||
target: "triggers count",
|
||||
datapoints: [[triggers, timeRange[1]]]
|
||||
datapoints: [[triggers, timeRange[1] * 1000]]
|
||||
};
|
||||
} else {
|
||||
return triggers;
|
||||
var stats = getTriggerStats(triggers);
|
||||
var table = new _table_model2.default();
|
||||
table.addColumn({ text: 'Host group' });
|
||||
_lodash2.default.each(_lodash2.default.orderBy(c.TRIGGER_SEVERITY, ['val'], ['desc']), function (severity) {
|
||||
table.addColumn({ text: severity.text });
|
||||
});
|
||||
_lodash2.default.each(stats, function (severity_stats, group) {
|
||||
var row = _lodash2.default.map(_lodash2.default.orderBy(_lodash2.default.toPairs(severity_stats), function (s) {
|
||||
return s[0];
|
||||
}, ['desc']), function (s) {
|
||||
return s[1];
|
||||
});
|
||||
row = _lodash2.default.concat.apply(_lodash2.default, [[group]].concat(_toConsumableArray(row)));
|
||||
table.rows.push(row);
|
||||
});
|
||||
return table;
|
||||
}
|
||||
}
|
||||
|
||||
function getTriggerStats(triggers) {
|
||||
var groups = _lodash2.default.uniq(_lodash2.default.flattenDeep(_lodash2.default.map(triggers, function (trigger) {
|
||||
return _lodash2.default.map(trigger.groups, 'name');
|
||||
})));
|
||||
// let severity = _.map(c.TRIGGER_SEVERITY, 'text');
|
||||
var stats = {};
|
||||
_lodash2.default.each(groups, function (group) {
|
||||
stats[group] = { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0 }; // severity:count
|
||||
});
|
||||
_lodash2.default.each(triggers, function (trigger) {
|
||||
_lodash2.default.each(trigger.groups, function (group) {
|
||||
stats[group.name][trigger.priority]++;
|
||||
});
|
||||
});
|
||||
return stats;
|
||||
}
|
||||
|
||||
function convertHistoryPoint(point) {
|
||||
// Value must be a number for properly work
|
||||
return [Number(point.value), point.clock * 1000 + Math.round(point.ns / 1000000)];
|
||||
|
||||
Reference in New Issue
Block a user