static <T> Supplier<T> decorateSupplier(Observation observation, Supplier<T> supplier) {
        return () -> observation.observe(supplier);
    }
@Test
    public void shouldDecorateSupplierAndReturnWithException() throws Throwable {
        given(helloWorldService.returnHelloWorld()).willThrow(new RuntimeException("BAM!"));
        Supplier<String> supplier = Observations
            .decorateSupplier(observation, helloWorldService::returnHelloWorld);

        Try<String> result = Try.of(supplier::get);

        assertThat(result.isFailure()).isTrue();
        assertThat(result.failed().get()).isInstanceOf(RuntimeException.class);
        assertThat(observationRegistry)
            .hasSingleObservationThat()
            .hasNameEqualTo(ObservationsTest.class.getName())
            .hasBeenStarted()
            .hasBeenStopped()
            .assertThatError()
            .isInstanceOf(RuntimeException.class);
        then(helloWorldService).should(times(1)).returnHelloWorld();

    }