Name
sn_itom_pattern.CloudRetryMetricsHandler
Description
No description available
Script
var CloudRetryMetricsHandler = {
fetchRetryMetrics: function () {
var selectedMids = this.getMidServers();
selectedMids.forEach(function (midName) {
var eccQueueGr = new GlideRecord('ecc_queue');
eccQueueGr.initialize();
eccQueueGr.agent = 'mid.server.' + midName;
eccQueueGr.name = 'GetCloudRequestStatsProbe';
eccQueueGr.topic = 'JavascriptProbe';
eccQueueGr.payload = '<?xml version="1.0" encoding="UTF-8"?><parameters><parameter name="probe_name" value="Get cloud request stats"/><parameter name="probe" value="504adf6977f2c110996857792c5a99b0"/></parameters>';
eccQueueGr.queue = 'output';
eccQueueGr.insert();
});
},
processRetryMetrics: function (result) {
var results;
try {
results = JSON.parse(result);
} catch (ex) { return; }
var cloudRequestRetryMetricsGr = new GlideRecord('sn_cloud_discovery_retry_metrics');
results.forEach( function(entry) {
cloudRequestRetryMetricsGr.initialize();
cloudRequestRetryMetricsGr.provider = entry.provider;
cloudRequestRetryMetricsGr.url = entry.url;
cloudRequestRetryMetricsGr.discovery_status = entry.discoveryStatusSysId;
cloudRequestRetryMetricsGr.ecc_queue = entry.eccSysId;
cloudRequestRetryMetricsGr.pattern = entry.pattern;
cloudRequestRetryMetricsGr.try_count = entry.tryCount;
cloudRequestRetryMetricsGr.total_delay = entry.totalDelay;
cloudRequestRetryMetricsGr.status = entry.status;
cloudRequestRetryMetricsGr.insert();
});
},
getMidServers: function () {
// skipping IBM and OCI as the cloud request calls are routed through Cloud Access Layer and not CloudRequestExecutor
var mids = [];
var midServerFinder = new global.MIDServerFinder();
var cloudDiscoveryRelatedCapabilities = ['ALL', 'Google', 'AWS', 'Azure', 'Cloud Management'];
// 1. fetch mid servers that match the capability
// 2. add the mid server to the list if it's not part of mids list
cloudDiscoveryRelatedCapabilities.forEach(function (capability) {
midServerFinder.capabilities = new Array(capability);
var midsWithDesiredCapability = midServerFinder.getMIDServers();
midsWithDesiredCapability.forEach(function (midName) {
if (mids.indexOf(midName) < 0)
mids.push(midName);
});
});
return mids;
}
};
Sys ID
e89448f177e30110996857792c5a9940