コレクタースクリプトのキャッシュ

最終更新日: 02 年 2021 月 XNUMX 日

この機能は、コレクターバージョン29.100以降で使用できます。

概要

コレクタスクリプトは、特定のエンティティと通信するために認証トークンを必要とします。 コレクターの古いバージョンでは、これらの認証トークンはファイルに保存されます。つまり、読み取りおよび書き込み操作は、ファイルにアクセスする必要があるすべてのLogicModuleで実行されます。 コレクターバージョン29.100以降では、トークンの有効期限が切れるまで、収集間隔の間にこれらの認証トークンをキャッシュに保存できます。

ScriptCacheの使用

  ScriptCache クラスには次のメソッドが含まれています。

方法 説明
ScriptCache.getCache(); キャッシュオブジェクトを取得して、さらに操作を実行します。 戻り値 ScriptCache オブジェクト。
ScriptCache.set(String key, String value, [optional] long expireIn); キー、値、および(オプションの)expireInを設定します。 設定されている場合、 expireIn 値はミリ秒単位です。 例:3000。
ScriptCache.get(String key);
ScriptCache.remove(String key);
ScriptCache.clear();
ScriptCache.size();

  expireIn 値はオプションであり、キャッシュに保存されているキーごとに設定できます。 特定のキーに値が設定されていない場合、デフォルトの有効期限タイムアウトは、 collector.script.cache.timeout in agent.conf 例えば:

collector.script.cache.timeout=30 //30 minutes

新しいスクリプト ScriptCache コレクターの古いバージョンでは動作しません。 インポート ScriptCache 古いコレクターでは例外がスローされます。 次のスクリプト例は、すべてのコレクターで機能します。

def scriptCache
try {
    scriptCache = this.class.classLoader.loadClass("com.santaba.agent.util.script.ScriptCache").getCache();
    //new way
    String token = scriptCache.get("token1");
    if(token == null){
         //make connection, fetch new token and store it in cache
         scriptCache.set("token1", "asfioajfiqu920200rdaoj9au");
    } else{
         //make connection
    }
} catch (Exception ex) {
    //old way
}

このスクリプトでは、インポートステートメントが失敗した場合 ScriptCache クラスでは、デフォルトでトークンをファイルとともに保存する古い方法になります。 合格すれば使用します ScriptCache.

記事上で