Spring Boot 2.x アプリケーションでメトリックを公開するために Micrometer プロジェクトを使用しています。
MeterRegistry
2 つの(StepMeterRegistry
とSimpleMeterRegistry
)を実装したので、Spring Boot は内部CompositeMeterRegistry
で StepMeterRegistry と SimpleMeterRegistry のセットを作成します。
現在、/actuator/metrics
現在のメトリック数を表示するためにエンドポイントを使用しています。
の実装MetricsEndpoint
は次のようになります。 - compositeMeterRegistry から最初のレジストリ
を取得し、メトリックを表示します。
問題は以下のとおりです。 -セットを管理するため、順序は保証されませんが、エンドポイントのみcompositeMeterRegistry
を公開したいと考えています。SimpleMeterRegistry
'/actuator/metrics'
私が従った現在の回避策は、MetricsEndpoint の @Primary Bean を作成し、SimpleMeterRegistry を提供することです。
@Primary
@Bean
public MetricsEndpoint metricsEndpoint(SimpleMeterRegistry registry) {
return new MetricsEndpoint(registry);
}
micrometer は Spring によって管理されるようになったので、レジストリの List または LinkedHashSet を CompositeMeterRegistryに保持しないでください。開発者にとって使いやすいでしょう。