static <T> CheckedSupplier<T> decorateCheckedSupplier(Observation observation,
                                                          CheckedSupplier<T> supplier) {
        return () -> observation.observeChecked(supplier::get);
    }
@Test
    public void shouldDecorateCheckedSupplier() throws Throwable {
        given(helloWorldService.returnHelloWorldWithException()).willReturn("Hello world");
        CheckedSupplier<String> timedSupplier = Observations
            .decorateCheckedSupplier(observation, helloWorldService::returnHelloWorldWithException);

        String value = timedSupplier.get();

        assertThatObservationWasStartedAndFinishedWithoutErrors();
        assertThat(value).isEqualTo("Hello world");
        then(helloWorldService).should(times(1)).returnHelloWorldWithException();
    }