OCTimer - グローバル

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:13分
  • OCTimer スクリプトインクルードは、関数が完了するまでにかかる時間を追跡するメソッドを提供します。

    このスクリプトインクルードでは、オンコールスケジューリング (com.snc.on_call_rotation) プラグインを有効にする必要があります。詳細については、「 オンコールスケジューリングのアクティブ化」トピックを参照してください。

    OCTimer - log (文字列名、文字列エントリ)

    関数名に基づいてエントリをログに記録します。

    表 : 1. パラメーター
    名前 タイプ 説明
    名前 文字列 関数名。
    エントリ 文字列 ログの出力の一部となるテキスト。
    表 : 2. 戻り値
    タイプ 説明
    なし

    OCTimer - millisToTime (整数ミリ秒)

    ミリ秒の値を受け取り、書式設定された期間を返します。

    表 : 3. パラメーター
    名前 タイプ 説明
    millis 整数 時間 (ミリ秒)。
    表 : 4. 戻り値
    タイプ 説明
    文字列 書式設定された期間。

    OCTimer - 結果 ()

    登録された各機能にかかる時間を計算します。

    表 : 5. パラメーター
    名前 タイプ 説明
    なし
    表 : 6. 戻り値
    タイプ 説明
    文字列 登録された各機能にかかる時間。

    次のコード例は、REST API がネットワーク機器のデバイスから IP アドレスをフェッチし、それらを IP アドレステーブルに挿入するのにかかる時間をベンチマークします。API 呼び出しの処理には時間がかかる場合があるため、本番環境で実行する前に実行時間をベンチマークすることをお勧めします。

    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
    

    出力:

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

    OCTimer - start (文字列名)

    指定された名前に基づいてタイマーを初期化します。

    表 : 7. パラメーター
    名前 タイプ 説明
    名前 文字列 関数名。
    表 : 8. 戻り値
    タイプ 説明
    なし

    次のコード例は、REST API がネットワーク機器のデバイスから IP アドレスをフェッチし、それらを IP アドレステーブルに挿入するのにかかる時間をベンチマークします。API 呼び出しの処理には時間がかかる場合があるため、本番環境で実行する前に実行時間をベンチマークすることをお勧めします。

    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
    

    出力:

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

    OCTimer - 停止 (文字列名)

    指定された名前のタイマーの終了を登録します。

    表 : 9. パラメーター
    名前 タイプ 説明
    名前 文字列 関数名。
    表 : 10. 戻り値
    タイプ 説明
    なし

    次のコード例は、REST API がネットワーク機器のデバイスから IP アドレスをフェッチし、それらを IP アドレステーブルに挿入するのにかかる時間をベンチマークします。API 呼び出しの処理には時間がかかる場合があるため、本番環境で実行する前に実行時間をベンチマークすることをお勧めします。

    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
    

    出力:

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