OCTimer - Global

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 5 min. de leitura
  • A inclusão de script OCTimer fornece métodos para rastrear o tempo necessário para que uma função seja concluída.

    Esta inclusão de script requer que o plug-in Agendamento de plantão (com.snc.on_call_rotation) seja ativado. Para obter mais informações, consulte o tópico Como ativar o Agendamento de plantão.

    OCTimer - log (nome da cadeia de caracteres, entrada da cadeia de caracteres)

    Registra a entrada com base no nome da função.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da função.
    entrada Cadeia de caracteres Texto que fará parte da saída no log.
    Tabela 2. Retorna
    Tipo Descrição
    vazio

    OCTimer - millisToTime (Inteiros em milissegundos)

    Usa um valor de milissegundos e retorna uma duração formatada.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    milissegundos Inteiro Duração em milissegundos.
    Tabela 4. Retorna
    Tipo Descrição
    Cadeia de caracteres Uma duração formatada.

    OCTimer - resultado ()

    Calcula o tempo necessário para cada função registrada.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Cadeia de caracteres Tempo necessário para cada função registrada.

    O exemplo de código a seguir compara o tempo gasto por uma REST API para buscar endereços IP de dispositivos no mecanismo de rede e os insere na tabela de endereços IP. As chamadas de API podem exigir algum tempo para serem processadas, portanto, é aconselhável comparar o tempo de execução antes de executá-las na produção.

    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
    

    Saída:

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

    OCTimer - início (nome da cadeia de caracteres)

    Inicializa um temporizador com base no nome fornecido.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da função.
    Tabela 8. Retorna
    Tipo Descrição
    vazio

    O exemplo de código a seguir compara o tempo gasto por uma REST API para buscar endereços IP de dispositivos no mecanismo de rede e os insere na tabela de endereços IP. As chamadas de API podem exigir algum tempo para serem processadas, portanto, é aconselhável comparar o tempo de execução antes de executá-las na produção.

    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
    

    Saída:

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

    OCTimer - parar (nome da cadeia de caracteres)

    Registra o fim do temporizador para o nome fornecido.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da função.
    Tabela 10. Retorna
    Tipo Descrição
    vazio

    O exemplo de código a seguir compara o tempo gasto por uma REST API para buscar endereços IP de dispositivos no mecanismo de rede e os insere na tabela de endereços IP. As chamadas de API podem exigir algum tempo para serem processadas, portanto, é aconselhável comparar o tempo de execução antes de executá-las na produção.

    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
    

    Saída:

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