class MetricFetcher {

	public void update() {
		synchronized (this) {
			long currentTime = System.currentTimeMillis();
			if (currentTime - lastUpdateTime > 10000) { // 10 seconds have passed since the last update
				lastUpdateTime = currentTime;
				fetchMetrics();
			}
		}
	}

	public  MetricFetcher(
			GatewayRetriever<T> retriever,
			MetricQueryServiceRetriever queryServiceRetriever,
			Executor executor,
			Time timeout);

}