blob: 7b02f0219c9780bfc9ab63248a49cf7bb43b8b9a [file] [log] [blame]
package org.apache.airavata.helix.cluster.monitoring;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.helix.cluster.monitoring.agents.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class MainMonitor {
private final static Logger logger = LoggerFactory.getLogger(MainMonitor.class);
public static void main(String args[]) throws Exception {
logger.info("Starting platform monitor");
List<PlatformMonitor> platformMonitors = Arrays.asList(new ApiServerMonitor(),
new DbMonitor(), new HelixControllerMonitor(),
new HelixParticipantMonitor(), new ZookeeperMonitor());
ErrorNotifier errorNotifier = new ErrorNotifier();
for (PlatformMonitor monitor : platformMonitors) {
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.scheduleWithFixedDelay(() -> monitor.monitor(errorNotifier), 0,
Integer.parseInt(ServerSettings.getSetting("platform_monitor_interval_minutes")),
TimeUnit.MINUTES);
}
}
}