OCTimer – Global

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 5 Minuten Lesedauer
  • Die OCTimer-API bietet die Möglichkeit, die Zeitdauer zu verfolgen, die eine Funktion zum Abschluss benötigt.

    Die OCTimer -API erfordert die Aktivierung des Plugins „On-Call Scheduling“ (com.snc.on_call_rotation). Weitere Informationen finden Sie unter On-Call Scheduling aktivieren.

    OCTimer – log (String name, String entry)

    Protokolliert den Eintrag basierend auf dem Funktionsnamen.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Funktionsname.
    entry Zeichenfolge Text, der Teil der Ausgabe im Protokoll sein wird.
    Tabelle : 2. Ergebnisse
    Typ Beschreibung
    void

    OCTimer – millisToTime (Integer millis)

    Akzeptiert einen Millisekundenwert und gibt eine formatierte Dauer zurück.

    Tabelle : 3. Parameter
    Name Typ Beschreibung
    millis Ganzzahl Dauer in Millisekunden.
    Tabelle : 4. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Eine formatierte Dauer.

    OCTimer – result()

    Berechnet die für jede registrierte Funktion benötigte Zeit.

    Tabelle : 5. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 6. Ergebnisse
    Typ Beschreibung
    Zeichenfolge Die für jede registrierte Funktion benötigte Zeit.

    Das folgende Codebeispiel misst die Zeit, die eine REST-API zum Abrufen von IP-Adressen von Geräten in Netzwerkgeräten benötigt, und fügt sie dann in die IP-Adresstabelle ein. Die Verarbeitung von API-Aufrufen kann einige Zeit in Anspruch nehmen. Daher wird empfohlen, die Ausführungszeit zu vergleichen, bevor sie in der Produktion ausgeführt werden.

    var user = "<user name>"; // ServiceNow login user name
    var password = "<password>";  // ServiceNow login password
    var instance = "<instance name>";   // ServiceNow instance name
    
    // Insert new IP address to IP address table using REST API
    function insertIPAddress(ip_address) {
     var request = new sn_ws.RESTMessageV2();
     request.setEndpoint('https://' + instance + '.service-now.com/api/now/table/cmdb_ci_ip_address');
     request.setHttpMethod('POST');
    
     request.setBasicAuth(user,password);
     request.setRequestHeader("Accept","application/json");
     request.setRequestHeader('Content-Type','application/json');request.setRequestBody("{\"ip_address\":\"" + ip_address + "\"}");
     var response = request.execute();
    }
    
    // Retrieve IP address from devices in Network gear
    function getIPAddresses() {
     var request = new sn_ws.RESTMessageV2();
     request.setEndpoint('https://' + instance + '.service-now.com/api/now/table/cmdb_ci_netgear?sysparm_fields=ip_address');
     request.setHttpMethod('GET');
    
     request.setBasicAuth(user,password);
     request.setRequestHeader("Accept","application/json");
    
     var response = request.execute();
     return response.getBody();
    }
    
    var timer = new OCTimer();             // create OCTimer object
    
    // get the IP addresses from Network Gear table
    timer.start("getIPAddresses");         // start timer to time fetching IP addresses from Network Gear table
    var ipAddressStr = getIPAddresses();
    timer.stop('getIPAddresses');          // stop timer
    
    // insert IP addresses to IP Address table
    var ipAddressJson = JSON.parse(ipAddressStr);  // parse result
    var ipAddressList = ipAddressJson.result;      // extract IP addresses to a list
    for (var i=0; i<ipAddressList.length;i++) {    // loop through
     var ip_address = ipAddressList[i]["ip_address"].trim();
     if (ip_address.length > 0) {
      timer.start("insertIPAddress");    // start timer to time inserting IP address to IP Address table
      insertIPAddress(ip_address);       // insert IP address
      timer.stop('insertIPAddress');     // end timer
     }
    }
    
    var result = timer.result();         // get timer results
    gs.info(result);                     // output timer result
    

    Ausgabe:

    getIPAddresses method was invoked 1 time and took 00.288 seconds
    insertIPAddress method was invoked 37 times and took 02.352 seconds

    OCTimer – start(String name)

    Initialisiert einen Timer basierend auf dem angegebenen Namen.

    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Funktionsname.
    Tabelle : 8. Ergebnisse
    Typ Beschreibung
    void

    Das folgende Codebeispiel misst die Zeit, die eine REST-API zum Abrufen von IP-Adressen von Geräten in Netzwerkgeräten benötigt, und fügt sie dann in die IP-Adresstabelle ein. Die Verarbeitung von API-Aufrufen kann einige Zeit in Anspruch nehmen. Daher wird empfohlen, die Ausführungszeit zu vergleichen, bevor sie in der Produktion ausgeführt werden.

    var user = "<user name>"; // ServiceNow login user name
    var password = "<password>";  // ServiceNow login password
    var instance = "<instance name>";   // ServiceNow instance name
    
    // Insert new IP address to IP address table using REST API
    function insertIPAddress(ip_address) {
     var request = new sn_ws.RESTMessageV2();
     request.setEndpoint('https://' + instance + '.service-now.com/api/now/table/cmdb_ci_ip_address');
     request.setHttpMethod('POST');
    
     request.setBasicAuth(user,password);
     request.setRequestHeader("Accept","application/json");
     request.setRequestHeader('Content-Type','application/json');request.setRequestBody("{\"ip_address\":\"" + ip_address + "\"}");
     var response = request.execute();
    }
    
    // Retrieve IP address from devices in Network gear
    function getIPAddresses() {
     var request = new sn_ws.RESTMessageV2();
     request.setEndpoint('https://' + instance + '.service-now.com/api/now/table/cmdb_ci_netgear?sysparm_fields=ip_address');
     request.setHttpMethod('GET');
    
     request.setBasicAuth(user,password);
     request.setRequestHeader("Accept","application/json");
    
     var response = request.execute();
     return response.getBody();
    }
    
    var timer = new OCTimer();             // create OCTimer object
    
    // get the IP addresses from Network Gear table
    timer.start("getIPAddresses");         // start timer to time fetching IP addresses from Network Gear table
    var ipAddressStr = getIPAddresses();
    timer.stop('getIPAddresses');          // stop timer
    
    // insert IP addresses to IP Address table
    var ipAddressJson = JSON.parse(ipAddressStr);  // parse result
    var ipAddressList = ipAddressJson.result;      // extract IP addresses to a list
    for (var i=0; i<ipAddressList.length;i++) {    // loop through
     var ip_address = ipAddressList[i]["ip_address"].trim();
     if (ip_address.length > 0) {
      timer.start("insertIPAddress");    // start timer to time inserting IP address to IP Address table
      insertIPAddress(ip_address);       // insert IP address
      timer.stop('insertIPAddress');     // end timer
     }
    }
    
    var result = timer.result();         // get timer results
    gs.info(result);                     // output timer result
    

    Ausgabe:

    getIPAddresses method was invoked 1 time and took 00.288 seconds
    insertIPAddress method was invoked 37 times and took 02.352 seconds

    OCTimer – stop (String name)

    Registriert das Ende des Timers für den angegebenen Namen.

    Tabelle : 9. Parameter
    Name Typ Beschreibung
    Name Zeichenfolge Funktionsname.
    Tabelle : 10. Ergebnisse
    Typ Beschreibung
    void

    Das folgende Codebeispiel misst die Zeit, die eine REST-API zum Abrufen von IP-Adressen von Geräten in Netzwerkgeräten benötigt, und fügt sie dann in die IP-Adresstabelle ein. Die Verarbeitung von API-Aufrufen kann einige Zeit in Anspruch nehmen. Daher wird empfohlen, die Ausführungszeit zu vergleichen, bevor sie in der Produktion ausgeführt werden.

    var user = "<user name>"; // ServiceNow login user name
    var password = "<password>";  // ServiceNow login password
    var instance = "<instance name>";   // ServiceNow instance name
    
    // Insert new IP address to IP address table using REST API
    function insertIPAddress(ip_address) {
     var request = new sn_ws.RESTMessageV2();
     request.setEndpoint('https://' + instance + '.service-now.com/api/now/table/cmdb_ci_ip_address');
     request.setHttpMethod('POST');
    
     request.setBasicAuth(user,password);
     request.setRequestHeader("Accept","application/json");
     request.setRequestHeader('Content-Type','application/json');request.setRequestBody("{\"ip_address\":\"" + ip_address + "\"}");
     var response = request.execute();
    }
    
    // Retrieve IP address from devices in Network gear
    function getIPAddresses() {
     var request = new sn_ws.RESTMessageV2();
     request.setEndpoint('https://' + instance + '.service-now.com/api/now/table/cmdb_ci_netgear?sysparm_fields=ip_address');
     request.setHttpMethod('GET');
    
     request.setBasicAuth(user,password);
     request.setRequestHeader("Accept","application/json");
    
     var response = request.execute();
     return response.getBody();
    }
    
    var timer = new OCTimer();             // create OCTimer object
    
    // get the IP addresses from Network Gear table
    timer.start("getIPAddresses");         // start timer to time fetching IP addresses from Network Gear table
    var ipAddressStr = getIPAddresses();
    timer.stop('getIPAddresses');          // stop timer
    
    // insert IP addresses to IP Address table
    var ipAddressJson = JSON.parse(ipAddressStr);  // parse result
    var ipAddressList = ipAddressJson.result;      // extract IP addresses to a list
    for (var i=0; i<ipAddressList.length;i++) {    // loop through
     var ip_address = ipAddressList[i]["ip_address"].trim();
     if (ip_address.length > 0) {
      timer.start("insertIPAddress");    // start timer to time inserting IP address to IP Address table
      insertIPAddress(ip_address);       // insert IP address
      timer.stop('insertIPAddress');     // end timer
     }
    }
    
    var result = timer.result();         // get timer results
    gs.info(result);                     // output timer result
    

    Ausgabe:

    getIPAddresses method was invoked 1 time and took 00.288 seconds
    insertIPAddress method was invoked 37 times and took 02.352 seconds