package org.openspaces.admin.pu.statistics; import org.openspaces.admin.zone.config.ZonesConfig; /** * Provides fluent API for creating a new {@link ProcessingUnitStatisticsId} object. * @author itaif * @since 9.0.0 * @see ProcessingUnitStatisticsId */ public class ProcessingUnitStatisticsIdConfigurer { private final ProcessingUnitStatisticsId config; public ProcessingUnitStatisticsIdConfigurer() { config = new ProcessingUnitStatisticsId(); } /** * The processing unit custom service monitors id that is the source for this statistics * For more info see {@link org.openspaces.pu.service.ServiceMonitorsProvider} and {@link org.openspaces.pu.service.ServiceMonitors#getId()} * * Could also be one of the following admin API reserved values: * "org.openspaces.admin.os.OperatingSystemsStatistics" for Operating System statistics * "org.openspaces.admin.vm.VirtualMachineStatistics" for the Java Virtual Machine statistics * */ public ProcessingUnitStatisticsIdConfigurer monitor(String monitor) { config.setMonitor(monitor); return this; } /** * The name of the statistics in the source. */ public ProcessingUnitStatisticsIdConfigurer metric(String metric) { config.setMetric(metric); return this; } /** * Aggregates values using the specified time window statistics function. * If timeWindow is null selects the last sample. */ public ProcessingUnitStatisticsIdConfigurer timeWindowStatistics(TimeWindowStatisticsConfig timeWindowStatistics) { config.setTimeWindowStatistics(timeWindowStatistics); return this; } /** * Aggregates values of using the specified cluster statistics function */ public ProcessingUnitStatisticsIdConfigurer instancesStatistics(InstancesStatisticsConfig instancesStatistics) { config.setInstancesStatistics(instancesStatistics); return this; } public ProcessingUnitStatisticsIdConfigurer agentZones(ZonesConfig zoneStatistics) { config.setAgentZones(zoneStatistics); return this; } public ProcessingUnitStatisticsId create() { return config; } }