OCTimer : Global

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 5 Minuten Lesedauer
  • Die OCTimer-Skripteinbindung bietet Methoden zum Nachverfolgen der Zeit, die eine Funktion zum Abschließen benötigt.

    Für diese Skripteinbindung muss das Plugin „Bereitschaftsplanung“ (com.snc.on_call_rotation) aktiviert sein. Weitere Informationen finden Sie unter Bereitschaftsplanung 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 benötigt, um IP-Adressen von Geräten in Netzwerkgeräten abzurufen und sie dann in die IP-Adresstabelle einzufügen. Die Verarbeitung von API-Aufrufen kann einige Zeit in Anspruch nehmen. Daher wird empfohlen, die Ausführungszeit zu vergleichen, bevor Sie sie in der Produktion ausführen.

    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 benötigt, um IP-Adressen von Geräten in Netzwerkgeräten abzurufen und sie dann in die IP-Adresstabelle einzufügen. Die Verarbeitung von API-Aufrufen kann einige Zeit in Anspruch nehmen. Daher wird empfohlen, die Ausführungszeit zu vergleichen, bevor Sie sie in der Produktion ausführen.

    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 benötigt, um IP-Adressen von Geräten in Netzwerkgeräten abzurufen und sie dann in die IP-Adresstabelle einzufügen. Die Verarbeitung von API-Aufrufen kann einige Zeit in Anspruch nehmen. Daher wird empfohlen, die Ausführungszeit zu vergleichen, bevor Sie sie in der Produktion ausführen.

    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