private synchronized void updatePerWorkerISMetrics( Map<String, Integer> topicPartitionMapForIdealState) { for (String worker : topicPartitionMapForIdealState.keySet()) { if (!_idealStatePerWorkerTopicPartitionCounter.containsKey(worker)) { Counter workCounter = new Counter(); try { HelixKafkaMirrorMakerMetricsReporter.get().getRegistry().register( getIdealStatePerWorkMetricName(worker), workCounter); } catch (Exception e) { LOGGER.error("Error registering metrics!", e); } _idealStatePerWorkerTopicPartitionCounter.put(worker, workCounter); } Counter counter = _idealStatePerWorkerTopicPartitionCounter.get(worker); counter.inc(topicPartitionMapForIdealState.get(worker) - counter.getCount()); } for (String worker : _idealStatePerWorkerTopicPartitionCounter.keySet()) { if (!topicPartitionMapForIdealState.containsKey(worker)) { Counter counter = _idealStatePerWorkerTopicPartitionCounter.get(worker); counter.dec(counter.getCount()); } } }
private synchronized void updatePerWorkerISMetrics( Map<String, Integer> topicPartitionMapForIdealState) { for (String worker : topicPartitionMapForIdealState.keySet()) { if (!_idealStatePerWorkerTopicPartitionCounter.containsKey(worker)) { Counter workCounter = new Counter(); try { HelixKafkaMirrorMakerMetricsReporter.get().getRegistry().register( getIdealStatePerWorkMetricName(worker), workCounter); } catch (Exception e) { LOGGER.error("Error registering metrics!", e); } _idealStatePerWorkerTopicPartitionCounter.put(worker, workCounter); } Counter counter = _idealStatePerWorkerTopicPartitionCounter.get(worker); counter.inc(topicPartitionMapForIdealState.get(worker) - counter.getCount()); } for (String worker : _idealStatePerWorkerTopicPartitionCounter.keySet()) { if (!topicPartitionMapForIdealState.containsKey(worker)) { //Counter counter = _idealStatePerWorkerTopicPartitionCounter.get(worker); //counter.dec(counter.getCount()); _idealStatePerWorkerTopicPartitionCounter.remove(worker); try { HelixKafkaMirrorMakerMetricsReporter.get().getRegistry().remove(getIdealStatePerWorkMetricName(worker)); } catch (Exception e) { LOGGER.warn("Got exception when removing metrics for {}", getIdealStatePerWorkMetricName(worker), e); } } } }