Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Performance Analytics

Ragavi
Tera Contributor

Hi,

Indicator source - cmdb_ci_outage table 

indicator with breakdown on cmdb_ci_business_app

job with relative start 10 days ago and relative end 0 days ago .

Aim is to find out downtime of an application for a day . Consider an application A had an outage with begin date oct 4th 2024 1pm and end date oct 6th 2024 5pm .I need output as below 

oct 4th -11 hrs

oct 5th -24 hrs

oct 6th - 17 hrs 

So in indicator source I have used PA scripts as below 

var diff = function(x, y)

        {
           return y.dateNumericValue() - x.dateNumericValue();
        };
var minutes = function(x, y) {
return diff(x, y) / (60 * 1000);
};
var allDay = function() {
  return 60 * 24;
};
var isToday = function(x) {
    var gdt = new GlideDateTime(x);
    var today = new GlideDateTime();
    return gdt.getLocalDate().getValue() == today.getLocalDate().getValue();
    //     today.setNumericValue(score_start.dateNumericValue());  
    //return gdt.getDate().getValue() == today.getDate().getValue();
};

if (isToday(current.begin) && isToday(current.end)) {
    minutes(current.begin, current.end);
} else if (isToday(current.begin)) {
    minutes(current.begin, score_end);
} else if (isToday(current.end)) {
    minutes(score_start, current.end);
} else {
    allDay();
}
Here whenever I run historic job my current date is calculated as the date when I run that job manually and only else condition got executed .GlideDateTime is not considering the relative date from pa job . Please advise .

 

Thanks,

Ragavi

0 REPLIES 0