私は、カウンタまたはゲージに簡単に収まらないメトリックを持っています(公開したい特定のキャッシュのサイズです)。JmxMetricWriterによって公開されていないSpringブートパブリックメトリック
だから私はPublicMetricsを実装するために、既存のクラスを修正しました。その後、
@Component
public class MyMetric implements PublicMetrics
とメトリックを公開:
@Override
public Collection<Metric<?>> metrics() {
Collection<Metric<?>> metrics = new TreeSet<Metric<?>>();
Metric<Integer> cacheSize = new Metric<Integer>("gauge.cacheSize",cacheSize);
metrics.add(cacheSize);
return metrics;
}
春ブーツドキュメントの状態を:
「の追加を追加するにはメトリックエンドポイントが呼び出されるたびに計算されるメトリックは、追加のPublicMetrics実装Beanを登録するだけです。デフォルトでは、すべてのBeanはendpによって収集されますオイント。
@Bean
@ExportMetricWriter
MetricWriter metricWriter(MBeanExporter exporter) {
return new JmxMetricWriter(exporter);
}
しかし、私が見たときに私のメトリックが表示されない:
だからJMXを経由して、これらの追加のメトリックを露出させるために、私は、これは箱の指標のうちと一緒にそれらをエクスポートするだろうと思いましたJConsoleまたはVisualVMのmbean。
輸出の点で私が間違っていることは何ですか?また、いくつかの州を公開する簡単な方法があります(これらを注入する適切な方法がないためカウンターやゲージサービスを注入しませんでした)?
アップデート:私はorg.springframework.boot.Endpoint.metricsEndpointデータを呼び出す場合
()操作の私のゲージが正しく正しい値を返され、それは、MBeanとしてそれをエクスポートしていないだけでJMX輸出国です。