test_class.file: stagemonitor-core/src/test/java/org/stagemonitor/core/CorePluginTest.java
test_class.identifier: CorePluginTest
test_case.body: @Test
  	public void testCycleElasticsearchUrls() throws Exception {
  		CorePlugin corePlugin = ConfigurationRegistry.builder()
  				.addOptionProvider(new CorePlugin())
  				.addConfigSource(new SimpleSource("test")
  						.add("stagemonitor.reporting.elasticsearch.url", "http://bla:1/,http://bla:2,http://bla:3"))
  				.build()
  				.getConfig(CorePlugin.class);
  
  		assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:1");
  		assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:2");
  		assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:3");
  		assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:1");
  		assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:2");
  		assertThat(corePlugin.getElasticsearchUrl().toString()).isEqualTo("http://bla:3");
  	}
test_case.class_method_signature: CorePluginTest.testCycleElasticsearchUrls()
test_case.full_signature: @Test public void testCycleElasticsearchUrls()
test_case.identifier: testCycleElasticsearchUrls
test_case.invocations: getConfig build addConfigSource addOptionProvider builder add isEqualTo assertThat toString getElasticsearchUrl isEqualTo assertThat toString getElasticsearchUrl isEqualTo assertThat toString getElasticsearchUrl isEqualTo assertThat toString getElasticsearchUrl isEqualTo assertThat toString getElasticsearchUrl isEqualTo assertThat toString getElasticsearchUrl
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCycleElasticsearchUrls()
focal_class.declarator: CORE_PLUGIN_NAME = "Core"
focal_class.modifier: private static final
focal_class.original_string: private static final String CORE_PLUGIN_NAME = "Core";
focal_class.type: String
focal_class.var_name: CORE_PLUGIN_NAME
focal_class.declarator: POOLS_QUEUE_CAPACITY_LIMIT_KEY = "stagemonitor.threadPools.queueCapacityLimit"
focal_class.modifier: public static final
focal_class.original_string: public static final String POOLS_QUEUE_CAPACITY_LIMIT_KEY = "stagemonitor.threadPools.queueCapacityLimit";
focal_class.type: String
focal_class.var_name: POOLS_QUEUE_CAPACITY_LIMIT_KEY
focal_class.declarator: ELASTICSEARCH = "elasticsearch"
focal_class.modifier: private static final
focal_class.original_string: private static final String ELASTICSEARCH = "elasticsearch";
focal_class.type: String
focal_class.var_name: ELASTICSEARCH
focal_class.declarator: METRICS_STORE = "metrics-store"
focal_class.modifier: private static final
focal_class.original_string: private static final String METRICS_STORE = "metrics-store";
focal_class.type: String
focal_class.var_name: METRICS_STORE
focal_class.declarator: logger = LoggerFactory.getLogger(CorePlugin.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(CorePlugin.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: stagemonitorActive = ConfigurationOption.booleanOption()
  			.key("stagemonitor.active")
  			.dynamic(true)
  			.label("Activate stagemonitor")
  			.description("If set to `false` stagemonitor will be completely deactivated.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> stagemonitorActive = ConfigurationOption.booleanOption()
  			.key("stagemonitor.active")
  			.dynamic(true)
  			.label("Activate stagemonitor")
  			.description("If set to `false` stagemonitor will be completely deactivated.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: stagemonitorActive
focal_class.declarator: internalMonitoring = ConfigurationOption.booleanOption()
  			.key("stagemonitor.internal.monitoring")
  			.dynamic(true)
  			.label("Internal monitoring")
  			.description("If active, stagemonitor will collect internal performance data")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(false)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> internalMonitoring = ConfigurationOption.booleanOption()
  			.key("stagemonitor.internal.monitoring")
  			.dynamic(true)
  			.label("Internal monitoring")
  			.description("If active, stagemonitor will collect internal performance data")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(false);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: internalMonitoring
focal_class.declarator: reportingIntervalConsole = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.interval.console")
  			.dynamic(false)
  			.label("Reporting interval console")
  			.description("The amount of time between console reports (in seconds). " +
  					"To deactivate console reports, set this to a value below 1.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(0)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> reportingIntervalConsole = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.interval.console")
  			.dynamic(false)
  			.label("Reporting interval console")
  			.description("The amount of time between console reports (in seconds). " +
  					"To deactivate console reports, set this to a value below 1.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(0);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: reportingIntervalConsole
focal_class.declarator: reportingJmx = ConfigurationOption.booleanOption()
  			.key("stagemonitor.reporting.jmx")
  			.dynamic(false)
  			.label("Expose MBeans")
  			.description("Whether or not to expose all metrics as MBeans.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(false)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> reportingJmx = ConfigurationOption.booleanOption()
  			.key("stagemonitor.reporting.jmx")
  			.dynamic(false)
  			.label("Expose MBeans")
  			.description("Whether or not to expose all metrics as MBeans.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(false);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: reportingJmx
focal_class.declarator: reportingIntervalGraphite = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.interval.graphite")
  			.dynamic(false)
  			.label("Reporting interval graphite")
  			.description("The amount of time between the metrics are reported to graphite (in seconds).\n" +
  					"To deactivate graphite reporting, set this to a value below 1, or don't provide " +
  					"stagemonitor.reporting.graphite.hostName.")
  			.tags(METRICS_STORE, "graphite")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(60)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> reportingIntervalGraphite = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.interval.graphite")
  			.dynamic(false)
  			.label("Reporting interval graphite")
  			.description("The amount of time between the metrics are reported to graphite (in seconds).\n" +
  					"To deactivate graphite reporting, set this to a value below 1, or don't provide " +
  					"stagemonitor.reporting.graphite.hostName.")
  			.tags(METRICS_STORE, "graphite")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(60);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: reportingIntervalGraphite
focal_class.declarator: graphiteHostName = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.graphite.hostName")
  			.dynamic(false)
  			.label("Graphite host name")
  			.description("The name of the host where graphite is running. This setting is mandatory, if you want " +
  					"to use the grafana dashboards.")
  			.tags(METRICS_STORE, "graphite")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.build()
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> graphiteHostName = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.graphite.hostName")
  			.dynamic(false)
  			.label("Graphite host name")
  			.description("The name of the host where graphite is running. This setting is mandatory, if you want " +
  					"to use the grafana dashboards.")
  			.tags(METRICS_STORE, "graphite")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.build();
focal_class.type: ConfigurationOption<String>
focal_class.var_name: graphiteHostName
focal_class.declarator: graphitePort = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.graphite.port")
  			.dynamic(false)
  			.label("Carbon port")
  			.description("The port where carbon is listening.")
  			.tags(METRICS_STORE, "graphite")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(2003)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> graphitePort = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.graphite.port")
  			.dynamic(false)
  			.label("Carbon port")
  			.description("The port where carbon is listening.")
  			.tags(METRICS_STORE, "graphite")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(2003);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: graphitePort
focal_class.declarator: influxDbUrl = ConfigurationOption.urlOption()
  			.key("stagemonitor.reporting.influxdb.url")
  			.dynamic(true)
  			.label("InfluxDB URL")
  			.description("The URL of your InfluxDB installation.")
  			.tags(METRICS_STORE, "influx-db")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.build()
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<URL> influxDbUrl = ConfigurationOption.urlOption()
  			.key("stagemonitor.reporting.influxdb.url")
  			.dynamic(true)
  			.label("InfluxDB URL")
  			.description("The URL of your InfluxDB installation.")
  			.tags(METRICS_STORE, "influx-db")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.build();
focal_class.type: ConfigurationOption<URL>
focal_class.var_name: influxDbUrl
focal_class.declarator: influxDbDb = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.influxdb.db")
  			.dynamic(true)
  			.label("InfluxDB database")
  			.description("The target database")
  			.tags(METRICS_STORE, "influx-db")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault("stagemonitor")
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> influxDbDb = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.influxdb.db")
  			.dynamic(true)
  			.label("InfluxDB database")
  			.description("The target database")
  			.tags(METRICS_STORE, "influx-db")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault("stagemonitor");
focal_class.type: ConfigurationOption<String>
focal_class.var_name: influxDbDb
focal_class.declarator: reportingIntervalInfluxDb = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.interval.influxdb")
  			.dynamic(false)
  			.label("Reporting interval InfluxDb")
  			.description("The amount of time between the metrics are reported to InfluxDB (in seconds).")
  			.tags(METRICS_STORE, "influx-db")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(60)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> reportingIntervalInfluxDb = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.interval.influxdb")
  			.dynamic(false)
  			.label("Reporting interval InfluxDb")
  			.description("The amount of time between the metrics are reported to InfluxDB (in seconds).")
  			.tags(METRICS_STORE, "influx-db")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(60);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: reportingIntervalInfluxDb
focal_class.declarator: reportingIntervalElasticsearch = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.interval.elasticsearch")
  			.dynamic(false)
  			.label("Reporting interval Elasticsearch")
  			.description("The amount of time between the metrics are reported to Elasticsearch (in seconds).")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(60)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> reportingIntervalElasticsearch = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.interval.elasticsearch")
  			.dynamic(false)
  			.label("Reporting interval Elasticsearch")
  			.description("The amount of time between the metrics are reported to Elasticsearch (in seconds).")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(60);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: reportingIntervalElasticsearch
focal_class.declarator: onlyLogElasticsearchMetricReports = ConfigurationOption.booleanOption()
  			.key("stagemonitor.reporting.elasticsearch.onlyLogElasticsearchMetricReports")
  			.dynamic(false)
  			.label("Only log Elasticsearch metric reports")
  			.description(String.format("If set to true, the metrics won't be reported to elasticsearch but instead logged in bulk format. " +
  					"The name of the logger is %s. That way you can redirect the reporting to a separate log file and use logstash or a " +
  					"different external process to send the metrics to elasticsearch.", ElasticsearchReporter.ES_METRICS_LOGGER))
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(false)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> onlyLogElasticsearchMetricReports = ConfigurationOption.booleanOption()
  			.key("stagemonitor.reporting.elasticsearch.onlyLogElasticsearchMetricReports")
  			.dynamic(false)
  			.label("Only log Elasticsearch metric reports")
  			.description(String.format("If set to true, the metrics won't be reported to elasticsearch but instead logged in bulk format. " +
  					"The name of the logger is %s. That way you can redirect the reporting to a separate log file and use logstash or a " +
  					"different external process to send the metrics to elasticsearch.", ElasticsearchReporter.ES_METRICS_LOGGER))
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(false);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: onlyLogElasticsearchMetricReports
focal_class.declarator: deleteElasticsearchMetricsAfterDays = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.deleteMetricsAfterDays")
  			.dynamic(false)
  			.label("Delete ES metrics after (days)")
  			.description("The number of days after the metrics stored in elasticsearch should be deleted. Set below 1 to deactivate.")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(-1)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> deleteElasticsearchMetricsAfterDays = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.deleteMetricsAfterDays")
  			.dynamic(false)
  			.label("Delete ES metrics after (days)")
  			.description("The number of days after the metrics stored in elasticsearch should be deleted. Set below 1 to deactivate.")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(-1);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: deleteElasticsearchMetricsAfterDays
focal_class.declarator: moveToColdNodesAfterDays = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.hotColdArchitecture.moveToColdNodesAfterDays")
  			.aliasKeys("stagemonitor.elasticsearch.hotColdArchitecture.moveToColdNodesAfterDays")
  			.dynamic(false)
  			.label("Activate Hot-Cold Architecture")
  			.description("Setting this to a value > 1 activates the hot-cold architecture described in https://www.elastic.co/blog/hot-warm-architecture " +
  					"where new data that is more frequently queried and updated is stored on beefy nodes (SSDs, more RAM and CPU). " +
  					"When the indexes reach a certain age, they are allocated on cold nodes. For this to work, you have to tag your " +
  					"beefy nodes with node.box_type: hot (either in elasticsearch.yml or start the node using ./bin/elasticsearch --node.box_type hot)" +
  					"and your historical nodes with node.box_type: cold.")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(-1)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> moveToColdNodesAfterDays = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.hotColdArchitecture.moveToColdNodesAfterDays")
  			.aliasKeys("stagemonitor.elasticsearch.hotColdArchitecture.moveToColdNodesAfterDays")
  			.dynamic(false)
  			.label("Activate Hot-Cold Architecture")
  			.description("Setting this to a value > 1 activates the hot-cold architecture described in https://www.elastic.co/blog/hot-warm-architecture " +
  					"where new data that is more frequently queried and updated is stored on beefy nodes (SSDs, more RAM and CPU). " +
  					"When the indexes reach a certain age, they are allocated on cold nodes. For this to work, you have to tag your " +
  					"beefy nodes with node.box_type: hot (either in elasticsearch.yml or start the node using ./bin/elasticsearch --node.box_type hot)" +
  					"and your historical nodes with node.box_type: cold.")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(-1);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: moveToColdNodesAfterDays
focal_class.declarator: numberOfReplicas = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.numberOfReplicas")
  			.aliasKeys("stagemonitor.elasticsearch.numberOfReplicas")
  			.dynamic(false)
  			.label("Number of ES Replicas")
  			.description("Sets the number of replicas of the Elasticsearch index templates.")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(0)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> numberOfReplicas = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.numberOfReplicas")
  			.aliasKeys("stagemonitor.elasticsearch.numberOfReplicas")
  			.dynamic(false)
  			.label("Number of ES Replicas")
  			.description("Sets the number of replicas of the Elasticsearch index templates.")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(0);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: numberOfReplicas
focal_class.declarator: numberOfShards = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.numberOfShards")
  			.aliasKeys("stagemonitor.elasticsearch.numberOfShards")
  			.dynamic(false)
  			.label("Number of ES Shards")
  			.description("Sets the number of shards of the Elasticsearch index templates.")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(1)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> numberOfShards = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.numberOfShards")
  			.aliasKeys("stagemonitor.elasticsearch.numberOfShards")
  			.dynamic(false)
  			.label("Number of ES Shards")
  			.description("Sets the number of shards of the Elasticsearch index templates.")
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(1);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: numberOfShards
focal_class.declarator: applicationName = ConfigurationOption.stringOption()
  			.key("stagemonitor.applicationName")
  			.dynamic(false)
  			.label("Application name")
  			.description("The name of the application.\n" +
  					"It is highly recommended to set this to a short and descriptive name of you application. " +
  					"The dashboards provide a filter for the application name.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("important")
  			.buildWithDefault("My Application")
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> applicationName = ConfigurationOption.stringOption()
  			.key("stagemonitor.applicationName")
  			.dynamic(false)
  			.label("Application name")
  			.description("The name of the application.\n" +
  					"It is highly recommended to set this to a short and descriptive name of you application. " +
  					"The dashboards provide a filter for the application name.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("important")
  			.buildWithDefault("My Application");
focal_class.type: ConfigurationOption<String>
focal_class.var_name: applicationName
focal_class.declarator: instanceName = ConfigurationOption.stringOption()
  			.key("stagemonitor.instanceName")
  			.dynamic(false)
  			.label("Instance name")
  			.description("The instance name.\n" +
  					"The instance or stage of your application. For example prod, test, test1, dev. " +
  					"It's important to set this to a useful value because the dashboards provide filters for the instance.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("important")
  			.buildWithDefault("My Instance")
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> instanceName = ConfigurationOption.stringOption()
  			.key("stagemonitor.instanceName")
  			.dynamic(false)
  			.label("Instance name")
  			.description("The instance name.\n" +
  					"The instance or stage of your application. For example prod, test, test1, dev. " +
  					"It's important to set this to a useful value because the dashboards provide filters for the instance.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("important")
  			.buildWithDefault("My Instance");
focal_class.type: ConfigurationOption<String>
focal_class.var_name: instanceName
focal_class.declarator: hostName = ConfigurationOption.stringOption()
  			.key("stagemonitor.hostName")
  			.dynamic(false)
  			.label("Host name")
  			.description("The host name.\n" +
  					"If this property is not set, the host name will default to resolving the host name for localhost, " +
  					"if this fails it will be loaded from the environment, either from COMPUTERNAME, HOSTNAME or HOST. " +
  					"The dashboards provide a filter for the host name.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(getNameOfLocalHost())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> hostName = ConfigurationOption.stringOption()
  			.key("stagemonitor.hostName")
  			.dynamic(false)
  			.label("Host name")
  			.description("The host name.\n" +
  					"If this property is not set, the host name will default to resolving the host name for localhost, " +
  					"if this fails it will be loaded from the environment, either from COMPUTERNAME, HOSTNAME or HOST. " +
  					"The dashboards provide a filter for the host name.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(getNameOfLocalHost());
focal_class.type: ConfigurationOption<String>
focal_class.var_name: hostName
focal_class.declarator: elasticsearchUrls = ConfigurationOption.urlsOption()
  			.key("stagemonitor.reporting.elasticsearch.url")
  			.aliasKeys("stagemonitor.elasticsearch.url")
  			.dynamic(true)
  			.label("Elasticsearch URL")
  			.description("A comma separated list of the Elasticsearch URLs that store spans and metrics. " +
  					"If your ES cluster is secured with basic authentication, you can use urls like https://user:password@example.com. " +
  					"The authentication information must be in application/x-www-form-urlencoded format. " +
  					"You can also specify default credentials (in plain text) with stagemonitor.reporting.elasticsearch.username and stagemonitor.reporting.elasticsearch.password."
  			)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags(ELASTICSEARCH)
  			.buildWithDefault(Collections.<URL>emptyList())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<List<URL>> elasticsearchUrls = ConfigurationOption.urlsOption()
  			.key("stagemonitor.reporting.elasticsearch.url")
  			.aliasKeys("stagemonitor.elasticsearch.url")
  			.dynamic(true)
  			.label("Elasticsearch URL")
  			.description("A comma separated list of the Elasticsearch URLs that store spans and metrics. " +
  					"If your ES cluster is secured with basic authentication, you can use urls like https://user:password@example.com. " +
  					"The authentication information must be in application/x-www-form-urlencoded format. " +
  					"You can also specify default credentials (in plain text) with stagemonitor.reporting.elasticsearch.username and stagemonitor.reporting.elasticsearch.password."
  			)
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags(ELASTICSEARCH)
  			.buildWithDefault(Collections.<URL>emptyList());
focal_class.type: ConfigurationOption<List<URL>>
focal_class.var_name: elasticsearchUrls
focal_class.declarator: elasticsearchDefaultUsername = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.elasticsearch.username")
  			.dynamic(true)
  			.label("Elasticsearch Username")
  			.description("The default username for all Elasticsearch URLs defined by stagemonitor.reporting.elasticsearch.url in plain text format.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags(ELASTICSEARCH)
  			.buildWithDefault("")
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> elasticsearchDefaultUsername = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.elasticsearch.username")
  			.dynamic(true)
  			.label("Elasticsearch Username")
  			.description("The default username for all Elasticsearch URLs defined by stagemonitor.reporting.elasticsearch.url in plain text format.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags(ELASTICSEARCH)
  			.buildWithDefault("");
focal_class.type: ConfigurationOption<String>
focal_class.var_name: elasticsearchDefaultUsername
focal_class.declarator: elasticsearchDefaultPassword = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.elasticsearch.password")
  			.dynamic(true)
  			.label("Elasticsearch Password")
  			.description("The default password for all Elasticsearch URLs defined by stagemonitor.reporting.elasticsearch.url in plain text format.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags(ELASTICSEARCH)
  			.sensitive()
  			.buildWithDefault("")
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> elasticsearchDefaultPassword = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.elasticsearch.password")
  			.dynamic(true)
  			.label("Elasticsearch Password")
  			.description("The default password for all Elasticsearch URLs defined by stagemonitor.reporting.elasticsearch.url in plain text format.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags(ELASTICSEARCH)
  			.sensitive()
  			.buildWithDefault("");
focal_class.type: ConfigurationOption<String>
focal_class.var_name: elasticsearchDefaultPassword
focal_class.declarator: elasticsearchConfigurationSourceProfiles = ConfigurationOption.stringsOption()
  			.key("stagemonitor.configuration.elasticsearch.configurationSourceProfiles")
  			.aliasKeys("stagemonitor.elasticsearch.configurationSourceProfiles")
  			.dynamic(false)
  			.label("Elasticsearch configuration source profiles")
  			.description("Set configuration profiles of configuration stored in elasticsearch as a centralized configuration source " +
  					"that can be shared between multiple server instances. Set the profiles appropriate to the current " +
  					"environment e.g. `common,prod`, `local`, `test`, ..." +
  					"When you provide multiple profiles, the later ones have precedence over the first ones. " +
  					"The configuration will be stored under " +
  					"`{stagemonitor.reporting.elasticsearch.url}/stagemonitor-configuration/configuration/{configurationSourceProfile}`.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptyList())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Collection<String>> elasticsearchConfigurationSourceProfiles = ConfigurationOption.stringsOption()
  			.key("stagemonitor.configuration.elasticsearch.configurationSourceProfiles")
  			.aliasKeys("stagemonitor.elasticsearch.configurationSourceProfiles")
  			.dynamic(false)
  			.label("Elasticsearch configuration source profiles")
  			.description("Set configuration profiles of configuration stored in elasticsearch as a centralized configuration source " +
  					"that can be shared between multiple server instances. Set the profiles appropriate to the current " +
  					"environment e.g. `common,prod`, `local`, `test`, ..." +
  					"When you provide multiple profiles, the later ones have precedence over the first ones. " +
  					"The configuration will be stored under " +
  					"`{stagemonitor.reporting.elasticsearch.url}/stagemonitor-configuration/configuration/{configurationSourceProfile}`.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptyList());
focal_class.type: ConfigurationOption<Collection<String>>
focal_class.var_name: elasticsearchConfigurationSourceProfiles
focal_class.declarator: deactivateStagemonitorIfEsConfigSourceIsDown = ConfigurationOption.booleanOption()
  			.key("stagemonitor.configuration.elasticsearch.deactivateStagemonitorIfEsIsDown")
  			.aliasKeys("stagemonitor.elasticsearch.configurationSource.deactivateStagemonitorIfEsIsDown")
  			.dynamic(false)
  			.label("Deactivate stagemonitor if elasticsearch configuration source is down")
  			.description("Set to true if stagemonitor should be deactivated if " +
  					"stagemonitor.configuration.elasticsearch.configurationSourceProfiles is set but elasticsearch can't be reached " +
  					"under stagemonitor.reporting.elasticsearch.url. Defaults to true to prevent starting stagemonitor with " +
  					"wrong configuration.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> deactivateStagemonitorIfEsConfigSourceIsDown = ConfigurationOption.booleanOption()
  			.key("stagemonitor.configuration.elasticsearch.deactivateStagemonitorIfEsIsDown")
  			.aliasKeys("stagemonitor.elasticsearch.configurationSource.deactivateStagemonitorIfEsIsDown")
  			.dynamic(false)
  			.label("Deactivate stagemonitor if elasticsearch configuration source is down")
  			.description("Set to true if stagemonitor should be deactivated if " +
  					"stagemonitor.configuration.elasticsearch.configurationSourceProfiles is set but elasticsearch can't be reached " +
  					"under stagemonitor.reporting.elasticsearch.url. Defaults to true to prevent starting stagemonitor with " +
  					"wrong configuration.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: deactivateStagemonitorIfEsConfigSourceIsDown
focal_class.declarator: excludedMetrics = ConfigurationOption
  			.builder(new SetValueConverter<MetricName>(new MetricNameValueConverter()), Collection.class)
  			.key("stagemonitor.metrics.excluded.pattern")
  			.dynamic(false)
  			.label("Excluded metric names")
  			.description("A comma separated list of metric names that should not be collected.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<MetricName>emptyList())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Collection<MetricName>> excludedMetrics = ConfigurationOption
  			.builder(new SetValueConverter<MetricName>(new MetricNameValueConverter()), Collection.class)
  			.key("stagemonitor.metrics.excluded.pattern")
  			.dynamic(false)
  			.label("Excluded metric names")
  			.description("A comma separated list of metric names that should not be collected.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<MetricName>emptyList());
focal_class.type: ConfigurationOption<Collection<MetricName>>
focal_class.var_name: excludedMetrics
focal_class.declarator: disabledPlugins = ConfigurationOption.stringsOption()
  			.key("stagemonitor.plugins.disabled")
  			.dynamic(false)
  			.label("Disabled plugins")
  			.description("A comma separated list of plugin names (the simple class name) that should not be active.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptyList())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Collection<String>> disabledPlugins = ConfigurationOption.stringsOption()
  			.key("stagemonitor.plugins.disabled")
  			.dynamic(false)
  			.label("Disabled plugins")
  			.description("A comma separated list of plugin names (the simple class name) that should not be active.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptyList());
focal_class.type: ConfigurationOption<Collection<String>>
focal_class.var_name: disabledPlugins
focal_class.declarator: reloadConfigurationInterval = ConfigurationOption.integerOption()
  			.key("stagemonitor.configuration.reload.interval")
  			.dynamic(false)
  			.label("Configuration reload interval")
  			.description("The interval in seconds a reload of all configuration sources is performed. " +
  					"Set to a value below `1` to deactivate periodic reloading the configuration.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(60)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> reloadConfigurationInterval = ConfigurationOption.integerOption()
  			.key("stagemonitor.configuration.reload.interval")
  			.dynamic(false)
  			.label("Configuration reload interval")
  			.description("The interval in seconds a reload of all configuration sources is performed. " +
  					"Set to a value below `1` to deactivate periodic reloading the configuration.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(60);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: reloadConfigurationInterval
focal_class.declarator: excludePackages = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.exclude")
  			.dynamic(false)
  			.label("Excluded packages")
  			.description("Exclude packages and their sub-packages from the instrumentation (for example the profiler).")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptySet())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Collection<String>> excludePackages = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.exclude")
  			.dynamic(false)
  			.label("Excluded packages")
  			.description("Exclude packages and their sub-packages from the instrumentation (for example the profiler).")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptySet());
focal_class.type: ConfigurationOption<Collection<String>>
focal_class.var_name: excludePackages
focal_class.declarator: excludeContaining = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.excludeContaining")
  			.dynamic(false)
  			.label("Exclude containing")
  			.description("Exclude classes from the instrumentation (for example from profiling) that contain one of the " +
  					"following strings as part of their class name.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(SetValueConverter.immutableSet("$JaxbAccessor", "$$", "CGLIB", "EnhancerBy", "$Proxy"))
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Collection<String>> excludeContaining = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.excludeContaining")
  			.dynamic(false)
  			.label("Exclude containing")
  			.description("Exclude classes from the instrumentation (for example from profiling) that contain one of the " +
  					"following strings as part of their class name.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(SetValueConverter.immutableSet("$JaxbAccessor", "$$", "CGLIB", "EnhancerBy", "$Proxy"));
focal_class.type: ConfigurationOption<Collection<String>>
focal_class.var_name: excludeContaining
focal_class.declarator: includePackages = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.include")
  			.dynamic(false)
  			.label("Included packages")
  			.description("The packages that should be included for instrumentation. " +
  					"All subpackages of the listed packages are included automatically. " +
  					"This property is required if you want to use the profiler, the @MonitorRequests annotation, the " +
  					"com.codahale.metrics.annotation.* annotations or similar features. " +
  					"You can exclude subpackages of a included package via `stagemonitor.instrument.exclude`. " +
  					"Example: `org.somecompany.package, com.someothercompany`")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptySet())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Collection<String>> includePackages = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.include")
  			.dynamic(false)
  			.label("Included packages")
  			.description("The packages that should be included for instrumentation. " +
  					"All subpackages of the listed packages are included automatically. " +
  					"This property is required if you want to use the profiler, the @MonitorRequests annotation, the " +
  					"com.codahale.metrics.annotation.* annotations or similar features. " +
  					"You can exclude subpackages of a included package via `stagemonitor.instrument.exclude`. " +
  					"Example: `org.somecompany.package, com.someothercompany`")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptySet());
focal_class.type: ConfigurationOption<Collection<String>>
focal_class.var_name: includePackages
focal_class.declarator: attachAgentAtRuntime = ConfigurationOption.booleanOption()
  			.key("stagemonitor.instrument.runtimeAttach")
  			.dynamic(false)
  			.label("Attach agent at runtime")
  			.description("Attaches the agent via the Attach API at runtime and retransforms all currently loaded classes.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> attachAgentAtRuntime = ConfigurationOption.booleanOption()
  			.key("stagemonitor.instrument.runtimeAttach")
  			.dynamic(false)
  			.label("Attach agent at runtime")
  			.description("Attaches the agent via the Attach API at runtime and retransforms all currently loaded classes.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: attachAgentAtRuntime
focal_class.declarator: exportClassesWithName = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.exportGeneratedClassesWithName")
  			.dynamic(false)
  			.label("Export generated classes with name")
  			.description("A list of the fully qualified class names which should be exported to the file system after they have been " +
  					"modified by Byte Buddy. This option is useful to debug problems inside the generated class. " +
  					"Classes are exported to a temporary directory. The logs contain the information where the files " +
  					"are stored.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptySet())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Collection<String>> exportClassesWithName = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.exportGeneratedClassesWithName")
  			.dynamic(false)
  			.label("Export generated classes with name")
  			.description("A list of the fully qualified class names which should be exported to the file system after they have been " +
  					"modified by Byte Buddy. This option is useful to debug problems inside the generated class. " +
  					"Classes are exported to a temporary directory. The logs contain the information where the files " +
  					"are stored.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptySet());
focal_class.type: ConfigurationOption<Collection<String>>
focal_class.var_name: exportClassesWithName
focal_class.declarator: debugInstrumentation = ConfigurationOption.booleanOption()
  			.key("stagemonitor.instrument.debug")
  			.dynamic(false)
  			.label("Debug instrumentation")
  			.description("Set to true to log additional information and warnings during the instrumentation process.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(false)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> debugInstrumentation = ConfigurationOption.booleanOption()
  			.key("stagemonitor.instrument.debug")
  			.dynamic(false)
  			.label("Debug instrumentation")
  			.description("Set to true to log additional information and warnings during the instrumentation process.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(false);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: debugInstrumentation
focal_class.declarator: excludedInstrumenters = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.excludedInstrumenter")
  			.dynamic(false)
  			.label("Excluded Instrumenters")
  			.description("A list of the simple class names of StagemonitorByteBuddyTransformers that should not be applied")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptySet())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Collection<String>> excludedInstrumenters = ConfigurationOption.stringsOption()
  			.key("stagemonitor.instrument.excludedInstrumenter")
  			.dynamic(false)
  			.label("Excluded Instrumenters")
  			.description("A list of the simple class names of StagemonitorByteBuddyTransformers that should not be applied")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<String>emptySet());
focal_class.type: ConfigurationOption<Collection<String>>
focal_class.var_name: excludedInstrumenters
focal_class.declarator: grafanaUrl = ConfigurationOption.stringOption()
  			.key("stagemonitor.grafana.url")
  			.dynamic(true)
  			.label("Grafana URL")
  			.description("The URL of your Grafana 2.0 installation")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("grafana")
  			.build()
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> grafanaUrl = ConfigurationOption.stringOption()
  			.key("stagemonitor.grafana.url")
  			.dynamic(true)
  			.label("Grafana URL")
  			.description("The URL of your Grafana 2.0 installation")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("grafana")
  			.build();
focal_class.type: ConfigurationOption<String>
focal_class.var_name: grafanaUrl
focal_class.declarator: grafanaApiKey = ConfigurationOption.stringOption()
  			.key("stagemonitor.grafana.apiKey")
  			.dynamic(true)
  			.label("Grafana API Key")
  			.description("The API Key of your Grafana 2.0 installation. " +
  					"See http://docs.grafana.org/reference/http_api/#create-api-token how to create a key. " +
  					"The key has to have the admin role. This is necessary so that stagemonitor can automatically add " +
  					"datasources and dashboards to Grafana.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("grafana")
  			.sensitive()
  			.build()
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> grafanaApiKey = ConfigurationOption.stringOption()
  			.key("stagemonitor.grafana.apiKey")
  			.dynamic(true)
  			.label("Grafana API Key")
  			.description("The API Key of your Grafana 2.0 installation. " +
  					"See http://docs.grafana.org/reference/http_api/#create-api-token how to create a key. " +
  					"The key has to have the admin role. This is necessary so that stagemonitor can automatically add " +
  					"datasources and dashboards to Grafana.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("grafana")
  			.sensitive()
  			.build();
focal_class.type: ConfigurationOption<String>
focal_class.var_name: grafanaApiKey
focal_class.declarator: threadPoolQueueCapacityLimit = ConfigurationOption.integerOption()
  			.key(POOLS_QUEUE_CAPACITY_LIMIT_KEY)
  			.dynamic(false)
  			.label("Thread Pool Queue Capacity Limit")
  			.description("Sets a limit to the number of pending tasks in the ExecutorServices stagemonitor uses. " +
  					"These are thread pools that are used for example to report spans to elasticsearch. " +
  					"If elasticsearch is unreachable or your application encounters a spike in incoming requests this limit could be reached. " +
  					"It is used to prevent the queue from growing indefinitely. ")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("advanced")
  			.buildWithDefault(1000)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> threadPoolQueueCapacityLimit = ConfigurationOption.integerOption()
  			.key(POOLS_QUEUE_CAPACITY_LIMIT_KEY)
  			.dynamic(false)
  			.label("Thread Pool Queue Capacity Limit")
  			.description("Sets a limit to the number of pending tasks in the ExecutorServices stagemonitor uses. " +
  					"These are thread pools that are used for example to report spans to elasticsearch. " +
  					"If elasticsearch is unreachable or your application encounters a spike in incoming requests this limit could be reached. " +
  					"It is used to prevent the queue from growing indefinitely. ")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("advanced")
  			.buildWithDefault(1000);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: threadPoolQueueCapacityLimit
focal_class.declarator: metricsIndexTemplate = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.elasticsearch.metricsIndexTemplate")
  			.dynamic(true)
  			.label("ES Metrics Index Template")
  			.description("The classpath location of the index template that is used for the stagemonitor-metrics-* indices. " +
  					"By specifying the location to your own template, you can fully customize the index template.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.buildWithDefault("stagemonitor-elasticsearch-metrics-index-template.json")
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<String> metricsIndexTemplate = ConfigurationOption.stringOption()
  			.key("stagemonitor.reporting.elasticsearch.metricsIndexTemplate")
  			.dynamic(true)
  			.label("ES Metrics Index Template")
  			.description("The classpath location of the index template that is used for the stagemonitor-metrics-* indices. " +
  					"By specifying the location to your own template, you can fully customize the index template.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags(METRICS_STORE, ELASTICSEARCH)
  			.buildWithDefault("stagemonitor-elasticsearch-metrics-index-template.json");
focal_class.type: ConfigurationOption<String>
focal_class.var_name: metricsIndexTemplate
focal_class.declarator: elasticsearchAvailabilityCheckPeriodSec = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.availabilityCheckPeriodSec")
  			.aliasKeys("stagemonitor.elasticsearch.availabilityCheckPeriodSec")
  			.dynamic(false)
  			.label("Elasticsearch availability check period (sec)")
  			.description("When set to a value > 0 stagemonitor periodically checks if Elasticsearch is available. " +
  					"When not available, stagemonitor won't try send documents to Elasticsearch which would " +
  					"fail anyway. This reduces heap usage as the documents won't be queued up. " +
  					"It also avoids the logging of warnings when the queue is filled up to the limit (see '" + POOLS_QUEUE_CAPACITY_LIMIT_KEY + "')")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("elasticsearch", "advanced")
  			.buildWithDefault(5)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Integer> elasticsearchAvailabilityCheckPeriodSec = ConfigurationOption.integerOption()
  			.key("stagemonitor.reporting.elasticsearch.availabilityCheckPeriodSec")
  			.aliasKeys("stagemonitor.elasticsearch.availabilityCheckPeriodSec")
  			.dynamic(false)
  			.label("Elasticsearch availability check period (sec)")
  			.description("When set to a value > 0 stagemonitor periodically checks if Elasticsearch is available. " +
  					"When not available, stagemonitor won't try send documents to Elasticsearch which would " +
  					"fail anyway. This reduces heap usage as the documents won't be queued up. " +
  					"It also avoids the logging of warnings when the queue is filled up to the limit (see '" + POOLS_QUEUE_CAPACITY_LIMIT_KEY + "')")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.tags("elasticsearch", "advanced")
  			.buildWithDefault(5);
focal_class.type: ConfigurationOption<Integer>
focal_class.var_name: elasticsearchAvailabilityCheckPeriodSec
focal_class.declarator: remotePropertiesConfigUrls = ConfigurationOption.urlsOption()
  			.key("stagemonitor.configuration.remoteproperties.urls")
  			.dynamic(false)
  			.label("URLs of the remote properties")
  			.description("Must be http or https URLs. This can be a single URL or a list of config URLs. " +
  					"The end point should provide a list of properties in a simple line oriented format with key/value pairs. " +
  					"For more information on the format, see java.util.Properties.load(java.io.Reader)). " +
  					"For example of a configuration URL for the petclinic application with the default profile from a" +
  					"Spring Cloud Config server would look like: https://config.server/petclinic-default.properties")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<URL>emptyList())
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<List<URL>> remotePropertiesConfigUrls = ConfigurationOption.urlsOption()
  			.key("stagemonitor.configuration.remoteproperties.urls")
  			.dynamic(false)
  			.label("URLs of the remote properties")
  			.description("Must be http or https URLs. This can be a single URL or a list of config URLs. " +
  					"The end point should provide a list of properties in a simple line oriented format with key/value pairs. " +
  					"For more information on the format, see java.util.Properties.load(java.io.Reader)). " +
  					"For example of a configuration URL for the petclinic application with the default profile from a" +
  					"Spring Cloud Config server would look like: https://config.server/petclinic-default.properties")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(Collections.<URL>emptyList());
focal_class.type: ConfigurationOption<List<URL>>
focal_class.var_name: remotePropertiesConfigUrls
focal_class.declarator: deactivateStagemonitorIfRemotePropertyServerIsDown = ConfigurationOption.booleanOption()
  			.key("stagemonitor.configuration.remoteproperties.deactivateStagemonitorIfRemotePropertyServerIsDown")
  			.dynamic(false)
  			.label("Deactivate stagemonitor if the remote properties configuration server is down or can't be reached")
  			.description("Set to true if stagemonitor should be deactivated if the config url specified " +
  					"under stagemonitor.reporting.remoteproperties.urls is unavailable. Defaults to true to prevent starting stagemonitor with " +
  					"wrong configuration.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> deactivateStagemonitorIfRemotePropertyServerIsDown = ConfigurationOption.booleanOption()
  			.key("stagemonitor.configuration.remoteproperties.deactivateStagemonitorIfRemotePropertyServerIsDown")
  			.dynamic(false)
  			.label("Deactivate stagemonitor if the remote properties configuration server is down or can't be reached")
  			.description("Set to true if stagemonitor should be deactivated if the config url specified " +
  					"under stagemonitor.reporting.remoteproperties.urls is unavailable. Defaults to true to prevent starting stagemonitor with " +
  					"wrong configuration.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: deactivateStagemonitorIfRemotePropertyServerIsDown
focal_class.declarator: initializeElasticsearch = ConfigurationOption.booleanOption()
  			.key("stagemonitor.elasticsearch.init")
  			.dynamic(true)
  			.label("Initialize Elasticsearch indices and Kibana dashboards")
  			.description("Set to true if stagemonitor should initialize the required indices and Dashboards. " +
  					"If you don't want to grant the stagemonitor X-Pack Security user the permission to create " +
  					"indices and to access the .kibana index, set this to false and use the init tool " +
  					"https://github.com/stagemonitor/stagemonitor-elasticsearch-init.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true)
focal_class.modifier: private final
focal_class.original_string: private final ConfigurationOption<Boolean> initializeElasticsearch = ConfigurationOption.booleanOption()
  			.key("stagemonitor.elasticsearch.init")
  			.dynamic(true)
  			.label("Initialize Elasticsearch indices and Kibana dashboards")
  			.description("Set to true if stagemonitor should initialize the required indices and Dashboards. " +
  					"If you don't want to grant the stagemonitor X-Pack Security user the permission to create " +
  					"indices and to access the .kibana index, set this to false and use the init tool " +
  					"https://github.com/stagemonitor/stagemonitor-elasticsearch-init.")
  			.configurationCategory(CORE_PLUGIN_NAME)
  			.buildWithDefault(true);
focal_class.type: ConfigurationOption<Boolean>
focal_class.var_name: initializeElasticsearch
focal_class.declarator: reporters = new CopyOnWriteArrayList<Closeable>()
focal_class.modifier: private
focal_class.original_string: private List<Closeable> reporters = new CopyOnWriteArrayList<Closeable>();
focal_class.type: List<Closeable>
focal_class.var_name: reporters
focal_class.declarator: elasticsearchClient
focal_class.modifier: private
focal_class.original_string: private ElasticsearchClient elasticsearchClient;
focal_class.type: ElasticsearchClient
focal_class.var_name: elasticsearchClient
focal_class.declarator: grafanaClient
focal_class.modifier: private
focal_class.original_string: private GrafanaClient grafanaClient;
focal_class.type: GrafanaClient
focal_class.var_name: grafanaClient
focal_class.declarator: indexSelector = new IndexSelector(new Clock.UserTimeClock())
focal_class.modifier: private
focal_class.original_string: private IndexSelector indexSelector = new IndexSelector(new Clock.UserTimeClock());
focal_class.type: IndexSelector
focal_class.var_name: indexSelector
focal_class.declarator: metricRegistry
focal_class.modifier: private
focal_class.original_string: private Metric2Registry metricRegistry;
focal_class.type: Metric2Registry
focal_class.var_name: metricRegistry
focal_class.declarator: accessesToElasticsearchUrl = new AtomicInteger()
focal_class.modifier: private
focal_class.original_string: private AtomicInteger accessesToElasticsearchUrl = new AtomicInteger();
focal_class.type: AtomicInteger
focal_class.var_name: accessesToElasticsearchUrl
focal_class.declarator: healthCheckRegistry
focal_class.modifier: private
focal_class.original_string: private HealthCheckRegistry healthCheckRegistry;
focal_class.type: HealthCheckRegistry
focal_class.var_name: healthCheckRegistry
focal_class.file: stagemonitor-core/src/main/java/org/stagemonitor/core/CorePlugin.java
focal_class.identifier: CorePlugin
focal_class.class_method_signature: CorePlugin.CorePlugin()
focal_class.full_signature: public  CorePlugin()
focal_class.identifier: CorePlugin
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  CorePlugin()
focal_class.class_method_signature: CorePlugin.CorePlugin(ElasticsearchClient elasticsearchClient)
focal_class.full_signature: public  CorePlugin(ElasticsearchClient elasticsearchClient)
focal_class.identifier: CorePlugin
focal_class.modifiers: public
focal_class.parameters: (ElasticsearchClient elasticsearchClient)
focal_class.signature:  CorePlugin(ElasticsearchClient elasticsearchClient)
focal_class.class_method_signature: CorePlugin.initializePlugin(InitArguments initArguments)
focal_class.full_signature: @Override public void initializePlugin(InitArguments initArguments)
focal_class.identifier: initializePlugin
focal_class.modifiers: @Override public
focal_class.parameters: (InitArguments initArguments)
focal_class.return: void
focal_class.signature: void initializePlugin(InitArguments initArguments)
focal_class.class_method_signature: CorePlugin.dependsOn()
focal_class.full_signature: @Override public List<Class<? extends StagemonitorPlugin>> dependsOn()
focal_class.identifier: dependsOn
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: List<Class<? extends StagemonitorPlugin>>
focal_class.signature: List<Class<? extends StagemonitorPlugin>> dependsOn()
focal_class.class_method_signature: CorePlugin.registerReporters(Metric2Registry metric2Registry, ConfigurationRegistry configuration, MeasurementSession measurementSession)
focal_class.full_signature:  void registerReporters(Metric2Registry metric2Registry, ConfigurationRegistry configuration, MeasurementSession measurementSession)
focal_class.identifier: registerReporters
focal_class.parameters: (Metric2Registry metric2Registry, ConfigurationRegistry configuration, MeasurementSession measurementSession)
focal_class.return: void
focal_class.signature: void registerReporters(Metric2Registry metric2Registry, ConfigurationRegistry configuration, MeasurementSession measurementSession)
focal_class.class_method_signature: CorePlugin.reportToGraphite(MetricRegistry metricRegistry, long reportingInterval, MeasurementSession measurementSession)
focal_class.full_signature: private void reportToGraphite(MetricRegistry metricRegistry, long reportingInterval, MeasurementSession measurementSession)
focal_class.identifier: reportToGraphite
focal_class.modifiers: private
focal_class.parameters: (MetricRegistry metricRegistry, long reportingInterval, MeasurementSession measurementSession)
focal_class.return: void
focal_class.signature: void reportToGraphite(MetricRegistry metricRegistry, long reportingInterval, MeasurementSession measurementSession)
focal_class.class_method_signature: CorePlugin.reportToInfluxDb(Metric2Registry metricRegistry, int reportingInterval,
  								  MeasurementSession measurementSession)
focal_class.full_signature: private void reportToInfluxDb(Metric2Registry metricRegistry, int reportingInterval,
  								  MeasurementSession measurementSession)
focal_class.identifier: reportToInfluxDb
focal_class.modifiers: private
focal_class.parameters: (Metric2Registry metricRegistry, int reportingInterval,
  								  MeasurementSession measurementSession)
focal_class.return: void
focal_class.signature: void reportToInfluxDb(Metric2Registry metricRegistry, int reportingInterval,
  								  MeasurementSession measurementSession)
focal_class.class_method_signature: CorePlugin.getGraphitePrefix(MeasurementSession measurementSession)
focal_class.full_signature: private String getGraphitePrefix(MeasurementSession measurementSession)
focal_class.identifier: getGraphitePrefix
focal_class.modifiers: private
focal_class.parameters: (MeasurementSession measurementSession)
focal_class.return: String
focal_class.signature: String getGraphitePrefix(MeasurementSession measurementSession)
focal_class.class_method_signature: CorePlugin.reportToConsole(Metric2Registry metric2Registry, long reportingInterval, Metric2Filter filter)
focal_class.full_signature: private void reportToConsole(Metric2Registry metric2Registry, long reportingInterval, Metric2Filter filter)
focal_class.identifier: reportToConsole
focal_class.modifiers: private
focal_class.parameters: (Metric2Registry metric2Registry, long reportingInterval, Metric2Filter filter)
focal_class.return: void
focal_class.signature: void reportToConsole(Metric2Registry metric2Registry, long reportingInterval, Metric2Filter filter)
focal_class.class_method_signature: CorePlugin.reportToJMX(MetricRegistry metricRegistry)
focal_class.full_signature: private void reportToJMX(MetricRegistry metricRegistry)
focal_class.identifier: reportToJMX
focal_class.modifiers: private
focal_class.parameters: (MetricRegistry metricRegistry)
focal_class.return: void
focal_class.signature: void reportToJMX(MetricRegistry metricRegistry)
focal_class.class_method_signature: CorePlugin.onShutDown()
focal_class.full_signature: @Override public void onShutDown()
focal_class.identifier: onShutDown
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void onShutDown()
focal_class.class_method_signature: CorePlugin.getMeasurementSession()
focal_class.full_signature: public MeasurementSession getMeasurementSession()
focal_class.identifier: getMeasurementSession
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: MeasurementSession
focal_class.signature: MeasurementSession getMeasurementSession()
focal_class.class_method_signature: CorePlugin.getMetricRegistry()
focal_class.full_signature: public Metric2Registry getMetricRegistry()
focal_class.identifier: getMetricRegistry
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Metric2Registry
focal_class.signature: Metric2Registry getMetricRegistry()
focal_class.class_method_signature: CorePlugin.getElasticsearchClient()
focal_class.full_signature: public ElasticsearchClient getElasticsearchClient()
focal_class.identifier: getElasticsearchClient
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ElasticsearchClient
focal_class.signature: ElasticsearchClient getElasticsearchClient()
focal_class.class_method_signature: CorePlugin.initElasticsearchAvailabilityObservers(ConfigurationRegistry configurationRegistry)
focal_class.full_signature: private static List<ElasticsearchAvailabilityObserver> initElasticsearchAvailabilityObservers(ConfigurationRegistry configurationRegistry)
focal_class.identifier: initElasticsearchAvailabilityObservers
focal_class.modifiers: private static
focal_class.parameters: (ConfigurationRegistry configurationRegistry)
focal_class.return: List<ElasticsearchAvailabilityObserver>
focal_class.signature: List<ElasticsearchAvailabilityObserver> initElasticsearchAvailabilityObservers(ConfigurationRegistry configurationRegistry)
focal_class.class_method_signature: CorePlugin.getGrafanaClient()
focal_class.full_signature: public GrafanaClient getGrafanaClient()
focal_class.identifier: getGrafanaClient
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: GrafanaClient
focal_class.signature: GrafanaClient getGrafanaClient()
focal_class.class_method_signature: CorePlugin.setElasticsearchClient(ElasticsearchClient elasticsearchClient)
focal_class.full_signature: public void setElasticsearchClient(ElasticsearchClient elasticsearchClient)
focal_class.identifier: setElasticsearchClient
focal_class.modifiers: public
focal_class.parameters: (ElasticsearchClient elasticsearchClient)
focal_class.return: void
focal_class.signature: void setElasticsearchClient(ElasticsearchClient elasticsearchClient)
focal_class.class_method_signature: CorePlugin.getNameOfLocalHost()
focal_class.full_signature: public static String getNameOfLocalHost()
focal_class.identifier: getNameOfLocalHost
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getNameOfLocalHost()
focal_class.class_method_signature: CorePlugin.getHostNameFromEnv()
focal_class.full_signature: static String getHostNameFromEnv()
focal_class.identifier: getHostNameFromEnv
focal_class.modifiers: static
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getHostNameFromEnv()
focal_class.class_method_signature: CorePlugin.isStagemonitorActive()
focal_class.full_signature: public boolean isStagemonitorActive()
focal_class.identifier: isStagemonitorActive
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isStagemonitorActive()
focal_class.class_method_signature: CorePlugin.isInternalMonitoringActive()
focal_class.full_signature: public boolean isInternalMonitoringActive()
focal_class.identifier: isInternalMonitoringActive
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isInternalMonitoringActive()
focal_class.class_method_signature: CorePlugin.getConsoleReportingInterval()
focal_class.full_signature: public long getConsoleReportingInterval()
focal_class.identifier: getConsoleReportingInterval
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: long
focal_class.signature: long getConsoleReportingInterval()
focal_class.class_method_signature: CorePlugin.isReportToJMX()
focal_class.full_signature: public boolean isReportToJMX()
focal_class.identifier: isReportToJMX
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isReportToJMX()
focal_class.class_method_signature: CorePlugin.getGraphiteReportingInterval()
focal_class.full_signature: public int getGraphiteReportingInterval()
focal_class.identifier: getGraphiteReportingInterval
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getGraphiteReportingInterval()
focal_class.class_method_signature: CorePlugin.getGraphiteHostName()
focal_class.full_signature: public String getGraphiteHostName()
focal_class.identifier: getGraphiteHostName
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getGraphiteHostName()
focal_class.class_method_signature: CorePlugin.getGraphitePort()
focal_class.full_signature: public int getGraphitePort()
focal_class.identifier: getGraphitePort
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getGraphitePort()
focal_class.class_method_signature: CorePlugin.getApplicationName()
focal_class.full_signature: public String getApplicationName()
focal_class.identifier: getApplicationName
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getApplicationName()
focal_class.class_method_signature: CorePlugin.getInstanceName()
focal_class.full_signature: public String getInstanceName()
focal_class.identifier: getInstanceName
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getInstanceName()
focal_class.class_method_signature: CorePlugin.getHostName()
focal_class.full_signature: public String getHostName()
focal_class.identifier: getHostName
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getHostName()
focal_class.class_method_signature: CorePlugin.getElasticsearchUrl()
focal_class.full_signature: public URL getElasticsearchUrl()
focal_class.identifier: getElasticsearchUrl
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: URL
focal_class.signature: URL getElasticsearchUrl()
focal_class.class_method_signature: CorePlugin.getElasticsearchUrls()
focal_class.full_signature: public Collection<URL> getElasticsearchUrls()
focal_class.identifier: getElasticsearchUrls
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<URL>
focal_class.signature: Collection<URL> getElasticsearchUrls()
focal_class.class_method_signature: CorePlugin.getElasticsearchUrlsWithoutAuthenticationInformation()
focal_class.full_signature: public String getElasticsearchUrlsWithoutAuthenticationInformation()
focal_class.identifier: getElasticsearchUrlsWithoutAuthenticationInformation
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getElasticsearchUrlsWithoutAuthenticationInformation()
focal_class.class_method_signature: CorePlugin.getElasticsearchConfigurationSourceProfiles()
focal_class.full_signature: public Collection<String> getElasticsearchConfigurationSourceProfiles()
focal_class.identifier: getElasticsearchConfigurationSourceProfiles
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<String>
focal_class.signature: Collection<String> getElasticsearchConfigurationSourceProfiles()
focal_class.class_method_signature: CorePlugin.isDeactivateStagemonitorIfEsConfigSourceIsDown()
focal_class.full_signature: public boolean isDeactivateStagemonitorIfEsConfigSourceIsDown()
focal_class.identifier: isDeactivateStagemonitorIfEsConfigSourceIsDown
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isDeactivateStagemonitorIfEsConfigSourceIsDown()
focal_class.class_method_signature: CorePlugin.getExcludedMetricsPatterns()
focal_class.full_signature: public Collection<MetricName> getExcludedMetricsPatterns()
focal_class.identifier: getExcludedMetricsPatterns
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<MetricName>
focal_class.signature: Collection<MetricName> getExcludedMetricsPatterns()
focal_class.class_method_signature: CorePlugin.getDisabledPlugins()
focal_class.full_signature: public Collection<String> getDisabledPlugins()
focal_class.identifier: getDisabledPlugins
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<String>
focal_class.signature: Collection<String> getDisabledPlugins()
focal_class.class_method_signature: CorePlugin.getReloadConfigurationInterval()
focal_class.full_signature: public Integer getReloadConfigurationInterval()
focal_class.identifier: getReloadConfigurationInterval
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Integer
focal_class.signature: Integer getReloadConfigurationInterval()
focal_class.class_method_signature: CorePlugin.getExcludeContaining()
focal_class.full_signature: public Collection<String> getExcludeContaining()
focal_class.identifier: getExcludeContaining
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<String>
focal_class.signature: Collection<String> getExcludeContaining()
focal_class.class_method_signature: CorePlugin.getIncludePackages()
focal_class.full_signature: public Collection<String> getIncludePackages()
focal_class.identifier: getIncludePackages
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<String>
focal_class.signature: Collection<String> getIncludePackages()
focal_class.class_method_signature: CorePlugin.getExcludePackages()
focal_class.full_signature: public Collection<String> getExcludePackages()
focal_class.identifier: getExcludePackages
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<String>
focal_class.signature: Collection<String> getExcludePackages()
focal_class.class_method_signature: CorePlugin.isAttachAgentAtRuntime()
focal_class.full_signature: public boolean isAttachAgentAtRuntime()
focal_class.identifier: isAttachAgentAtRuntime
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isAttachAgentAtRuntime()
focal_class.class_method_signature: CorePlugin.getExcludedInstrumenters()
focal_class.full_signature: public Collection<String> getExcludedInstrumenters()
focal_class.identifier: getExcludedInstrumenters
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<String>
focal_class.signature: Collection<String> getExcludedInstrumenters()
focal_class.class_method_signature: CorePlugin.getInfluxDbUrl()
focal_class.full_signature: public URL getInfluxDbUrl()
focal_class.identifier: getInfluxDbUrl
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: URL
focal_class.signature: URL getInfluxDbUrl()
focal_class.class_method_signature: CorePlugin.getInfluxDbDb()
focal_class.full_signature: public String getInfluxDbDb()
focal_class.identifier: getInfluxDbDb
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getInfluxDbDb()
focal_class.class_method_signature: CorePlugin.isReportToElasticsearch()
focal_class.full_signature: public boolean isReportToElasticsearch()
focal_class.identifier: isReportToElasticsearch
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isReportToElasticsearch()
focal_class.class_method_signature: CorePlugin.isReportToGraphite()
focal_class.full_signature: public boolean isReportToGraphite()
focal_class.identifier: isReportToGraphite
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isReportToGraphite()
focal_class.class_method_signature: CorePlugin.getGrafanaUrl()
focal_class.full_signature: public String getGrafanaUrl()
focal_class.identifier: getGrafanaUrl
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getGrafanaUrl()
focal_class.class_method_signature: CorePlugin.getGrafanaApiKey()
focal_class.full_signature: public String getGrafanaApiKey()
focal_class.identifier: getGrafanaApiKey
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getGrafanaApiKey()
focal_class.class_method_signature: CorePlugin.getThreadPoolQueueCapacityLimit()
focal_class.full_signature: public int getThreadPoolQueueCapacityLimit()
focal_class.identifier: getThreadPoolQueueCapacityLimit
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getThreadPoolQueueCapacityLimit()
focal_class.class_method_signature: CorePlugin.getIndexSelector()
focal_class.full_signature: public IndexSelector getIndexSelector()
focal_class.identifier: getIndexSelector
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: IndexSelector
focal_class.signature: IndexSelector getIndexSelector()
focal_class.class_method_signature: CorePlugin.getElasticsearchReportingInterval()
focal_class.full_signature: public int getElasticsearchReportingInterval()
focal_class.identifier: getElasticsearchReportingInterval
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getElasticsearchReportingInterval()
focal_class.class_method_signature: CorePlugin.getMoveToColdNodesAfterDays()
focal_class.full_signature: public Integer getMoveToColdNodesAfterDays()
focal_class.identifier: getMoveToColdNodesAfterDays
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Integer
focal_class.signature: Integer getMoveToColdNodesAfterDays()
focal_class.class_method_signature: CorePlugin.isOnlyLogElasticsearchMetricReports()
focal_class.full_signature: public boolean isOnlyLogElasticsearchMetricReports()
focal_class.identifier: isOnlyLogElasticsearchMetricReports
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isOnlyLogElasticsearchMetricReports()
focal_class.class_method_signature: CorePlugin.isDebugInstrumentation()
focal_class.full_signature: public boolean isDebugInstrumentation()
focal_class.identifier: isDebugInstrumentation
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isDebugInstrumentation()
focal_class.class_method_signature: CorePlugin.getExportClassesWithName()
focal_class.full_signature: public Collection<String> getExportClassesWithName()
focal_class.identifier: getExportClassesWithName
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<String>
focal_class.signature: Collection<String> getExportClassesWithName()
focal_class.class_method_signature: CorePlugin.getNumberOfReplicas()
focal_class.full_signature: public Integer getNumberOfReplicas()
focal_class.identifier: getNumberOfReplicas
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Integer
focal_class.signature: Integer getNumberOfReplicas()
focal_class.class_method_signature: CorePlugin.getNumberOfShards()
focal_class.full_signature: public Integer getNumberOfShards()
focal_class.identifier: getNumberOfShards
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Integer
focal_class.signature: Integer getNumberOfShards()
focal_class.class_method_signature: CorePlugin.closeOnShutdown(Closeable closeable)
focal_class.full_signature: public void closeOnShutdown(Closeable closeable)
focal_class.identifier: closeOnShutdown
focal_class.modifiers: public
focal_class.parameters: (Closeable closeable)
focal_class.return: void
focal_class.signature: void closeOnShutdown(Closeable closeable)
focal_class.class_method_signature: CorePlugin.getReporters()
focal_class.full_signature:  List<Closeable> getReporters()
focal_class.identifier: getReporters
focal_class.parameters: ()
focal_class.return: List<Closeable>
focal_class.signature: List<Closeable> getReporters()
focal_class.class_method_signature: CorePlugin.getRemotePropertiesConfigUrls()
focal_class.full_signature: public List<URL> getRemotePropertiesConfigUrls()
focal_class.identifier: getRemotePropertiesConfigUrls
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<URL>
focal_class.signature: List<URL> getRemotePropertiesConfigUrls()
focal_class.class_method_signature: CorePlugin.isDeactivateStagemonitorIfRemotePropertyServerIsDown()
focal_class.full_signature: public boolean isDeactivateStagemonitorIfRemotePropertyServerIsDown()
focal_class.identifier: isDeactivateStagemonitorIfRemotePropertyServerIsDown
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isDeactivateStagemonitorIfRemotePropertyServerIsDown()
focal_class.class_method_signature: CorePlugin.getDeleteElasticsearchMetricsAfterDays()
focal_class.full_signature: public int getDeleteElasticsearchMetricsAfterDays()
focal_class.identifier: getDeleteElasticsearchMetricsAfterDays
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getDeleteElasticsearchMetricsAfterDays()
focal_class.class_method_signature: CorePlugin.getMetricsIndexTemplate()
focal_class.full_signature: public String getMetricsIndexTemplate()
focal_class.identifier: getMetricsIndexTemplate
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getMetricsIndexTemplate()
focal_class.class_method_signature: CorePlugin.isMetricsIndexTemplateDefaultValue()
focal_class.full_signature: public boolean isMetricsIndexTemplateDefaultValue()
focal_class.identifier: isMetricsIndexTemplateDefaultValue
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isMetricsIndexTemplateDefaultValue()
focal_class.class_method_signature: CorePlugin.isInitializeElasticsearch()
focal_class.full_signature: public boolean isInitializeElasticsearch()
focal_class.identifier: isInitializeElasticsearch
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isInitializeElasticsearch()
focal_class.class_method_signature: CorePlugin.getHealthCheckRegistry()
focal_class.full_signature: public HealthCheckRegistry getHealthCheckRegistry()
focal_class.identifier: getHealthCheckRegistry
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: HealthCheckRegistry
focal_class.signature: HealthCheckRegistry getHealthCheckRegistry()
focal_class.superclass: extends StagemonitorPlugin
focal_method.body: public URL getElasticsearchUrl() {
  		final List<URL> urls = elasticsearchUrls.getValue();
  		if (urls.isEmpty()) {
  			return null;
  		}
  		final int index = accessesToElasticsearchUrl.getAndIncrement() % urls.size();
  		URL elasticsearchURL = urls.get(index);
  
  		final String defaultUsernameValue = elasticsearchDefaultUsername.getValue();
  		final String defaultPasswordValue = elasticsearchDefaultPassword.getValue();
  
  		if (elasticsearchURL.getUserInfo() == null
  				&& ! defaultUsernameValue.isEmpty()
  				&& ! defaultPasswordValue.isEmpty()) {
  
  			try {
  				String username = URLEncoder.encode(defaultUsernameValue, "UTF-8");
  				String password = URLEncoder.encode(defaultPasswordValue, "UTF-8");
  				StringBuilder stringBuilder = new StringBuilder();
  				stringBuilder
  						.append(elasticsearchURL.getProtocol())
  						.append("://")
  						.append(username)
  						.append(":")
  						.append(password)
  						.append("@")
  						.append(elasticsearchURL.getHost())
  						.append(":")
  						.append(elasticsearchURL.getPort())
  						.append(elasticsearchURL.getPath());
  				return new URL(stringBuilder.toString());
  			} catch (Exception e) {
  				logger.error(e.getMessage(), e);
  			}
  		}
  
  		return elasticsearchURL;
  	}
focal_method.class_method_signature: CorePlugin.getElasticsearchUrl()
focal_method.full_signature: public URL getElasticsearchUrl()
focal_method.identifier: getElasticsearchUrl
focal_method.invocations: getValue isEmpty getAndIncrement size get getValue getValue getUserInfo isEmpty isEmpty encode encode append append append append append append append append append append getProtocol getHost getPort getPath toString error getMessage
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: URL
focal_method.signature: URL getElasticsearchUrl()