Search in sources :

Example 1 with AnomalyFunctionResource

use of com.linkedin.thirdeye.dashboard.resources.AnomalyFunctionResource in project pinot by linkedin.

the class ThirdEyeAnomalyApplication method run.

@Override
public void run(final ThirdEyeAnomalyConfiguration config, final Environment environment) throws Exception {
    LOG.info("Starting ThirdeyeAnomalyApplication : Scheduler {} Worker {}", config.isScheduler(), config.isWorker());
    super.initDAOs();
    ThirdEyeCacheRegistry.initializeCaches(config);
    environment.lifecycle().manage(new Managed() {

        @Override
        public void start() throws Exception {
            if (config.isWorker()) {
                anomalyFunctionFactory = new AnomalyFunctionFactory(config.getFunctionConfigPath());
                alertFilterFactory = new AlertFilterFactory(config.getAlertFilterConfigPath());
                taskDriver = new TaskDriver(config, anomalyFunctionFactory, alertFilterFactory);
                taskDriver.start();
            }
            if (config.isScheduler()) {
                detectionJobScheduler = new DetectionJobScheduler();
                alertFilterFactory = new AlertFilterFactory(config.getAlertFilterConfigPath());
                alertFilterAutotuneFactory = new AlertFilterAutotuneFactory(config.getFilterAutotuneConfigPath());
                detectionJobScheduler.start();
                environment.jersey().register(new DetectionJobResource(detectionJobScheduler, alertFilterFactory, alertFilterAutotuneFactory));
                environment.jersey().register(new AnomalyFunctionResource(config.getFunctionConfigPath()));
            }
            if (config.isMonitor()) {
                monitorJobScheduler = new MonitorJobScheduler(config.getMonitorConfiguration());
                monitorJobScheduler.start();
            }
            if (config.isAlert()) {
                alertJobScheduler = new AlertJobScheduler();
                alertJobScheduler.start();
                // start alert scheduler v2
                alertJobSchedulerV2 = new AlertJobSchedulerV2();
                alertJobSchedulerV2.start();
                environment.jersey().register(new AlertJobResource(alertJobScheduler, emailConfigurationDAO));
            }
            if (config.isMerger()) {
                // anomalyFunctionFactory might have initiated if current machine is also a worker
                if (anomalyFunctionFactory == null) {
                    anomalyFunctionFactory = new AnomalyFunctionFactory(config.getFunctionConfigPath());
                }
                ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
                anomalyMergeExecutor = new AnomalyMergeExecutor(executorService, anomalyFunctionFactory);
                anomalyMergeExecutor.start();
            }
            if (config.isAutoload()) {
                autoLoadPinotMetricsService = new AutoLoadPinotMetricsService(config);
                autoLoadPinotMetricsService.start();
            }
            if (config.isDataCompleteness()) {
                dataCompletenessScheduler = new DataCompletenessScheduler();
                dataCompletenessScheduler.start();
            }
        }

        @Override
        public void stop() throws Exception {
            if (config.isWorker()) {
                taskDriver.stop();
            }
            if (config.isScheduler()) {
                detectionJobScheduler.shutdown();
            }
            if (config.isMonitor()) {
                monitorJobScheduler.stop();
            }
            if (config.isAlert()) {
                alertJobScheduler.shutdown();
                alertJobSchedulerV2.shutdown();
            }
            if (config.isMerger()) {
                anomalyMergeExecutor.stop();
            }
            if (config.isAutoload()) {
                autoLoadPinotMetricsService.shutdown();
            }
            if (config.isDataCompleteness()) {
                dataCompletenessScheduler.shutdown();
            }
        }
    });
}
Also used : DataCompletenessScheduler(com.linkedin.thirdeye.completeness.checker.DataCompletenessScheduler) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) AlertFilterFactory(com.linkedin.thirdeye.detector.email.filter.AlertFilterFactory) TaskDriver(com.linkedin.thirdeye.anomaly.task.TaskDriver) MonitorJobScheduler(com.linkedin.thirdeye.anomaly.monitor.MonitorJobScheduler) AlertJobScheduler(com.linkedin.thirdeye.anomaly.alert.AlertJobScheduler) AnomalyMergeExecutor(com.linkedin.thirdeye.anomaly.merge.AnomalyMergeExecutor) AnomalyFunctionResource(com.linkedin.thirdeye.dashboard.resources.AnomalyFunctionResource) AlertJobResource(com.linkedin.thirdeye.anomaly.alert.AlertJobResource) DetectionJobResource(com.linkedin.thirdeye.anomaly.detection.DetectionJobResource) DetectionJobScheduler(com.linkedin.thirdeye.anomaly.detection.DetectionJobScheduler) AutoLoadPinotMetricsService(com.linkedin.thirdeye.autoload.pinot.metrics.AutoLoadPinotMetricsService) AnomalyFunctionFactory(com.linkedin.thirdeye.detector.function.AnomalyFunctionFactory) Managed(io.dropwizard.lifecycle.Managed) AlertFilterAutotuneFactory(com.linkedin.thirdeye.anomalydetection.alertFilterAutotune.AlertFilterAutotuneFactory) AlertJobSchedulerV2(com.linkedin.thirdeye.anomaly.alert.v2.AlertJobSchedulerV2)

