in src/main/java/org/opensearch/performanceanalyzer/PerformanceAnalyzerPlugin.java [171:274]
public PerformanceAnalyzerPlugin(final Settings settings, final java.nio.file.Path configPath) {
OSMetricsGeneratorFactory.getInstance();
OpenSearchResources.INSTANCE.setSettings(settings);
OpenSearchResources.INSTANCE.setConfigPath(configPath);
OpenSearchResources.INSTANCE.setPluginFileLocation(
new Environment(settings, configPath).pluginsFile().toAbsolutePath().toString()
+ File.separator
+ PLUGIN_NAME
+ File.separator);
// initialize plugin settings. Accessing plugin settings before this
// point will break, as the plugin location will not be initialized.
PluginSettings.instance();
scheduledMetricCollectorsExecutor = new ScheduledMetricCollectorsExecutor();
this.performanceAnalyzerController =
new PerformanceAnalyzerController(scheduledMetricCollectorsExecutor);
configOverridesWrapper = new ConfigOverridesWrapper();
clusterSettingsManager =
new ClusterSettingsManager(
Arrays.asList(
PerformanceAnalyzerClusterSettings.COMPOSITE_PA_SETTING,
PerformanceAnalyzerClusterSettings.PA_NODE_STATS_SETTING),
Collections.singletonList(
PerformanceAnalyzerClusterSettings.CONFIG_OVERRIDES_SETTING));
configOverridesClusterSettingHandler =
new ConfigOverridesClusterSettingHandler(
configOverridesWrapper,
clusterSettingsManager,
PerformanceAnalyzerClusterSettings.CONFIG_OVERRIDES_SETTING);
clusterSettingsManager.addSubscriberForStringSetting(
PerformanceAnalyzerClusterSettings.CONFIG_OVERRIDES_SETTING,
configOverridesClusterSettingHandler);
perfAnalyzerClusterSettingHandler =
new PerformanceAnalyzerClusterSettingHandler(
performanceAnalyzerController, clusterSettingsManager);
clusterSettingsManager.addSubscriberForIntSetting(
PerformanceAnalyzerClusterSettings.COMPOSITE_PA_SETTING,
perfAnalyzerClusterSettingHandler);
nodeStatsSettingHandler =
new NodeStatsSettingHandler(performanceAnalyzerController, clusterSettingsManager);
clusterSettingsManager.addSubscriberForIntSetting(
PerformanceAnalyzerClusterSettings.PA_NODE_STATS_SETTING, nodeStatsSettingHandler);
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new ThreadPoolMetricsCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new CacheConfigMetricsCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new CircuitBreakerCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(new OSMetricsCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(new HeapMetricsCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new NodeDetailsCollector(configOverridesWrapper));
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new NodeStatsAllShardsMetricsCollector(performanceAnalyzerController));
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new NodeStatsFixedShardsMetricsCollector(performanceAnalyzerController));
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(new MasterServiceMetrics());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new MasterServiceEventMetrics());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(new DisksCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new NetworkInterfaceCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(new GCInfoCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(StatsCollector.instance());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new FaultDetectionMetricsCollector(
performanceAnalyzerController, configOverridesWrapper));
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new ShardStateCollector(performanceAnalyzerController, configOverridesWrapper));
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new MasterThrottlingMetricsCollector(
performanceAnalyzerController, configOverridesWrapper));
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new ClusterApplierServiceStatsCollector(
performanceAnalyzerController, configOverridesWrapper));
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new AdmissionControlMetricsCollector());
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new ElectionTermCollector(performanceAnalyzerController, configOverridesWrapper));
try {
Class.forName(ShardIndexingPressureMetricsCollector.SHARD_INDEXING_PRESSURE_CLASS_NAME);
scheduledMetricCollectorsExecutor.addScheduledMetricCollector(
new ShardIndexingPressureMetricsCollector(
performanceAnalyzerController, configOverridesWrapper));
} catch (ClassNotFoundException e) {
LOG.info(
"Shard IndexingPressure not present in this OpenSearch version. Skipping ShardIndexingPressureMetricsCollector");
}
scheduledMetricCollectorsExecutor.start();
EventLog eventLog = new EventLog();
EventLogFileHandler eventLogFileHandler =
new EventLogFileHandler(eventLog, PluginSettings.instance().getMetricsLocation());
new EventLogQueueProcessor(
eventLogFileHandler,
MetricsConfiguration.SAMPLING_INTERVAL,
QUEUE_PURGE_INTERVAL_MS,
performanceAnalyzerController)
.scheduleExecutor();
}