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]]]]