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