2017-01-26 13 views
0

私はそのような方法を記述していますサーボモチーフ注釈はそのまま使用できますか?

@Scheduled(fixedDelay = 10_000) 
@Monitor(name = "componentMonitor", type = DataSourceType.COUNTER) 
public int method() { 
    log.info("ping"); 
    return RandomUtils.nextInt(); 
} 

それはinvocatedとpingがコンソールに表示されますが、componentMonitorは、このメトリックはorg.springframework.boot.actuate.autoconfigure.ExportMetricReaderに送信されていない/metricsに表示されませんされています。どのように@Monitor注釈を作るためにサーボ/スペクタカを設定するのですか?

com.netflix.spectator.api.Registry作品を介して他のメトリックを報告します。したがって、一般的にメトリックレポート作成とサーボそのものが機能します。

答えて

1

いいえ、そうではありません。私はそれを働かせるためにMonitors.newObjectMonitor(id, object)を使うことができると思います。 Monitorを自動作成する方法などはありません。

+0

そうするために使用さ 'Monitor'注釈は何ですか? – Cherry

+0

Netflixはそれを大きく使います。オブジェクトを作成するたびに、それらは 'Monitors.newObjectMonitor()'を呼び出します。 – spencergibb

0

それはあなたが@Monitorが動作するためMonitorRegistryMetricPollerを登録する必要が私の理解です:

private void schedule(MetricPoller poller, List<MetricObserver> observers) { 
    final PollRunnable task = new PollRunnable(poller, BasicMetricFilter.MATCH_ALL, 
      true, observers); 
    PollScheduler.getInstance().addPoller(task, 1, TimeUnit.MINUTES); 
} 

private void initMetricsPublishing() { 
    final List<MetricObserver> observers = new ArrayList<>(); 

    final AmazonCloudWatchClient cloudWatchClient = 
      new AmazonCloudWatchClient(awsCredentials); 
    cloudWatchClient.setEndpoint(String.format("monitoring.%s.amazonaws.com", REGION)); 
    AwsTaggingCloudWatchMetricObserver cloudWatchMetricObserver = new AwsTaggingCloudWatchMetricObserver("cloudwatch", 
      "Nomp", cloudWatchClient); 
    observers.add(cloudWatchMetricObserver); 
    PollScheduler.getInstance().start(); 
    schedule(new MonitorRegistryMetricPoller(), observers); // <--- this 
    schedule(new JvmMetricPoller(), observers); 
    schedule(new TomcatPoller(), observers); 
} 
関連する問題