クロール・メトリックの取得

IasCrawler.getMetrics()メソッドをコールして、クロールのメトリックを返します。実行中のクロールまたは前回の完了したクロール(クロールが実行されていない場合)のメトリックを返すことができます。

このメソッドの構文は、次のとおりです。
IasCrawler.getMetrics(CrawlId crawlId)

crawlIdパラメータは、メトリックを返すクロールの名前を含むCrawlIdオブジェクトです。

メソッドは、1つ以上のMetricオブジェクト(空でない場合)を含むList<Metric>オブジェクトを返します。Metricは、特定のメトリックの値を保持するキー/ペア値です。キーは、メトリックのID (MetricId列挙クラス)です。MetricId列挙のリストについては、IAS Server APIリファレンス(Javadoc)を参照してください。

CRAWL_STOP_CAUSE MetricIdには、次の値のいずれかが含まれています。
  • COMPLETED
  • FAILED
  • ABORTED
クロールが失敗した場合、CRAWL_FAILURE_REASON MetricIdは、失敗を説明するIAS Serverからのメッセージを表示します。

アプリケーションは、すべてまたは一部のメトリック値を出力できます。

クロールのメトリックを取得するには:

  1. IAS Serverへの接続が作成されていることを確認します。(この例では、crawlerという名前のIasCrawlerオブジェクトが使用されます。)
  2. 最初にCrawlIdオブジェクトをインスタンス化し、次にそのIDを設定して、クロールの名前を設定します。
    たとえば、次のようになります。
    // Create a new crawl ID with the name set to Demo.
    CrawlId crawlId = new CrawlId("Demo");
  3. IasCrawler.getMetrics()メソッドをコールして、クロールIDを指定します。
    たとえば、次のようになります。
    List<Metric> metricList = crawler.getMetrics(crawlId);
  4. Metricオブジェクトから値を取得して、メトリックを出力します。たとえば、クロールを実行して、これまでに処理したレコードの数を出力したい場合、レコードは次のようになります。
    if (crawler.getStatus(demoCrawlId).getState().equals(CrawlerState.RUNNING)) {
        List<Metric> metricList = crawler.getMetrics(crawlId);
        for (Metric metric : metricList) {
            MetricId id = metric.getMetricId();
            if (id.equals(MetricId.TOTAL_RECORDS)) {
                System.out.println("Total records: " + metric.toString());
            }
        }
    }

指定したクロール(crawlIdパラメータ)が存在しないか見つからない場合、IasCrawler.getMetrics()メソッドによりCrawlNotFoundExceptionが発生します。