TimeWindowCounterBuilder { public CompositeCounter copyFrom(MonitoredCounter templateCounter) { return build(templateCounter.getName(), templateCounter.getDescription(), templateCounter.getUnit()); } TimeWindowCounterBuilder(MonitorableRegistry registry,
			TimeWindow... windows);   TimeWindowCounterBuilder(Supplier<Long> timeSource,
			MonitorableRegistry registry, TimeWindow... windows); CompositeCounter build(String baseName, String baseDescription,
			Unit<?> unit); CompositeCounter copyFrom(MonitoredCounter templateCounter); CompositeCounter wrapCounter(MonitoredCounter templateCounter);  }
@Test public void metricsShouldBeCreatedWithValuesCopiedFromTemplate() { builder.copyFrom(template); assertTrue(registry.containsMetric("disk.writes.5s")); assertEquals("bytes written to disk [5s]", registry.getMetric("disk.writes.5s").getDescription()); assertEquals(BYTE, registry.getMetric("disk.writes.5s").getUnit()); }