(ServiceNow )
gs.info("checking list of today's Alerts by common problemID");
var grAlerts=new GlideRecord('em_alert');
grAlerts.addQuery('source', 'SGO-Dynatrace');
grAlerts.addEncodedQuery('sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()');
grAlerts.query();
grAlerts.orderBy('message_key');
gs.info('TOTAL SGO ALERTS FOR TODAY: ' + grAlerts.getRowCount());
var dupl_prbID_arr = [];
var dupl_cmdbci_arr = [];
while (grAlerts.next()){
var sAddInfo=JSON.parse(grAlerts.additional_info);
var sProblemID=sAddInfo.ProblemID+"";
//gs.info('message key=' + grAlerts.message_key + '; ProblemID=' + sProblemID);
dupl_cmdbci_arr.push(grAlerts.cmdb_ci+"");
dupl_prbID_arr.push(sProblemID);
}
dupl_prbID_arr.sort();
dupl_cmdbci_arr.sort();
count_duplicate(dupl_prbID_arr, 'sProblemID', 1, 'alerts');
gs.info('******************************************************************************');
count_duplicate(dupl_cmdbci_arr, 'configuration item', 1, 'alerts');
gs.info('******************************************************************************');
var grEvents=new GlideRecord('em_event');
grEvents.addQuery('source', 'SGO-Dynatrace');
grEvents.addNotNullQuery('alert');
grEvents.addEncodedQuery('sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()');
grEvents.query();
grEvents.orderBy('alert');
gs.info('TOTAL SGO EVENTS FOR TODAY: ' + grEvents.getRowCount());
var dupl_prbID_arr_2 = [];
while (grEvents.next()){
var sAddInfo_event=JSON.parse(grEvents.additional_info);
var sProblemID_event=sAddInfo_event.ProblemID+"";
dupl_prbID_arr_2.push(sProblemID_event);
}
dupl_prbID_arr_2.sort();
count_duplicate(dupl_prbID_arr_2, 'sProblemID_event', 2, 'events');
function count_duplicate (a, fieldBeingChecked, iDuplicateThreshold, ticketType ) {
var iCounter=0;
var counts = {};
var bLog=true;
//bDebug=false;
var bBreak = false;
for (ic = 0; ic < a.length; ic++) {
if (counts[a[ic]]) {
counts[a[ic]] += 1;
} else {
counts[a[ic]] = 1;
}
}
for (prop in counts) {
if (counts[prop] >iDuplicateThreshold) {
if (bLog) {
gs.info(fieldBeingChecked + ': ' + prop + " counted: " + counts[prop] + " times");
iCounter++;
}
if (bBreak) {
gs.info('BREAK statement enabled', 'SIDTINCPRB:_count_duplicate');
break;
}
}
}
// gs.info(fieldBeingChecked+': DUPLICATE COUNTS::' + counts.length);
gs.info(fieldBeingChecked+': DUPLICATE COUNTS::' + iCounter + ' groups of ' + ticketType + ' affected');
}
Comments
Post a Comment