コレクタースクリプトのキャッシュ
最終更新日: 06 年 2024 月 XNUMX 日この機能は、コレクターバージョン29.100以降で使用できます。
概要
コレクタスクリプトは、特定のエンティティと通信するために認証トークンを必要とします。 コレクターの古いバージョンでは、これらの認証トークンはファイルに保存されます。つまり、読み取りおよび書き込み操作は、ファイルにアクセスする必要があるすべてのLogicModuleで実行されます。 コレクターバージョン29.100以降では、トークンの有効期限が切れるまで、収集間隔の間にこれらの認証トークンをキャッシュに保存できます。
ScriptCacheの使用
この ScriptCache
クラスには次のメソッドが含まれています。
方法 | Description |
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
.