public Map getDashboardStats()

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;
    }