ClustersMetricUpdateScheduler.java 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package com.provectus.kafka.ui.cluster;
  2. import com.provectus.kafka.ui.cluster.model.KafkaCluster;
  3. import com.provectus.kafka.ui.cluster.service.ClusterService;
  4. import com.provectus.kafka.ui.jmx.JmxService;
  5. import com.provectus.kafka.ui.kafka.KafkaService;
  6. import com.provectus.kafka.ui.model.ClusterStatus;
  7. import lombok.RequiredArgsConstructor;
  8. import lombok.extern.log4j.Log4j2;
  9. import org.springframework.scheduling.annotation.Scheduled;
  10. import org.springframework.stereotype.Component;
  11. @Component
  12. @RequiredArgsConstructor
  13. @Log4j2
  14. public class ClustersMetricUpdateScheduler {
  15. private final JmxService jmxService;
  16. private final KafkaService kafkaService;
  17. private final ClusterService clusterService;
  18. @Scheduled(fixedRate = 30000)
  19. public void updateMetrics() {
  20. for (KafkaCluster cluster : clusterService.getKafkaClusters()) {
  21. try {
  22. kafkaService.loadClusterMetrics(cluster);
  23. jmxService.loadClusterMetrics(cluster);
  24. cluster.setStatus(ClusterStatus.ONLINE);
  25. } catch (Exception e) {
  26. log.error(e);
  27. cluster.setStatus(ClusterStatus.OFFLINE);
  28. }
  29. }
  30. }
  31. }