OCTimer – Global
Die OCTimer Die Skripteinbindung bietet Methoden zum Nachverfolgen der Dauer, die eine Funktion zum Abschluss benötigt.
Diese Skripteinbindung erfordert die Aktivierung des Plugins „Bereitschaftsplanung“ (com.snc.on_call_Rotation). Weitere Informationen finden Sie unter dem Thema Aktivieren Sie Die Bereitschaftsplanung .
OCTimer – log (String name, String entry)
Protokolliert den Eintrag basierend auf dem Funktionsnamen.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Funktionsname. |
| entry | Zeichenfolge | Text, der Teil der Ausgabe im Protokoll sein wird. |
| Typ | Beschreibung |
|---|---|
| void |
OCTimer – millisToTime (Integer millis)
Akzeptiert einen Millisekundenwert und gibt eine formatierte Dauer zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| millis | Ganzzahl | Dauer in Millisekunden. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Eine formatierte Dauer. |
OCTimer – result()
Berechnet die für jede registrierte Funktion benötigte Zeit.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Die für jede registrierte Funktion benötigte Zeit. |
Das folgende Codebeispiel Benchmarking die Zeit, die eine REST-API benötigt, um IP-Adressen von Geräten im Netzwerkgerät abzurufen und sie dann in die IP-Adresstabelle einzufügen. API-Aufrufe können einige Zeit in Anspruch nehmen, daher ist es ratsam, die Ausführungszeit zu Benchmark zu setzen, 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Funktionsname. |
| Typ | Beschreibung |
|---|---|
| void |
Das folgende Codebeispiel Benchmarking die Zeit, die eine REST-API benötigt, um IP-Adressen von Geräten im Netzwerkgerät abzurufen und sie dann in die IP-Adresstabelle einzufügen. API-Aufrufe können einige Zeit in Anspruch nehmen, daher ist es ratsam, die Ausführungszeit zu Benchmark zu setzen, 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Funktionsname. |
| Typ | Beschreibung |
|---|---|
| void |
Das folgende Codebeispiel Benchmarking die Zeit, die eine REST-API benötigt, um IP-Adressen von Geräten im Netzwerkgerät abzurufen und sie dann in die IP-Adresstabelle einzufügen. API-Aufrufe können einige Zeit in Anspruch nehmen, daher ist es ratsam, die Ausführungszeit zu Benchmark zu setzen, 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