4

resilience4j AOP ベースの sを使用するスプリング ブート アプリがあります@CircuitBreaker

/actuator/healthここで、サーキット ブレーカーの情報をエンドポイントで利用できるようにしたいと考えていますが、ドキュメントに記載されdetails.circuitBtreakersているオブジェクトが JSON 出力に表示されません。

私は何を間違っていますか?


比較すると、動的キャッシュ情報を/actuator/metricsエンドポイントに表示するには、少量のカスタム ワイヤリングが必要でしたが、これは十分に文書化されています. 動的に定義された s をエンドポイント@CircuitBreakerに登録するために適用できる同様のトリックがあるのだろうか。/actuator/health

MyService.java:

@Service
public class MyService {
    @Autowired
    private CacheManager cacheManager;
    @Autowired
    private CacheMetricsRegistrar cacheMetricsRegistrar;

    @PostConstruct
    public void postConstruct() {
        // On-the-fly defined (annotation-based) caches are not auto-registered with micrometer metrics.
        final Cache cache = cacheManager.getCache("myCache");
        cacheMetricsRegistrar.bindCacheToRegistry(cache);
    }

    @CircuitBreaker(name = "myCB", fallbackMethod = "fallbackCallAnApi")
    public String callAnApi() throws RestClientException {
        // ...
    }

    @Cacheable("myCache")
    public String getSomethingCacheable() {
        // ...
    }
}

application.properties:

resilience4j.circuitbreaker.configs.default.registerHealthIndicator=true
management.endpoints.web.expose=health,metrics
management.endpoints.web.exposure.include=health,metrics
management.endpoint.health.enabled=true
management.endpoint.metrics.enabled=true
management.metrics.enable.resilience4j.circuitbreaker.calls=true
management.health.circuitbreakers.enabled=true
4

1 に答える 1