Red Hat Training
A Red Hat training course is available for Red Hat JBoss Operations Network
18.10. 管理対象サーバーのメトリックデータの収集: metrics.js
JBoss ON は、各リソースタイプのメトリクスを多数収集します。この情報は、を使用して取得できます。
findLiveData
メソッド。リソースの現在のアクティブな値を返します。
このスクリプトは、groupName と metricName の 2 つの引数を取り ます。他のスクリプトと同様に、これによりグループが検索され、次にグループ ID でリソースが検索されます。
function usage() { println("Usage: metrics groupName metricName"); throw "Illegal arguments"; } if( args.length < 2 ) usage(); var groupName = args[0]; var metricName = args[1]; groupcriteria = new ResourceGroupCriteria(); groupcriteria.addFilterName(groupName); var groups = ResourceGroupManager.findResourceGroupsByCriteria(groupcriteria); if( groups != null ) { if( groups.size() > 1 ) { println("Found more than one group."); } else if( groups.size() == 1 ) { group = groups.get(0); } } criteria = new ResourceCriteria(); var groupArray= new Array(); groupArray[0]=group.id; criteria.addFilterExplicitGroupIds(groupArray);
実際のメトリクス検索は、リソースタイプで利用可能なメトリクスを検索します(この例では JBoss AS 5 にハードコーディングされています)。メトリクス自体は、metricName 引数 によってのみ識別されます。
var rt = ResourceTypeManager.getResourceTypeByNameAndPlugin("JBossAS 5 Server","JBossAS5"); var mdc = MeasurementDefinitionCriteria(); mdc.addFilterDisplayName(metricName); mdc.addFilterResourceTypeId(rt.id); var mdefs = MeasurementDefinitionManager.findMeasurementDefinitionsByCriteria(mdc); var resources = ResourceManager.findResourcesByCriteria(criteria); var metrics = MeasurementDataManager.findLiveData(resources.get(0).id, [mdefs.get(0).id]); if( metrics !=null ) { println(" Metric value for " + resources.get(0).id + " is " + metrics ); }
スクリプトの実行時に、リソース ID とメトリクスの現在の値を出力します。
[jsmith@server cli]$ ./wrapper.sh metrics myGroup "Active Thread Count" Remote server version is: 3.0.1.GA (b2cb23b:859b914) Login successful Metric value for 10003 is [MeasurementDataNumeric[value=[64.0], MeasurementData [MeasurementDataPK: timestamp=[Wed Feb 15 22:14:38 EST 2012], scheduleId=[1]]]]