docs: private void startMetricsCacheChecker() {
      final int checkIntervalSec =
          TypeUtils.getInteger(sinkConfig.get(KEY_TMASTER_LOCATION_CHECK_INTERVAL_SEC));
  
      Runnable runnable = new Runnable() {
        @Override
        public void run() {
          TopologyMaster.MetricsCacheLocation location =
              (TopologyMaster.MetricsCacheLocation) SingletonRegistry.INSTANCE.getSingleton(
                  MetricsManagerServer.METRICSCACHE_LOCATION_BEAN_NAME);
  
          if (location != null) {
            if (currentMetricsCacheLocation == null
                || !location.equals(currentMetricsCacheLocation)) {
              LOG.info("Update current MetricsCacheLocation to: " + location);
              currentMetricsCacheLocation = location;
              metricsCacheClientService.updateMetricsCacheLocation(currentMetricsCacheLocation);
              metricsCacheClientService.startNewMasterClient();
  
              // Update Metrics
              sinkContext.exportCountMetric(METRICSMGR_LOCATION_UPDATE_COUNT, 1);
            }
          }
  
          // Schedule itself in future
          tMasterLocationStarter.schedule(this, checkIntervalSec, TimeUnit.SECONDS);
        }
      };
  
      // First Entry
      tMasterLocationStarter.schedule(runnable, checkIntervalSec, TimeUnit.SECONDS);
      LOG.info("MetricsCacheChecker started with interval: " + checkIntervalSec);
    }