in plugin/src/main/java/org/opensearch/ml/plugin/MachineLearningPlugin.java [119:204]
public Collection<Object> createComponents(
Client client,
ClusterService clusterService,
ThreadPool threadPool,
ResourceWatcherService resourceWatcherService,
ScriptService scriptService,
NamedXContentRegistry xContentRegistry,
Environment environment,
NodeEnvironment nodeEnvironment,
NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier
) {
this.client = client;
this.threadPool = threadPool;
this.clusterService = clusterService;
Settings settings = environment.settings();
Map<String, MLStat<?>> stats = ImmutableMap
.<String, MLStat<?>>builder()
.put(StatNames.ML_EXECUTING_TASK_COUNT.getName(), new MLStat<>(false, new CounterSupplier()))
.build();
this.mlStats = new MLStats(stats);
mlIndicesHandler = new MLIndicesHandler(clusterService, client);
mlTaskManager = new MLTaskManager(client, mlIndicesHandler);
mlInputDatasetHandler = new MLInputDatasetHandler(client);
MLTaskDispatcher mlTaskDispatcher = new MLTaskDispatcher(clusterService, client);
mlTrainingTaskRunner = new MLTrainingTaskRunner(
threadPool,
clusterService,
client,
mlTaskManager,
mlStats,
mlIndicesHandler,
mlInputDatasetHandler,
mlTaskDispatcher
);
mlPredictTaskRunner = new MLPredictTaskRunner(
threadPool,
clusterService,
client,
mlTaskManager,
mlStats,
mlInputDatasetHandler,
mlTaskDispatcher
);
mlTrainAndPredictTaskRunner = new MLTrainAndPredictTaskRunner(
threadPool,
clusterService,
client,
mlTaskManager,
mlStats,
mlInputDatasetHandler,
mlTaskDispatcher
);
mlExecuteTaskRunner = new MLExecuteTaskRunner(
threadPool,
clusterService,
client,
mlTaskManager,
mlStats,
mlInputDatasetHandler,
mlTaskDispatcher
);
// Register thread-safe ML objects here.
LocalSampleCalculator localSampleCalculator = new LocalSampleCalculator(client, settings);
MLEngineClassLoader.register(FunctionName.LOCAL_SAMPLE_CALCULATOR, localSampleCalculator);
AnomalyLocalizerImpl anomalyLocalizer = new AnomalyLocalizerImpl(client, settings);
MLEngineClassLoader.register(FunctionName.ANOMALY_LOCALIZATION, anomalyLocalizer);
return ImmutableList
.of(
mlStats,
mlTaskManager,
mlIndicesHandler,
mlInputDatasetHandler,
mlTrainingTaskRunner,
mlPredictTaskRunner,
mlTrainAndPredictTaskRunner,
mlExecuteTaskRunner
);
}