in src/main/java/org/apache/pulsar/manager/service/impl/DashboardServiceImpl.java [50:104]
public Map<String, Object> getDashboardStats(List<String> environmentList) {
int totalClusterCount = 0;
int totalBrokerCount = 0;
int totalTenantCount;
int totalNamespaceCount;
long totalTopicCount = 0;
long totalProducerCount = 0L;
long totalConsumerCount = 0L;
int totalBookieCount = 0;
Map<String, Object> dashboardStatsMap = Maps.newHashMap();
List<TenantEntity> tenantEntities= tenantsRepository.findByMultiEnvironmentName(environmentList);
totalTenantCount = tenantEntities.size();
List<String> tenantList = new LinkedList<>();
for (TenantEntity tenantEntity: tenantEntities) {
tenantList.add(tenantEntity.getTenant());
}
List<NamespaceEntity> namespaceEntities = namespacesRepository.findByMultiTenant(tenantList);
totalNamespaceCount = namespaceEntities.size();
Optional<TopicStatsEntity> topicStatsEntity = topicsStatsRepository.findMaxTime();
if (topicStatsEntity.isPresent()) {
Set<String> clusterSet = Sets.newHashSet();
Set<String> brokerSet = Sets.newHashSet();
TopicStatsEntity topicStats = topicStatsEntity.get();
long timestamp = topicStats.getTime_stamp();
List<TopicStatsEntity> topicStatsEntities = topicsStatsRepository.findByMultiEnvironment(
environmentList, timestamp);
totalTopicCount = topicStatsEntities.size();
List<Long> topicStatsIdList = new LinkedList<>();
for (TopicStatsEntity statsEntity : topicStatsEntities) {
clusterSet.add(statsEntity.getCluster());
brokerSet.add(statsEntity.getBroker());
topicStatsIdList.add(statsEntity.getTopicStatsId());
totalProducerCount += statsEntity.getProducerCount();
}
totalClusterCount = clusterSet.size();
totalBrokerCount = brokerSet.size();
List<ConsumerStatsEntity> consumerStatsEntities = consumersStatsRepository.findByMultiTopicStatsId(
topicStatsIdList, timestamp);
totalConsumerCount = consumerStatsEntities.size();
totalBookieCount = (int) bookiesService.getBookiesList(
1, 10, "").getOrDefault(
"total", 0);
}
dashboardStatsMap.put("totalClusterCount", totalClusterCount);
dashboardStatsMap.put("totalBrokerCount", totalBrokerCount);
dashboardStatsMap.put("totalTenantCount", totalTenantCount);
dashboardStatsMap.put("totalNamespaceCount", totalNamespaceCount);
dashboardStatsMap.put("totalTopicCount", totalTopicCount);
dashboardStatsMap.put("totalProducerCount", totalProducerCount);
dashboardStatsMap.put("totalConsumerCount", totalConsumerCount);
dashboardStatsMap.put("totalBookieCount", totalBookieCount);
return dashboardStatsMap;
}