Marcin reported that bug which pops up in his tracing integration tests:
┌─────┐
| simpleMeterRegistry defined in class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/simple/SimpleMetricsExportAutoConfiguration.class]
↑ ↓
| enableTimerObservationHandler defined in class path resource [org/springframework/boot/actuate/autoconfigure/observation/ObservationAutoConfiguration$MetricsConfiguration.class]
└─────┘
Comment From: mhalbritter
Looks like my commit hasn't fully solved the problem.
The main problem is that a MeterRegistry is now also a ObservationRegistry.
The TimerObservationHandler is registered via TimerObservationHandlerObservationRegistryCustomizer, which is run from a BeanPostProcessor on ObservationRegistry and needs a fully initialized MeterRegistry to work. This worked fine until the change that a MeterRegistry is a ObservationRegistry happened. Now the customizer runs on MeterRegistry too, and needs a fully initialized MeterRegistry, which it doesn't have and there is the cycle.
Comment From: mhalbritter
The commit in micrometer-core has been reverted and this is no longer a problem.