OCTimer - Global

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 5 minutes de lecture
  • L’include de script OCTimer fournit des méthodes permettant de suivre le temps nécessaire à l’exécution d’une fonction.

    Cet include de script nécessite l’activation du module d’extension Planification d’astreinte (com.snc.on_call_rotation). Pour plus d’informations, consultez la rubrique Activer la planification d’astreinte.

    OCTimer - log (nom de chaîne, entrée de chaîne)

    Consigne l’entrée en fonction du nom de la fonction.

    Tableau 1. Paramètres
    Nom Type Description
    nom Chaîne Nom de la fonction.
    entry Chaîne Texte qui fera partie de la sortie dans le journal.
    Tableau 2. Renvoie
    Type Description
    nul

    OCTimer : millisToTime (Entier millis)

    Prend une valeur de l’ordre de la milliseconde et renvoie une durée formatée.

    Tableau 3. Paramètres
    Nom Type Description
    millis Entier Durée en millisecondes.
    Tableau 4. Renvoie
    Type Description
    Chaîne Durée formatée.

    OCTimer - résultat ()

    Calcule le temps nécessaire pour chaque fonction enregistrée.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    Type Description
    Chaîne Temps nécessaire pour chaque fonction enregistrée.

    L’exemple de code suivant évalue le temps nécessaire à une API REST pour extraire les adresses IP des appareils dans l’équipement réseau, puis les insère dans la table Adresse IP. Le traitement des appels d’API peut nécessiter un certain temps, il est donc conseillé de comparer le temps d’exécution avant de les exécuter en production.

    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
    

    Sortie :

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

    OCTimer - début (nom de chaîne)

    Initialise un minuteur en fonction du nom fourni.

    Tableau 7. Paramètres
    Nom Type Description
    nom Chaîne Nom de la fonction.
    Tableau 8. Renvoie
    Type Description
    nul

    L’exemple de code suivant évalue le temps nécessaire à une API REST pour extraire les adresses IP des appareils dans l’équipement réseau, puis les insère dans la table Adresse IP. Le traitement des appels d’API peut nécessiter un certain temps, il est donc conseillé de comparer le temps d’exécution avant de les exécuter en production.

    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
    

    Sortie :

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

    OCTimer - stop (nom de chaîne)

    Enregistre la fin du minuteur pour le nom fourni.

    Tableau 9. Paramètres
    Nom Type Description
    nom Chaîne Nom de la fonction.
    Tableau 10. Renvoie
    Type Description
    nul

    L’exemple de code suivant évalue le temps nécessaire à une API REST pour extraire les adresses IP des appareils dans l’équipement réseau, puis les insère dans la table Adresse IP. Le traitement des appels d’API peut nécessiter un certain temps, il est donc conseillé de comparer le temps d’exécution avant de les exécuter en production.

    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
    

    Sortie :

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