OCTimer - Global
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.
| 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. |
| Tipo | Descrição |
|---|---|
| vazio |
OCTimer - millisToTime (Inteiros em milissegundos)
Usa um valor de milissegundos e retorna uma duração formatada.
| Nome | Tipo | Descrição |
|---|---|---|
| milissegundos | Números inteiros | Duração em milissegundos. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Uma duração formatada. |
OCTimer - resultado ()
Calcula o tempo necessário para cada função registrada.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome da função. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome da função. |
| 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