show maintenance icon for triggers, closes #299
This commit is contained in:
3
dist/css/grafana-zabbix.dark.css
vendored
3
dist/css/grafana-zabbix.dark.css
vendored
@@ -35,6 +35,9 @@
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
animation: zabbix-triggers-icon 0.8s cubic-bezier(0.46, 0.03, 0.52, 0.96) 0s infinite alternate; }
|
animation: zabbix-triggers-icon 0.8s cubic-bezier(0.46, 0.03, 0.52, 0.96) 0s infinite alternate; }
|
||||||
|
|
||||||
|
.zbx-maintenance-icon {
|
||||||
|
color: #eb7b18; }
|
||||||
|
|
||||||
@keyframes zabbix-triggers-panel {
|
@keyframes zabbix-triggers-panel {
|
||||||
100% {
|
100% {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
|||||||
2
dist/css/grafana-zabbix.dark.css.map
vendored
2
dist/css/grafana-zabbix.dark.css.map
vendored
@@ -9,6 +9,6 @@
|
|||||||
"../../src/sass/_panel-triggers.scss",
|
"../../src/sass/_panel-triggers.scss",
|
||||||
"../../src/sass/_query_editor.scss"
|
"../../src/sass/_query_editor.scss"
|
||||||
],
|
],
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"names": []
|
"names": []
|
||||||
}
|
}
|
||||||
3
dist/css/grafana-zabbix.light.css
vendored
3
dist/css/grafana-zabbix.light.css
vendored
@@ -35,6 +35,9 @@
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
animation: zabbix-triggers-icon 0.8s cubic-bezier(0.46, 0.03, 0.52, 0.96) 0s infinite alternate; }
|
animation: zabbix-triggers-icon 0.8s cubic-bezier(0.46, 0.03, 0.52, 0.96) 0s infinite alternate; }
|
||||||
|
|
||||||
|
.zbx-maintenance-icon {
|
||||||
|
color: #ff7941; }
|
||||||
|
|
||||||
@keyframes zabbix-triggers-panel {
|
@keyframes zabbix-triggers-panel {
|
||||||
100% {
|
100% {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
|||||||
2
dist/css/grafana-zabbix.light.css.map
vendored
2
dist/css/grafana-zabbix.light.css.map
vendored
@@ -9,6 +9,6 @@
|
|||||||
"../../src/sass/_panel-triggers.scss",
|
"../../src/sass/_panel-triggers.scss",
|
||||||
"../../src/sass/_query_editor.scss"
|
"../../src/sass/_query_editor.scss"
|
||||||
],
|
],
|
||||||
"mappings": "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",
|
"mappings": "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",
|
||||||
"names": []
|
"names": []
|
||||||
}
|
}
|
||||||
8
dist/datasource-zabbix/zabbixAPI.service.js
vendored
8
dist/datasource-zabbix/zabbixAPI.service.js
vendored
@@ -315,7 +315,7 @@ System.register(['angular', 'lodash', './utils', './zabbixAPICore.service'], fun
|
|||||||
key: 'getTriggers',
|
key: 'getTriggers',
|
||||||
value: function getTriggers(groupids, hostids, applicationids, options) {
|
value: function getTriggers(groupids, hostids, applicationids, options) {
|
||||||
var showTriggers = options.showTriggers,
|
var showTriggers = options.showTriggers,
|
||||||
hideHostsInMaintenance = options.hideHostsInMaintenance,
|
maintenance = options.maintenance,
|
||||||
timeFrom = options.timeFrom,
|
timeFrom = options.timeFrom,
|
||||||
timeTo = options.timeTo;
|
timeTo = options.timeTo;
|
||||||
|
|
||||||
@@ -335,7 +335,7 @@ System.register(['angular', 'lodash', './utils', './zabbixAPICore.service'], fun
|
|||||||
value: 1
|
value: 1
|
||||||
},
|
},
|
||||||
selectGroups: ['name'],
|
selectGroups: ['name'],
|
||||||
selectHosts: ['name', 'host'],
|
selectHosts: ['name', 'host', 'maintenance_status'],
|
||||||
selectItems: ['name', 'key_', 'lastvalue'],
|
selectItems: ['name', 'key_', 'lastvalue'],
|
||||||
selectLastEvent: 'extend'
|
selectLastEvent: 'extend'
|
||||||
};
|
};
|
||||||
@@ -344,8 +344,8 @@ System.register(['angular', 'lodash', './utils', './zabbixAPICore.service'], fun
|
|||||||
params.filter.value = showTriggers;
|
params.filter.value = showTriggers;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hideHostsInMaintenance) {
|
if (maintenance) {
|
||||||
params.maintenance = false;
|
params.maintenance = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeFrom || timeTo) {
|
if (timeFrom || timeTo) {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
1
dist/panel-triggers/migrations.js
vendored
1
dist/panel-triggers/migrations.js
vendored
@@ -28,6 +28,7 @@ System.register([], function (_export, _context) {
|
|||||||
delete panel.ageField;
|
delete panel.ageField;
|
||||||
delete panel.infoField;
|
delete panel.infoField;
|
||||||
delete panel.scroll;
|
delete panel.scroll;
|
||||||
|
delete panel.hideHostsInMaintenance;
|
||||||
}
|
}
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
|
|||||||
2
dist/panel-triggers/migrations.js.map
vendored
2
dist/panel-triggers/migrations.js.map
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"sources":["../../src/panel-triggers/migrations.js"],"names":["migratePanelSchema","panel","isEmptyPanel","schemaVersion","getSchemaVersion","CURRENT_SCHEMA_VERSION","datasources","datasource","targets","triggers","lastChangeField","ageField","infoField","scroll"],"mappings":";;;;;;AAGO,WAASA,kBAAT,CAA4BC,KAA5B,EAAmC;AACxC,QAAIC,aAAaD,KAAb,CAAJ,EAAyB;AACvB,aAAOA,KAAP;AACD;;AAED,QAAME,gBAAgBC,iBAAiBH,KAAjB,CAAtB;AACAA,UAAME,aAAN,GAAsBE,sBAAtB;;AAEA,QAAIF,gBAAgB,CAApB,EAAuB;AACrBF,YAAMK,WAAN,GAAoB,CAACL,MAAMM,UAAP,CAApB;AACAN,YAAMO,OAAN,GAAgB,EAAhB;AACAP,YAAMO,OAAN,CAAcP,MAAMK,WAAN,CAAkB,CAAlB,CAAd,IAAsCL,MAAMQ,QAA5C;;AAEA;AACA,aAAOR,MAAMQ,QAAb;AACA,aAAOR,MAAMM,UAAb;AACD;;AAED,QAAIJ,gBAAgB,CAApB,EAAuB;AACrB;AACA,aAAOF,MAAMS,eAAb;AACA,aAAOT,MAAMU,QAAb;AACA,aAAOV,MAAMW,SAAb;AACA,aAAOX,MAAMY,MAAb;AACD;;AAED,WAAOZ,KAAP;AACD;;gCA3BeD,kB;;AA6BhB,WAASI,gBAAT,CAA0BH,KAA1B,EAAiC;AAC/B,WAAOA,MAAME,aAAN,IAAuB,CAA9B;AACD;;AAED,WAASD,YAAT,CAAsBD,KAAtB,EAA6B;AAC3B,WAAO,CAACA,MAAMM,UAAP,IAAqB,CAACN,MAAMK,WAA5B,IAA2C,CAACL,MAAMQ,QAAlD,IAA8D,CAACR,MAAMO,OAA5E;AACD;;;;AArCKH,4B,GAAyB,C","file":"migrations.js","sourcesContent":["// Actual schema version\nconst CURRENT_SCHEMA_VERSION = 3;\n\nexport function migratePanelSchema(panel) {\n if (isEmptyPanel(panel)) {\n return panel;\n }\n\n const schemaVersion = getSchemaVersion(panel);\n panel.schemaVersion = CURRENT_SCHEMA_VERSION;\n\n if (schemaVersion < 2) {\n panel.datasources = [panel.datasource];\n panel.targets = {};\n panel.targets[panel.datasources[0]] = panel.triggers;\n\n // delete old props\n delete panel.triggers;\n delete panel.datasource;\n }\n\n if (schemaVersion < 3) {\n // delete old props\n delete panel.lastChangeField;\n delete panel.ageField;\n delete panel.infoField;\n delete panel.scroll;\n }\n\n return panel;\n}\n\nfunction getSchemaVersion(panel) {\n return panel.schemaVersion || 1;\n}\n\nfunction isEmptyPanel(panel) {\n return !panel.datasource && !panel.datasources && !panel.triggers && !panel.targets;\n}\n"]}
|
{"version":3,"sources":["../../src/panel-triggers/migrations.js"],"names":["migratePanelSchema","panel","isEmptyPanel","schemaVersion","getSchemaVersion","CURRENT_SCHEMA_VERSION","datasources","datasource","targets","triggers","lastChangeField","ageField","infoField","scroll","hideHostsInMaintenance"],"mappings":";;;;;;AAGO,WAASA,kBAAT,CAA4BC,KAA5B,EAAmC;AACxC,QAAIC,aAAaD,KAAb,CAAJ,EAAyB;AACvB,aAAOA,KAAP;AACD;;AAED,QAAME,gBAAgBC,iBAAiBH,KAAjB,CAAtB;AACAA,UAAME,aAAN,GAAsBE,sBAAtB;;AAEA,QAAIF,gBAAgB,CAApB,EAAuB;AACrBF,YAAMK,WAAN,GAAoB,CAACL,MAAMM,UAAP,CAApB;AACAN,YAAMO,OAAN,GAAgB,EAAhB;AACAP,YAAMO,OAAN,CAAcP,MAAMK,WAAN,CAAkB,CAAlB,CAAd,IAAsCL,MAAMQ,QAA5C;;AAEA;AACA,aAAOR,MAAMQ,QAAb;AACA,aAAOR,MAAMM,UAAb;AACD;;AAED,QAAIJ,gBAAgB,CAApB,EAAuB;AACrB;AACA,aAAOF,MAAMS,eAAb;AACA,aAAOT,MAAMU,QAAb;AACA,aAAOV,MAAMW,SAAb;AACA,aAAOX,MAAMY,MAAb;AACA,aAAOZ,MAAMa,sBAAb;AACD;;AAED,WAAOb,KAAP;AACD;;gCA5BeD,kB;;AA8BhB,WAASI,gBAAT,CAA0BH,KAA1B,EAAiC;AAC/B,WAAOA,MAAME,aAAN,IAAuB,CAA9B;AACD;;AAED,WAASD,YAAT,CAAsBD,KAAtB,EAA6B;AAC3B,WAAO,CAACA,MAAMM,UAAP,IAAqB,CAACN,MAAMK,WAA5B,IAA2C,CAACL,MAAMQ,QAAlD,IAA8D,CAACR,MAAMO,OAA5E;AACD;;;;AAtCKH,4B,GAAyB,C","file":"migrations.js","sourcesContent":["// Actual schema version\nconst CURRENT_SCHEMA_VERSION = 3;\n\nexport function migratePanelSchema(panel) {\n if (isEmptyPanel(panel)) {\n return panel;\n }\n\n const schemaVersion = getSchemaVersion(panel);\n panel.schemaVersion = CURRENT_SCHEMA_VERSION;\n\n if (schemaVersion < 2) {\n panel.datasources = [panel.datasource];\n panel.targets = {};\n panel.targets[panel.datasources[0]] = panel.triggers;\n\n // delete old props\n delete panel.triggers;\n delete panel.datasource;\n }\n\n if (schemaVersion < 3) {\n // delete old props\n delete panel.lastChangeField;\n delete panel.ageField;\n delete panel.infoField;\n delete panel.scroll;\n delete panel.hideHostsInMaintenance;\n }\n\n return panel;\n}\n\nfunction getSchemaVersion(panel) {\n return panel.schemaVersion || 1;\n}\n\nfunction isEmptyPanel(panel) {\n return !panel.datasource && !panel.datasources && !panel.triggers && !panel.targets;\n}\n"]}
|
||||||
1
dist/panel-triggers/partials/module.html
vendored
1
dist/panel-triggers/partials/module.html
vendored
@@ -13,6 +13,7 @@
|
|||||||
<p class="alert-list-title">
|
<p class="alert-list-title">
|
||||||
{{trigger.description}}
|
{{trigger.description}}
|
||||||
<span class="zabbix-hostname" ng-if="ctrl.panel.hostField || ctrl.panel.hostTechNameField">
|
<span class="zabbix-hostname" ng-if="ctrl.panel.hostField || ctrl.panel.hostTechNameField">
|
||||||
|
<i ng-if="trigger.maintenance" class="fa fa-wrench zbx-maintenance-icon"></i>
|
||||||
{{ ctrl.formatHostName(trigger) }}
|
{{ ctrl.formatHostName(trigger) }}
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -37,9 +37,9 @@
|
|||||||
<h5 class="section-heading">Options</h5>
|
<h5 class="section-heading">Options</h5>
|
||||||
<gf-form-switch class="gf-form"
|
<gf-form-switch class="gf-form"
|
||||||
label-class="width-15"
|
label-class="width-15"
|
||||||
label="Hide hosts in maintenance"
|
label="Show hosts in maintenance"
|
||||||
checked="ctrl.panel.hideHostsInMaintenance"
|
checked="ctrl.panel.hostsInMaintenance"
|
||||||
on-change="ctrl.refresh()">
|
on-change="ctrl.render()">
|
||||||
</gf-form-switch>
|
</gf-form-switch>
|
||||||
<div class="gf-form">
|
<div class="gf-form">
|
||||||
<label class="gf-form-label width-8">Acknowledged</label>
|
<label class="gf-form-label width-8">Acknowledged</label>
|
||||||
|
|||||||
8
dist/panel-triggers/specs/migrations.spec.js
vendored
8
dist/panel-triggers/specs/migrations.spec.js
vendored
@@ -54,13 +54,15 @@ describe('Triggers Panel schema migration', () => {
|
|||||||
statusField: false,
|
statusField: false,
|
||||||
severityField: false,
|
severityField: false,
|
||||||
descriptionField: true,
|
descriptionField: true,
|
||||||
hideHostsInMaintenance: false,
|
hostsInMaintenance: true,
|
||||||
showTriggers: 'all triggers',
|
showTriggers: 'all triggers',
|
||||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||||
showEvents: { text: 'Problems', value: '1' },
|
showEvents: { text: 'Problems', value: '1' },
|
||||||
limit: 10,
|
limit: 10,
|
||||||
fontSize: '100%',
|
fontSize: '100%',
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
highlightNewEvents: true,
|
||||||
|
highlightNewerThan: '1h',
|
||||||
customLastChangeFormat: false,
|
customLastChangeFormat: false,
|
||||||
lastChangeFormat: "",
|
lastChangeFormat: "",
|
||||||
triggerSeverity: DEFAULT_SEVERITY,
|
triggerSeverity: DEFAULT_SEVERITY,
|
||||||
@@ -86,13 +88,15 @@ describe('Triggers Panel schema migration', () => {
|
|||||||
statusField: true,
|
statusField: true,
|
||||||
severityField: true,
|
severityField: true,
|
||||||
descriptionField: true,
|
descriptionField: true,
|
||||||
hideHostsInMaintenance: false,
|
hostsInMaintenance: true,
|
||||||
showTriggers: 'all triggers',
|
showTriggers: 'all triggers',
|
||||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||||
showEvents: { text: 'Problems', value: '1' },
|
showEvents: { text: 'Problems', value: '1' },
|
||||||
limit: 100,
|
limit: 100,
|
||||||
fontSize: '100%',
|
fontSize: '100%',
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
highlightNewEvents: true,
|
||||||
|
highlightNewerThan: '1h',
|
||||||
customLastChangeFormat: false,
|
customLastChangeFormat: false,
|
||||||
lastChangeFormat: "",
|
lastChangeFormat: "",
|
||||||
triggerSeverity: DEFAULT_SEVERITY,
|
triggerSeverity: DEFAULT_SEVERITY,
|
||||||
|
|||||||
57
dist/panel-triggers/triggers_panel_ctrl.js
vendored
57
dist/panel-triggers/triggers_panel_ctrl.js
vendored
@@ -35,7 +35,7 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
|||||||
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _filterTriggers(triggers, triggerFilter) {
|
function filterTriggers(triggers, triggerFilter) {
|
||||||
if (utils.isRegex(triggerFilter)) {
|
if (utils.isRegex(triggerFilter)) {
|
||||||
return _.filter(triggers, function (trigger) {
|
return _.filter(triggers, function (trigger) {
|
||||||
return utils.buildRegex(triggerFilter).test(trigger.description);
|
return utils.buildRegex(triggerFilter).test(trigger.description);
|
||||||
@@ -136,7 +136,7 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
|||||||
severityField: true,
|
severityField: true,
|
||||||
descriptionField: true,
|
descriptionField: true,
|
||||||
// Options
|
// Options
|
||||||
hideHostsInMaintenance: false,
|
hostsInMaintenance: true,
|
||||||
showTriggers: 'all triggers',
|
showTriggers: 'all triggers',
|
||||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||||
showEvents: { text: 'Problems', value: '1' },
|
showEvents: { text: 'Problems', value: '1' },
|
||||||
@@ -289,16 +289,16 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
|||||||
value: function render(zabbixTriggers) {
|
value: function render(zabbixTriggers) {
|
||||||
var _this4 = this;
|
var _this4 = this;
|
||||||
|
|
||||||
var triggers = zabbixTriggers || this.triggerList;
|
var triggers = _.cloneDeep(zabbixTriggers || this.triggerListUnfiltered);
|
||||||
|
this.triggerListUnfiltered = _.cloneDeep(triggers);
|
||||||
|
|
||||||
if (zabbixTriggers) {
|
|
||||||
triggers = _.map(triggers, this.formatTrigger.bind(this));
|
triggers = _.map(triggers, this.formatTrigger.bind(this));
|
||||||
} else {
|
triggers = this.filterTriggersPost(triggers);
|
||||||
triggers = _.map(triggers, this.updateTriggerFormat.bind(this));
|
|
||||||
}
|
|
||||||
triggers = this.sortTriggers(triggers);
|
triggers = this.sortTriggers(triggers);
|
||||||
|
|
||||||
// Limit triggers number
|
// Limit triggers number
|
||||||
triggers = triggers.slice(0, this.panel.limit);
|
triggers = triggers.slice(0, this.panel.limit);
|
||||||
|
|
||||||
this.triggerList = triggers;
|
this.triggerList = triggers;
|
||||||
this.getCurrentTriggersPage();
|
this.getCurrentTriggersPage();
|
||||||
|
|
||||||
@@ -316,7 +316,6 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
|||||||
var zabbix = datasource.zabbix;
|
var zabbix = datasource.zabbix;
|
||||||
var showEvents = _this5.panel.showEvents.value;
|
var showEvents = _this5.panel.showEvents.value;
|
||||||
var triggerFilter = _this5.panel.targets[ds];
|
var triggerFilter = _this5.panel.targets[ds];
|
||||||
var hideHostsInMaintenance = _this5.panel.hideHostsInMaintenance;
|
|
||||||
|
|
||||||
// Replace template variables
|
// Replace template variables
|
||||||
var groupFilter = datasource.replaceTemplateVars(triggerFilter.group.filter);
|
var groupFilter = datasource.replaceTemplateVars(triggerFilter.group.filter);
|
||||||
@@ -324,15 +323,16 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
|||||||
var appFilter = datasource.replaceTemplateVars(triggerFilter.application.filter);
|
var appFilter = datasource.replaceTemplateVars(triggerFilter.application.filter);
|
||||||
|
|
||||||
var triggersOptions = {
|
var triggersOptions = {
|
||||||
showTriggers: showEvents,
|
showTriggers: showEvents
|
||||||
hideHostsInMaintenance: hideHostsInMaintenance
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return zabbix.getTriggers(groupFilter, hostFilter, appFilter, triggersOptions);
|
return zabbix.getTriggers(groupFilter, hostFilter, appFilter, triggersOptions);
|
||||||
}).then(function (triggers) {
|
}).then(function (triggers) {
|
||||||
return _this5.getAcknowledges(triggers, ds);
|
return _this5.getAcknowledges(triggers, ds);
|
||||||
}).then(function (triggers) {
|
}).then(function (triggers) {
|
||||||
return _this5.filterTriggers(triggers, ds);
|
return _this5.setMaintenanceStatus(triggers);
|
||||||
|
}).then(function (triggers) {
|
||||||
|
return _this5.filterTriggersPre(triggers, ds);
|
||||||
}).then(function (triggers) {
|
}).then(function (triggers) {
|
||||||
return _this5.addTriggerDataSource(triggers, ds);
|
return _this5.addTriggerDataSource(triggers, ds);
|
||||||
});
|
});
|
||||||
@@ -382,17 +382,24 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
key: 'filterTriggers',
|
key: 'filterTriggersPre',
|
||||||
value: function filterTriggers(triggerList, ds) {
|
value: function filterTriggersPre(triggerList, ds) {
|
||||||
var _this7 = this;
|
|
||||||
|
|
||||||
// Filter triggers by description
|
// Filter triggers by description
|
||||||
var triggerFilter = this.panel.targets[ds].trigger.filter;
|
var triggerFilter = this.panel.targets[ds].trigger.filter;
|
||||||
triggerFilter = this.datasources[ds].replaceTemplateVars(triggerFilter);
|
triggerFilter = this.datasources[ds].replaceTemplateVars(triggerFilter);
|
||||||
if (triggerFilter) {
|
if (triggerFilter) {
|
||||||
triggerList = _filterTriggers(triggerList, triggerFilter);
|
triggerList = filterTriggers(triggerList, triggerFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return triggerList;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: 'filterTriggersPost',
|
||||||
|
value: function filterTriggersPost(triggers) {
|
||||||
|
var _this7 = this;
|
||||||
|
|
||||||
|
var triggerList = _.cloneDeep(triggers);
|
||||||
|
|
||||||
// Filter acknowledged triggers
|
// Filter acknowledged triggers
|
||||||
if (this.panel.showTriggers === 'unacknowledged') {
|
if (this.panel.showTriggers === 'unacknowledged') {
|
||||||
triggerList = _.filter(triggerList, function (trigger) {
|
triggerList = _.filter(triggerList, function (trigger) {
|
||||||
@@ -404,6 +411,13 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
|||||||
triggerList = triggerList;
|
triggerList = triggerList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filter by maintenance status
|
||||||
|
if (!this.panel.hostsInMaintenance) {
|
||||||
|
triggerList = _.filter(triggerList, function (trigger) {
|
||||||
|
return trigger.maintenance === false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Filter triggers by severity
|
// Filter triggers by severity
|
||||||
triggerList = _.filter(triggerList, function (trigger) {
|
triggerList = _.filter(triggerList, function (trigger) {
|
||||||
return _this7.panel.triggerSeverity[trigger.priority].show;
|
return _this7.panel.triggerSeverity[trigger.priority].show;
|
||||||
@@ -411,6 +425,17 @@ System.register(['lodash', 'jquery', 'moment', '../datasource-zabbix/utils', 'ap
|
|||||||
|
|
||||||
return triggerList;
|
return triggerList;
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
key: 'setMaintenanceStatus',
|
||||||
|
value: function setMaintenanceStatus(triggers) {
|
||||||
|
_.each(triggers, function (trigger) {
|
||||||
|
var maintenance_status = _.some(trigger.hosts, function (host) {
|
||||||
|
return host.maintenance_status === '1';
|
||||||
|
});
|
||||||
|
trigger.maintenance = maintenance_status;
|
||||||
|
});
|
||||||
|
return triggers;
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
key: 'addTriggerDataSource',
|
key: 'addTriggerDataSource',
|
||||||
value: function addTriggerDataSource(triggers, ds) {
|
value: function addTriggerDataSource(triggers, ds) {
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -342,7 +342,7 @@ function ZabbixAPIServiceFactory(alertSrv, zabbixAPICoreService) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getTriggers(groupids, hostids, applicationids, options) {
|
getTriggers(groupids, hostids, applicationids, options) {
|
||||||
let {showTriggers, hideHostsInMaintenance, timeFrom, timeTo} = options;
|
let {showTriggers, maintenance, timeFrom, timeTo} = options;
|
||||||
|
|
||||||
let params = {
|
let params = {
|
||||||
output: 'extend',
|
output: 'extend',
|
||||||
@@ -359,7 +359,7 @@ function ZabbixAPIServiceFactory(alertSrv, zabbixAPICoreService) {
|
|||||||
value: 1
|
value: 1
|
||||||
},
|
},
|
||||||
selectGroups: ['name'],
|
selectGroups: ['name'],
|
||||||
selectHosts: ['name', 'host'],
|
selectHosts: ['name', 'host', 'maintenance_status'],
|
||||||
selectItems: ['name', 'key_', 'lastvalue'],
|
selectItems: ['name', 'key_', 'lastvalue'],
|
||||||
selectLastEvent: 'extend'
|
selectLastEvent: 'extend'
|
||||||
};
|
};
|
||||||
@@ -368,8 +368,8 @@ function ZabbixAPIServiceFactory(alertSrv, zabbixAPICoreService) {
|
|||||||
params.filter.value = showTriggers;
|
params.filter.value = showTriggers;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hideHostsInMaintenance) {
|
if (maintenance) {
|
||||||
params.maintenance = false;
|
params.maintenance = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (timeFrom || timeTo) {
|
if (timeFrom || timeTo) {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ export function migratePanelSchema(panel) {
|
|||||||
delete panel.ageField;
|
delete panel.ageField;
|
||||||
delete panel.infoField;
|
delete panel.infoField;
|
||||||
delete panel.scroll;
|
delete panel.scroll;
|
||||||
|
delete panel.hideHostsInMaintenance;
|
||||||
}
|
}
|
||||||
|
|
||||||
return panel;
|
return panel;
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
<p class="alert-list-title">
|
<p class="alert-list-title">
|
||||||
{{trigger.description}}
|
{{trigger.description}}
|
||||||
<span class="zabbix-hostname" ng-if="ctrl.panel.hostField || ctrl.panel.hostTechNameField">
|
<span class="zabbix-hostname" ng-if="ctrl.panel.hostField || ctrl.panel.hostTechNameField">
|
||||||
|
<i ng-if="trigger.maintenance" class="fa fa-wrench zbx-maintenance-icon"></i>
|
||||||
{{ ctrl.formatHostName(trigger) }}
|
{{ ctrl.formatHostName(trigger) }}
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -37,9 +37,9 @@
|
|||||||
<h5 class="section-heading">Options</h5>
|
<h5 class="section-heading">Options</h5>
|
||||||
<gf-form-switch class="gf-form"
|
<gf-form-switch class="gf-form"
|
||||||
label-class="width-15"
|
label-class="width-15"
|
||||||
label="Hide hosts in maintenance"
|
label="Show hosts in maintenance"
|
||||||
checked="ctrl.panel.hideHostsInMaintenance"
|
checked="ctrl.panel.hostsInMaintenance"
|
||||||
on-change="ctrl.refresh()">
|
on-change="ctrl.render()">
|
||||||
</gf-form-switch>
|
</gf-form-switch>
|
||||||
<div class="gf-form">
|
<div class="gf-form">
|
||||||
<label class="gf-form-label width-8">Acknowledged</label>
|
<label class="gf-form-label width-8">Acknowledged</label>
|
||||||
|
|||||||
@@ -54,13 +54,15 @@ describe('Triggers Panel schema migration', () => {
|
|||||||
statusField: false,
|
statusField: false,
|
||||||
severityField: false,
|
severityField: false,
|
||||||
descriptionField: true,
|
descriptionField: true,
|
||||||
hideHostsInMaintenance: false,
|
hostsInMaintenance: true,
|
||||||
showTriggers: 'all triggers',
|
showTriggers: 'all triggers',
|
||||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||||
showEvents: { text: 'Problems', value: '1' },
|
showEvents: { text: 'Problems', value: '1' },
|
||||||
limit: 10,
|
limit: 10,
|
||||||
fontSize: '100%',
|
fontSize: '100%',
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
highlightNewEvents: true,
|
||||||
|
highlightNewerThan: '1h',
|
||||||
customLastChangeFormat: false,
|
customLastChangeFormat: false,
|
||||||
lastChangeFormat: "",
|
lastChangeFormat: "",
|
||||||
triggerSeverity: DEFAULT_SEVERITY,
|
triggerSeverity: DEFAULT_SEVERITY,
|
||||||
@@ -86,13 +88,15 @@ describe('Triggers Panel schema migration', () => {
|
|||||||
statusField: true,
|
statusField: true,
|
||||||
severityField: true,
|
severityField: true,
|
||||||
descriptionField: true,
|
descriptionField: true,
|
||||||
hideHostsInMaintenance: false,
|
hostsInMaintenance: true,
|
||||||
showTriggers: 'all triggers',
|
showTriggers: 'all triggers',
|
||||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||||
showEvents: { text: 'Problems', value: '1' },
|
showEvents: { text: 'Problems', value: '1' },
|
||||||
limit: 100,
|
limit: 100,
|
||||||
fontSize: '100%',
|
fontSize: '100%',
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
highlightNewEvents: true,
|
||||||
|
highlightNewerThan: '1h',
|
||||||
customLastChangeFormat: false,
|
customLastChangeFormat: false,
|
||||||
lastChangeFormat: "",
|
lastChangeFormat: "",
|
||||||
triggerSeverity: DEFAULT_SEVERITY,
|
triggerSeverity: DEFAULT_SEVERITY,
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export const PANEL_DEFAULTS = {
|
|||||||
severityField: true,
|
severityField: true,
|
||||||
descriptionField: true,
|
descriptionField: true,
|
||||||
// Options
|
// Options
|
||||||
hideHostsInMaintenance: false,
|
hostsInMaintenance: true,
|
||||||
showTriggers: 'all triggers',
|
showTriggers: 'all triggers',
|
||||||
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
||||||
showEvents: { text: 'Problems', value: '1' },
|
showEvents: { text: 'Problems', value: '1' },
|
||||||
@@ -171,16 +171,16 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render(zabbixTriggers) {
|
render(zabbixTriggers) {
|
||||||
let triggers = zabbixTriggers || this.triggerList;
|
let triggers = _.cloneDeep(zabbixTriggers || this.triggerListUnfiltered);
|
||||||
|
this.triggerListUnfiltered = _.cloneDeep(triggers);
|
||||||
|
|
||||||
if (zabbixTriggers) {
|
|
||||||
triggers = _.map(triggers, this.formatTrigger.bind(this));
|
triggers = _.map(triggers, this.formatTrigger.bind(this));
|
||||||
} else {
|
triggers = this.filterTriggersPost(triggers);
|
||||||
triggers = _.map(triggers, this.updateTriggerFormat.bind(this));
|
|
||||||
}
|
|
||||||
triggers = this.sortTriggers(triggers);
|
triggers = this.sortTriggers(triggers);
|
||||||
|
|
||||||
// Limit triggers number
|
// Limit triggers number
|
||||||
triggers = triggers.slice(0, this.panel.limit);
|
triggers = triggers.slice(0, this.panel.limit);
|
||||||
|
|
||||||
this.triggerList = triggers;
|
this.triggerList = triggers;
|
||||||
this.getCurrentTriggersPage();
|
this.getCurrentTriggersPage();
|
||||||
|
|
||||||
@@ -196,7 +196,6 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
var zabbix = datasource.zabbix;
|
var zabbix = datasource.zabbix;
|
||||||
var showEvents = this.panel.showEvents.value;
|
var showEvents = this.panel.showEvents.value;
|
||||||
var triggerFilter = this.panel.targets[ds];
|
var triggerFilter = this.panel.targets[ds];
|
||||||
var hideHostsInMaintenance = this.panel.hideHostsInMaintenance;
|
|
||||||
|
|
||||||
// Replace template variables
|
// Replace template variables
|
||||||
var groupFilter = datasource.replaceTemplateVars(triggerFilter.group.filter);
|
var groupFilter = datasource.replaceTemplateVars(triggerFilter.group.filter);
|
||||||
@@ -204,15 +203,16 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
var appFilter = datasource.replaceTemplateVars(triggerFilter.application.filter);
|
var appFilter = datasource.replaceTemplateVars(triggerFilter.application.filter);
|
||||||
|
|
||||||
let triggersOptions = {
|
let triggersOptions = {
|
||||||
showTriggers: showEvents,
|
showTriggers: showEvents
|
||||||
hideHostsInMaintenance: hideHostsInMaintenance
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return zabbix.getTriggers(groupFilter, hostFilter, appFilter, triggersOptions);
|
return zabbix.getTriggers(groupFilter, hostFilter, appFilter, triggersOptions);
|
||||||
}).then((triggers) => {
|
}).then((triggers) => {
|
||||||
return this.getAcknowledges(triggers, ds);
|
return this.getAcknowledges(triggers, ds);
|
||||||
}).then((triggers) => {
|
}).then((triggers) => {
|
||||||
return this.filterTriggers(triggers, ds);
|
return this.setMaintenanceStatus(triggers);
|
||||||
|
}).then((triggers) => {
|
||||||
|
return this.filterTriggersPre(triggers, ds);
|
||||||
}).then((triggers) => {
|
}).then((triggers) => {
|
||||||
return this.addTriggerDataSource(triggers, ds);
|
return this.addTriggerDataSource(triggers, ds);
|
||||||
});
|
});
|
||||||
@@ -259,7 +259,7 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
filterTriggers(triggerList, ds) {
|
filterTriggersPre(triggerList, ds) {
|
||||||
// Filter triggers by description
|
// Filter triggers by description
|
||||||
var triggerFilter = this.panel.targets[ds].trigger.filter;
|
var triggerFilter = this.panel.targets[ds].trigger.filter;
|
||||||
triggerFilter = this.datasources[ds].replaceTemplateVars(triggerFilter);
|
triggerFilter = this.datasources[ds].replaceTemplateVars(triggerFilter);
|
||||||
@@ -267,6 +267,12 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
triggerList = filterTriggers(triggerList, triggerFilter);
|
triggerList = filterTriggers(triggerList, triggerFilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return triggerList;
|
||||||
|
}
|
||||||
|
|
||||||
|
filterTriggersPost(triggers) {
|
||||||
|
let triggerList = _.cloneDeep(triggers);
|
||||||
|
|
||||||
// Filter acknowledged triggers
|
// Filter acknowledged triggers
|
||||||
if (this.panel.showTriggers === 'unacknowledged') {
|
if (this.panel.showTriggers === 'unacknowledged') {
|
||||||
triggerList = _.filter(triggerList, trigger => {
|
triggerList = _.filter(triggerList, trigger => {
|
||||||
@@ -278,6 +284,11 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
triggerList = triggerList;
|
triggerList = triggerList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filter by maintenance status
|
||||||
|
if (!this.panel.hostsInMaintenance) {
|
||||||
|
triggerList = _.filter(triggerList, (trigger) => trigger.maintenance === false);
|
||||||
|
}
|
||||||
|
|
||||||
// Filter triggers by severity
|
// Filter triggers by severity
|
||||||
triggerList = _.filter(triggerList, trigger => {
|
triggerList = _.filter(triggerList, trigger => {
|
||||||
return this.panel.triggerSeverity[trigger.priority].show;
|
return this.panel.triggerSeverity[trigger.priority].show;
|
||||||
@@ -286,6 +297,14 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
|||||||
return triggerList;
|
return triggerList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setMaintenanceStatus(triggers) {
|
||||||
|
_.each(triggers, (trigger) => {
|
||||||
|
let maintenance_status = _.some(trigger.hosts, (host) => host.maintenance_status === '1');
|
||||||
|
trigger.maintenance = maintenance_status;
|
||||||
|
});
|
||||||
|
return triggers;
|
||||||
|
}
|
||||||
|
|
||||||
addTriggerDataSource(triggers, ds) {
|
addTriggerDataSource(triggers, ds) {
|
||||||
_.each(triggers, (trigger) => {
|
_.each(triggers, (trigger) => {
|
||||||
trigger.datasource = ds;
|
trigger.datasource = ds;
|
||||||
|
|||||||
@@ -69,6 +69,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.zbx-maintenance-icon {
|
||||||
|
color: $orange;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@keyframes zabbix-triggers-panel {
|
@keyframes zabbix-triggers-panel {
|
||||||
100% {
|
100% {
|
||||||
|
|||||||
Reference in New Issue
Block a user