SLA over time (#764)
* Added "Functions" to IT Services editor panel * Added support to IT Services graph over time
This commit is contained in:
committed by
Alexander Zobnin
parent
15d76dc941
commit
2fac45c11b
@@ -323,8 +323,8 @@ export class ZabbixDatasource {
|
||||
|
||||
return this.zabbix.getITServices(itServiceFilter)
|
||||
.then(itservices => {
|
||||
return this.zabbix.getSLA(itservices, timeRange, target, options);
|
||||
});
|
||||
return this.zabbix.getSLA(itservices, timeRange, target, options);})
|
||||
.then(itservicesdp => this.applyDataProcessingFunctions(itservicesdp, target));
|
||||
}
|
||||
|
||||
queryTriggersData(target, timeRange) {
|
||||
|
||||
@@ -201,7 +201,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Metric processing functions -->
|
||||
<div class="gf-form-inline" ng-show="ctrl.target.mode == editorMode.METRICS || ctrl.target.mode == editorMode.ITEMID">
|
||||
<div class="gf-form-inline" ng-show="ctrl.target.mode == editorMode.METRICS || ctrl.target.mode == editorMode.ITEMID || ctrl.target.mode == editorMode.ITSERVICE">
|
||||
<div class="gf-form">
|
||||
<label class="gf-form-label query-keyword width-7">Functions</label>
|
||||
</div>
|
||||
|
||||
@@ -123,22 +123,27 @@ function extractText(str, pattern, useCaptureGroups) {
|
||||
}
|
||||
|
||||
function handleSLAResponse(itservice, slaProperty, slaObject) {
|
||||
var targetSLA = slaObject[itservice.serviceid].sla[0];
|
||||
var targetSLA = slaObject[itservice.serviceid].sla;
|
||||
if (slaProperty.property === 'status') {
|
||||
var targetStatus = parseInt(slaObject[itservice.serviceid].status);
|
||||
return {
|
||||
target: itservice.name + ' ' + slaProperty.name,
|
||||
datapoints: [
|
||||
[targetStatus, targetSLA.to * 1000]
|
||||
[targetStatus, targetSLA[0].to * 1000]
|
||||
]
|
||||
};
|
||||
} else {
|
||||
let i;
|
||||
let slaArr = [];
|
||||
for (i = 0; i < targetSLA.length; i++) {
|
||||
if (i === 0) {
|
||||
slaArr.push([targetSLA[i][slaProperty.property], targetSLA[i].from * 1000]);
|
||||
}
|
||||
slaArr.push([targetSLA[i][slaProperty.property], targetSLA[i].to * 1000]);
|
||||
}
|
||||
return {
|
||||
target: itservice.name + ' ' + slaProperty.name,
|
||||
datapoints: [
|
||||
[targetSLA[slaProperty.property], targetSLA.from * 1000],
|
||||
[targetSLA[slaProperty.property], targetSLA.to * 1000]
|
||||
]
|
||||
datapoints: slaArr
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -317,13 +317,24 @@ export class ZabbixAPIConnector {
|
||||
}
|
||||
|
||||
getSLA(serviceids, timeRange) {
|
||||
let defaultRange = 86400;
|
||||
let i;
|
||||
let getIntervals = [];
|
||||
let [timeFrom, timeTo] = timeRange;
|
||||
|
||||
for (i = timeFrom; i <= timeTo; i = i + defaultRange) {
|
||||
if (timeTo < (i + defaultRange)) {
|
||||
if (timeTo !== i) {
|
||||
getIntervals.push({from : i, to : timeTo});
|
||||
}
|
||||
} else {
|
||||
getIntervals.push({from : i, to : (i + defaultRange)});
|
||||
}
|
||||
}
|
||||
|
||||
var params = {
|
||||
serviceids: serviceids,
|
||||
intervals: [{
|
||||
from: timeFrom,
|
||||
to: timeTo
|
||||
}]
|
||||
intervals: getIntervals
|
||||
};
|
||||
return this.request('service.getsla', params);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user