@Override
    public Long getValue() {
        return this.timeUnit.convert(getElapsedNanos(), TimeUnit.NANOSECONDS);
    }
@Test
    public void getValue() {
        final ManualAdvanceClock clock = new ManualAdvanceClock(Instant.now());
        final UptimeMetric uptimeMetric = new UptimeMetric("up", clock::nanoTime);
        assertEquals(Long.valueOf(0L), uptimeMetric.getValue());

        clock.advance(Duration.ofMillis(123));
        assertEquals(Long.valueOf(123L), uptimeMetric.getValue());

        clock.advance(Duration.ofMillis(456));
        assertEquals(Long.valueOf(579L), uptimeMetric.getValue());

        clock.advance(Duration.ofMinutes(15));
        assertEquals(Long.valueOf(900579L), uptimeMetric.getValue());

        clock.advance(Duration.ofHours(712));
        assertEquals(Long.valueOf(2564100579L), uptimeMetric.getValue());
    }