Example 2 with AnomalyFunctionResource

use of com.linkedin.thirdeye.dashboard.resources.AnomalyFunctionResource in project pinot by linkedin.

the class ThirdEyeDashboardApplication method run.

@Override
public void run(ThirdEyeDashboardConfiguration config, Environment env) throws Exception {
    super.initDAOs();
    try {
        ThirdEyeCacheRegistry.initializeCaches(config);
    } catch (Exception e) {
        LOG.error("Exception while loading caches", e);
    }
    AnomalyFunctionFactory anomalyFunctionFactory = new AnomalyFunctionFactory(config.getFunctionConfigPath());
    AlertFilterFactory alertFilterFactory = new AlertFilterFactory(config.getAlertFilterConfigPath());
    env.jersey().register(new AnomalyFunctionResource(config.getFunctionConfigPath()));
    env.jersey().register(new DashboardResource());
    env.jersey().register(new CacheResource());
    env.jersey().register(new AnomalyResource(anomalyFunctionFactory, alertFilterFactory));
    env.jersey().register(new EmailResource(config));
    env.jersey().register(new EntityManagerResource());
    env.jersey().register(new IngraphMetricConfigResource());
    env.jersey().register(new MetricConfigResource());
    env.jersey().register(new DatasetConfigResource());
    env.jersey().register(new IngraphDashboardConfigResource());
    env.jersey().register(new JobResource());
    env.jersey().register(new AdminResource());
    env.jersey().register(new SummaryResource());
    env.jersey().register(new ThirdEyeResource());
    env.jersey().register(new OverrideConfigResource());
    env.jersey().register(new DataResource(anomalyFunctionFactory, alertFilterFactory));
    env.jersey().register(new AnomaliesResource(anomalyFunctionFactory, alertFilterFactory));
    env.jersey().register(new TimeSeriesResource());
    env.jersey().register(new OnboardResource());
    env.jersey().register(new EventResource(config.getInformedApiUrl()));
}
Also used : EntityManagerResource(com.linkedin.thirdeye.dashboard.resources.EntityManagerResource) AlertFilterFactory(com.linkedin.thirdeye.detector.email.filter.AlertFilterFactory) TimeSeriesResource(com.linkedin.thirdeye.dashboard.resources.v2.TimeSeriesResource) AnomalyResource(com.linkedin.thirdeye.dashboard.resources.AnomalyResource) JobResource(com.linkedin.thirdeye.dashboard.resources.JobResource) AnomalyFunctionResource(com.linkedin.thirdeye.dashboard.resources.AnomalyFunctionResource) EmailResource(com.linkedin.thirdeye.dashboard.resources.EmailResource) IngraphMetricConfigResource(com.linkedin.thirdeye.dashboard.resources.IngraphMetricConfigResource) AdminResource(com.linkedin.thirdeye.dashboard.resources.AdminResource) DataResource(com.linkedin.thirdeye.dashboard.resources.v2.DataResource) EventResource(com.linkedin.thirdeye.dashboard.resources.v2.EventResource) ThirdEyeResource(com.linkedin.thirdeye.dashboard.resources.ThirdEyeResource) AnomaliesResource(com.linkedin.thirdeye.dashboard.resources.v2.AnomaliesResource) MetricConfigResource(com.linkedin.thirdeye.dashboard.resources.MetricConfigResource) IngraphMetricConfigResource(com.linkedin.thirdeye.dashboard.resources.IngraphMetricConfigResource) IngraphDashboardConfigResource(com.linkedin.thirdeye.dashboard.resources.IngraphDashboardConfigResource) CacheResource(com.linkedin.thirdeye.dashboard.resources.CacheResource) OverrideConfigResource(com.linkedin.thirdeye.dashboard.resources.OverrideConfigResource) DashboardResource(com.linkedin.thirdeye.dashboard.resources.DashboardResource) AnomalyFunctionFactory(com.linkedin.thirdeye.detector.function.AnomalyFunctionFactory) OnboardResource(com.linkedin.thirdeye.dashboard.resources.OnboardResource) DatasetConfigResource(com.linkedin.thirdeye.dashboard.resources.DatasetConfigResource) SummaryResource(com.linkedin.thirdeye.dashboard.resources.SummaryResource)

