private void publishNumberOfAgents()

in usage-statistics-impl/src/jetbrains/buildServer/usageStatistics/impl/providers/StaticServerUsageStatisticsProvider.java [52:75]


  private void publishNumberOfAgents(@NotNull final UsageStatisticsPublisher publisher, @NotNull final UsageStatisticsPresentationManager presentationManager) {
    final String allRegisteredAgentNumberId = makeId("allRegisteredAgentNumber");
    final String authorizedRegisteredAgentNumberId = makeId("authorizedRegisteredAgentNumber");
    final String unidirectionalRegisteredAgentsNumberId = makeId("unidirectionalRegisteredAgentNumber");

    final BuildAgentManagerEx buildAgentManager = myServer.getBuildAgentManager();
    List<BuildAgentEx> registeredAgents = buildAgentManager.getRegisteredAgents(true);

    int authorizedAgents = 0, pollingAgents = 0;
    for (BuildAgentEx registeredAgent : registeredAgents) {
      if (registeredAgent.isAuthorized()) authorizedAgents++;
      if (registeredAgent.getCommunicationProtocolType().equals(PollingRemoteAgentConnection.TYPE)) pollingAgents++;
    }
    final int allRegisteredAgentsNumber = registeredAgents.size();

    presentationManager.applyPresentation(allRegisteredAgentNumberId, "Connected agents (all)", myGroupName, null, null);
    publisher.publishStatistic(allRegisteredAgentNumberId, allRegisteredAgentsNumber);

    presentationManager.applyPresentation(authorizedRegisteredAgentNumberId, "Connected agents (authorized only)", myGroupName, new PercentageFormatter(allRegisteredAgentsNumber), "Authorized agents count (% of all connected agents)");
    publisher.publishStatistic(authorizedRegisteredAgentNumberId, authorizedAgents);

    presentationManager.applyPresentation(unidirectionalRegisteredAgentsNumberId, "Connected agents (unidirectional connection)", myGroupName, new PercentageFormatter(allRegisteredAgentsNumber), "Unidirectional agents count (% of all connected agents)");
    publisher.publishStatistic(unidirectionalRegisteredAgentsNumberId, pollingAgents);
  }