static <T> T executeSupplier(Observation observation, Supplier<T> supplier) {
        return decorateSupplier(observation, supplier).get();
    }
@Test
    public void shouldExecuteSupplier() throws Throwable {
        given(helloWorldService.returnHelloWorld()).willReturn("Hello world")
            .willThrow(new IllegalArgumentException("BAM!"));

        try {
            Observations.executeSupplier(observation, helloWorldService::returnHelloWorld);
        } catch (Exception e) {
            assertThat(e).isInstanceOf(IllegalArgumentException.class);
        }

       assertThatObservationWasStartedAndFinishedWithoutErrors();
        then(helloWorldService).should().returnHelloWorld();
    }