Aggregations

AnomalyFunctionResource (com.linkedin.thirdeye.dashboard.resources.AnomalyFunctionResource)2 AlertFilterFactory (com.linkedin.thirdeye.detector.email.filter.AlertFilterFactory)2 AnomalyFunctionFactory (com.linkedin.thirdeye.detector.function.AnomalyFunctionFactory)2 AlertJobResource (com.linkedin.thirdeye.anomaly.alert.AlertJobResource)1 AlertJobScheduler (com.linkedin.thirdeye.anomaly.alert.AlertJobScheduler)1 AlertJobSchedulerV2 (com.linkedin.thirdeye.anomaly.alert.v2.AlertJobSchedulerV2)1 DetectionJobResource (com.linkedin.thirdeye.anomaly.detection.DetectionJobResource)1 DetectionJobScheduler (com.linkedin.thirdeye.anomaly.detection.DetectionJobScheduler)1 AnomalyMergeExecutor (com.linkedin.thirdeye.anomaly.merge.AnomalyMergeExecutor)1 MonitorJobScheduler (com.linkedin.thirdeye.anomaly.monitor.MonitorJobScheduler)1 TaskDriver (com.linkedin.thirdeye.anomaly.task.TaskDriver)1 AlertFilterAutotuneFactory (com.linkedin.thirdeye.anomalydetection.alertFilterAutotune.AlertFilterAutotuneFactory)1 AutoLoadPinotMetricsService (com.linkedin.thirdeye.autoload.pinot.metrics.AutoLoadPinotMetricsService)1 DataCompletenessScheduler (com.linkedin.thirdeye.completeness.checker.DataCompletenessScheduler)1 AdminResource (com.linkedin.thirdeye.dashboard.resources.AdminResource)1 AnomalyResource (com.linkedin.thirdeye.dashboard.resources.AnomalyResource)1 CacheResource (com.linkedin.thirdeye.dashboard.resources.CacheResource)1 DashboardResource (com.linkedin.thirdeye.dashboard.resources.DashboardResource)1 DatasetConfigResource (com.linkedin.thirdeye.dashboard.resources.DatasetConfigResource)1 EmailResource (com.linkedin.thirdeye.dashboard.resources.EmailResource)1