OCTimer : Global
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.
| 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 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Funktionsname. |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Name | Zeichenfolge | Funktionsname. |
| 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