diff --git a/docs/en/settings/monitoring-settings.asciidoc b/docs/en/settings/monitoring-settings.asciidoc
index cd567ac5d5b..2cf8b7dcc81 100644
--- a/docs/en/settings/monitoring-settings.asciidoc
+++ b/docs/en/settings/monitoring-settings.asciidoc
@@ -5,8 +5,11 @@
Monitoring Settings
++++
-Monitoring is enabled by default when you install {xpack}. You can configure
-these monitoring settings in the `elasticsearch.yml` file.
+By default when you install {xpack}, monitoring is enabled but data collection
+is disabled. To enable data collection, use the
+`xpack.monitoring.collection.enabled` setting.
+
+You can configure these monitoring settings in the `elasticsearch.yml` file.
To adjust how monitoring data is displayed in the monitoring UI, configure
{kibana-ref}/monitoring-settings-kb.html[`xpack.monitoring` settings] in
@@ -31,6 +34,13 @@ Set to `false` to disable {es} {monitoring} for Elasticsearch on the node.
The `xpack.monitoring.collection` settings control how data is collected from
your Elasticsearch nodes.
+`xpack.monitoring.collection.enabled`::
+
+Enable the collection of monitoring data. Defaults to `false`. added[6.3.0]
++
+You can update this setting through the
+<>.
+
`xpack.monitoring.collection.cluster.stats.timeout`::
Sets the timeout for collecting the cluster statistics. Defaults to `10s`.
@@ -43,7 +53,8 @@ example `test*`. You can explicitly include or exclude indices by prepending
`+` to include the index, or `-` to exclude the index. For example, to include all indices that
start with `test` except `test3`, you could specify `+test*,-test3`.
+
-You can update this setting through the Cluster Update Settings API.
+You can update this setting through the
+<>.
`xpack.monitoring.collection.index.stats.timeout`::
@@ -67,8 +78,8 @@ Sets the timeout for collecting the recovery information. Defaults to `10s`.
Controls how often data samples are collected. Defaults to `10s`. If you
modify the collection interval, set the `xpack.monitoring.min_interval_seconds`
option in `kibana.yml` to the same value. Set to `-1` to temporarily disable
-data collection. You can update this setting through the Cluster Update
-Settings API.
+data collection. You can update this setting through the
+<>.
`xpack.monitoring.history.duration`::
diff --git a/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java b/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java
index aee34c51468..f41d29be11d 100644
--- a/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java
+++ b/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/Monitoring.java
@@ -170,6 +170,7 @@ public class Monitoring extends Plugin implements ActionPlugin {
List> settings = new ArrayList<>();
settings.add(MonitoringField.HISTORY_DURATION);
settings.add(CLEAN_WATCHER_HISTORY);
+ settings.add(MonitoringService.ENABLED);
settings.add(MonitoringService.INTERVAL);
settings.add(Collector.INDICES);
settings.add(ClusterStatsCollector.CLUSTER_STATS_TIMEOUT);
diff --git a/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringService.java b/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringService.java
index 627ae3dfaef..b2af52cbd8a 100644
--- a/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringService.java
+++ b/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/MonitoringService.java
@@ -41,7 +41,14 @@ public class MonitoringService extends AbstractLifecycleComponent {
/**
* Minimum value for sampling interval (1 second)
*/
- static final TimeValue MIN_INTERVAL = TimeValue.timeValueSeconds(1L);
+ public static final TimeValue MIN_INTERVAL = TimeValue.timeValueSeconds(1L);
+
+ /**
+ * Dynamically controls enabling or disabling the collection of Monitoring data.
+ */
+ public static final Setting ENABLED =
+ Setting.boolSetting("xpack.monitoring.collection.enabled", false,
+ Setting.Property.Dynamic, Setting.Property.NodeScope);
/**
* Sampling interval between two collections (default to 10s)
@@ -67,6 +74,7 @@ public class MonitoringService extends AbstractLifecycleComponent {
private final Set collectors;
private final Exporters exporters;
+ private volatile boolean enabled;
private volatile TimeValue interval;
private volatile ThreadPool.Cancellable scheduler;
@@ -77,11 +85,19 @@ public class MonitoringService extends AbstractLifecycleComponent {
this.threadPool = Objects.requireNonNull(threadPool);
this.collectors = Objects.requireNonNull(collectors);
this.exporters = Objects.requireNonNull(exporters);
+ this.enabled = ENABLED.get(settings);
this.interval = INTERVAL.get(settings);
+
+ clusterService.getClusterSettings().addSettingsUpdateConsumer(ENABLED, this::setMonitoringActive);
clusterService.getClusterSettings().addSettingsUpdateConsumer(INTERVAL, this::setInterval);
}
- void setInterval(TimeValue interval) {
+ void setMonitoringActive(final boolean enabled) {
+ this.enabled = enabled;
+ scheduleExecution();
+ }
+
+ void setInterval(final TimeValue interval) {
this.interval = interval;
scheduleExecution();
}
@@ -92,6 +108,7 @@ public class MonitoringService extends AbstractLifecycleComponent {
public boolean isMonitoringActive() {
return isStarted()
+ && enabled
&& interval != null
&& interval.millis() >= MIN_INTERVAL.millis();
}
diff --git a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MonitoringServiceTests.java b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MonitoringServiceTests.java
index 0f23781c69c..2b3b6b5cb81 100644
--- a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MonitoringServiceTests.java
+++ b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MonitoringServiceTests.java
@@ -73,6 +73,15 @@ public class MonitoringServiceTests extends ESTestCase {
monitoringService.start();
assertBusy(() -> assertTrue(monitoringService.isStarted()));
+ assertFalse(monitoringService.isMonitoringActive());
+
+ monitoringService.setMonitoringActive(true);
+ assertTrue(monitoringService.isMonitoringActive());
+
+ monitoringService.setInterval(TimeValue.MINUS_ONE);
+ assertFalse(monitoringService.isMonitoringActive());
+
+ monitoringService.setInterval(TimeValue.timeValueSeconds(10));
assertTrue(monitoringService.isMonitoringActive());
monitoringService.stop();
@@ -89,7 +98,11 @@ public class MonitoringServiceTests extends ESTestCase {
}
public void testInterval() throws Exception {
- Settings settings = Settings.builder().put(MonitoringService.INTERVAL.getKey(), TimeValue.MINUS_ONE).build();
+ final Settings settings =
+ Settings.builder()
+ .put(MonitoringService.ENABLED.getKey(), true)
+ .put(MonitoringService.INTERVAL.getKey(), TimeValue.MINUS_ONE)
+ .build();
CountingExporter exporter = new CountingExporter();
monitoringService = new MonitoringService(settings, clusterService, threadPool, emptySet(), exporter);
@@ -113,8 +126,12 @@ public class MonitoringServiceTests extends ESTestCase {
public void testSkipExecution() throws Exception {
final CountDownLatch latch = new CountDownLatch(1);
final BlockingExporter exporter = new BlockingExporter(latch);
+ final Settings settings =
+ Settings.builder()
+ .put(MonitoringService.ENABLED.getKey(), true)
+ .put(MonitoringService.INTERVAL.getKey(), MonitoringService.MIN_INTERVAL)
+ .build();
- Settings settings = Settings.builder().put(MonitoringService.INTERVAL.getKey(), MonitoringService.MIN_INTERVAL).build();
monitoringService = new MonitoringService(settings, clusterService, threadPool, emptySet(), exporter);
monitoringService.start();
diff --git a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MultiNodesStatsTests.java b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MultiNodesStatsTests.java
index 3aa0bc00aaf..f0ee3788f2e 100644
--- a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MultiNodesStatsTests.java
+++ b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/MultiNodesStatsTests.java
@@ -27,22 +27,18 @@ import static org.hamcrest.Matchers.instanceOf;
@ClusterScope(scope = Scope.TEST, numDataNodes = 0, numClientNodes = 0, transportClientRatio = 0.0)
public class MultiNodesStatsTests extends MonitoringIntegTestCase {
- public MultiNodesStatsTests() throws Exception {
- super();
- }
@Override
protected Settings nodeSettings(int nodeOrdinal) {
return Settings.builder()
.put(super.nodeSettings(nodeOrdinal))
- .put(MonitoringService.INTERVAL.getKey(), "-1")
.put("xpack.monitoring.exporters.default_local.type", "local")
.build();
}
@After
public void cleanup() throws Exception {
- disableMonitoringInterval();
+ disableMonitoringCollection();
wipeMonitoringIndices();
}
@@ -60,7 +56,9 @@ public class MultiNodesStatsTests extends MonitoringIntegTestCase {
n = randomIntBetween(1, 2);
internalCluster().startNodes(n,
- Settings.builder().put(Node.NODE_DATA_SETTING.getKey(), false).put(Node.NODE_MASTER_SETTING.getKey(), false)
+ Settings.builder()
+ .put(Node.NODE_DATA_SETTING.getKey(), false)
+ .put(Node.NODE_MASTER_SETTING.getKey(), false)
.put(Node.NODE_INGEST_SETTING.getKey(), false).build());
nodes += n;
@@ -77,7 +75,7 @@ public class MultiNodesStatsTests extends MonitoringIntegTestCase {
assertNoTimeout(client().admin().cluster().prepareHealth().setWaitForNodes(Integer.toString(nbNodes)).get());
});
- updateMonitoringInterval(3L, TimeUnit.SECONDS);
+ enableMonitoringCollection();
waitForMonitoringIndices();
assertBusy(() -> {
diff --git a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/local/LocalExporterIntegTestCase.java b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/local/LocalExporterIntegTestCase.java
index dc2d6330aa2..4d94bbecee8 100644
--- a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/local/LocalExporterIntegTestCase.java
+++ b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/local/LocalExporterIntegTestCase.java
@@ -27,10 +27,6 @@ public abstract class LocalExporterIntegTestCase extends MonitoringIntegTestCase
private static ThreadPool THREADPOOL;
- public LocalExporterIntegTestCase() throws Exception {
- super();
- }
-
@BeforeClass
public static void setupThreadPool() {
THREADPOOL = new TestThreadPool(LocalExporterIntegTestCase.class.getName());
@@ -45,7 +41,8 @@ public abstract class LocalExporterIntegTestCase extends MonitoringIntegTestCase
protected Settings localExporterSettings() {
return Settings.builder()
- .put(MonitoringService.INTERVAL.getKey(), "-1")
+ .put(MonitoringService.ENABLED.getKey(), false)
+ .put(MonitoringService.INTERVAL.getKey(), "3s")
.put("xpack.monitoring.exporters." + exporterName + ".type", LocalExporter.TYPE)
.put("xpack.monitoring.exporters." + exporterName + ".enabled", false)
.put("xpack.monitoring.exporters." + exporterName + ".cluster_alerts.management.enabled", false)
diff --git a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/local/LocalExporterIntegTests.java b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/local/LocalExporterIntegTests.java
index 73f47026f81..436c5d2f7fb 100644
--- a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/local/LocalExporterIntegTests.java
+++ b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/local/LocalExporterIntegTests.java
@@ -56,26 +56,22 @@ import static org.elasticsearch.xpack.core.monitoring.exporter.MonitoringTemplat
import static org.elasticsearch.xpack.core.monitoring.exporter.MonitoringTemplateUtils.TEMPLATE_VERSION;
import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.lessThanOrEqualTo;
@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE,
numDataNodes = 1, numClientNodes = 0, transportClientRatio = 0.0, supportsDedicatedMasters = false)
public class LocalExporterIntegTests extends LocalExporterIntegTestCase {
private final String indexTimeFormat = randomFrom("YY", "YYYY", "YYYY.MM", "YYYY-MM", "MM.YYYY", "MM", null);
- public LocalExporterIntegTests() throws Exception {
- super();
- }
-
private void stopMonitoring() {
// Now disabling the monitoring service, so that no more collection are started
assertAcked(client().admin().cluster().prepareUpdateSettings().setTransientSettings(
- Settings.builder().putNull(MonitoringService.INTERVAL.getKey())
+ Settings.builder().putNull(MonitoringService.ENABLED.getKey())
.putNull("xpack.monitoring.exporters._local.enabled")
.putNull("xpack.monitoring.exporters._local.cluster_alerts.management.enabled")
.putNull("xpack.monitoring.exporters._local.index.name.time_format")));
}
- @AwaitsFix(bugUrl = "https://github.com/elastic/x-pack-elasticsearch/issues/3954")
public void testExport() throws Exception {
try {
if (randomBoolean()) {
@@ -90,7 +86,7 @@ public class LocalExporterIntegTests extends LocalExporterIntegTestCase {
// start the monitoring service so that _xpack/monitoring/_bulk is not ignored
final Settings.Builder exporterSettings = Settings.builder()
- .put(MonitoringService.INTERVAL.getKey(), 3L, TimeUnit.SECONDS)
+ .put(MonitoringService.ENABLED.getKey(), true)
.put("xpack.monitoring.exporters._local.enabled", true)
.put("xpack.monitoring.exporters._local.cluster_alerts.management.enabled", false);
@@ -119,7 +115,7 @@ public class LocalExporterIntegTests extends LocalExporterIntegTestCase {
ensureYellowAndNoInitializingShards(".monitoring-*");
SearchResponse response = client().prepareSearch(".monitoring-*").get();
- assertEquals(nbDocs, response.getHits().getTotalHits());
+ assertThat((long)nbDocs, lessThanOrEqualTo(response.getHits().getTotalHits()));
});
checkMonitoringTemplates();
diff --git a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/integration/MonitoringIT.java b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/integration/MonitoringIT.java
index 845b128cf38..a4c2910f4f1 100644
--- a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/integration/MonitoringIT.java
+++ b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/integration/MonitoringIT.java
@@ -41,6 +41,7 @@ import org.elasticsearch.xpack.core.monitoring.exporter.MonitoringTemplateUtils;
import org.elasticsearch.xpack.core.monitoring.MonitoredSystem;
import org.elasticsearch.xpack.core.monitoring.MonitoringFeatureSetUsage;
import org.elasticsearch.xpack.monitoring.LocalStateMonitoring;
+import org.elasticsearch.xpack.monitoring.MonitoringService;
import org.elasticsearch.xpack.monitoring.collector.cluster.ClusterStatsMonitoringDoc;
import org.elasticsearch.xpack.monitoring.collector.indices.IndexRecoveryMonitoringDoc;
import org.elasticsearch.xpack.monitoring.collector.indices.IndexStatsMonitoringDoc;
@@ -79,14 +80,12 @@ import static org.hamcrest.Matchers.nullValue;
public class MonitoringIT extends ESSingleNodeTestCase {
- private final TimeValue collectionInterval = TimeValue.timeValueSeconds(3);
-
@Override
protected Settings nodeSettings() {
return Settings.builder()
.put(super.nodeSettings())
.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false)
- .put("xpack.monitoring.collection.interval", "-1")
+ .put("xpack.monitoring.collection.interval", MonitoringService.MIN_INTERVAL)
.put("xpack.monitoring.exporters._local.type", "local")
.put("xpack.monitoring.exporters._local.enabled", false)
.put("xpack.monitoring.exporters._local.cluster_alerts.management.enabled", false)
@@ -221,7 +220,7 @@ public class MonitoringIT extends ESSingleNodeTestCase {
final Map searchHit = toMap(hit);
final String type = (String) extractValue("_source.type", searchHit);
- assertMonitoringDoc(searchHit, MonitoredSystem.ES, type, collectionInterval);
+ assertMonitoringDoc(searchHit, MonitoredSystem.ES, type, MonitoringService.MIN_INTERVAL);
if (ClusterStatsMonitoringDoc.TYPE.equals(type)) {
assertClusterStatsMonitoringDoc(searchHit, createAPMIndex);
@@ -499,7 +498,7 @@ public class MonitoringIT extends ESSingleNodeTestCase {
*/
private void whenExportersAreReady(final CheckedRunnable runnable) throws Exception {
try {
- enableMonitoring(collectionInterval);
+ enableMonitoring();
runnable.run();
} finally {
disableMonitoring();
@@ -510,31 +509,22 @@ public class MonitoringIT extends ESSingleNodeTestCase {
* Enable the monitoring service and the Local exporter, waiting for some monitoring documents
* to be indexed before it returns.
*/
- public void enableMonitoring(final TimeValue interval) throws Exception {
+ public void enableMonitoring() throws Exception {
// delete anything that may happen to already exist
assertAcked(client().admin().indices().prepareDelete(".monitoring-*").get());
- final XPackUsageResponse usageResponse = new XPackUsageRequestBuilder(client()).execute().get();
- final Optional monitoringUsage =
- usageResponse.getUsages()
- .stream()
- .filter(usage -> usage instanceof MonitoringFeatureSetUsage)
- .map(usage -> (MonitoringFeatureSetUsage)usage)
- .findFirst();
- assertThat("Monitoring feature set does not exist", monitoringUsage.isPresent(), is(true));
-
- final Map exporters = monitoringUsage.get().getExporters();
-
- assertThat("List of enabled exporters must be empty before enabling monitoring", exporters.isEmpty(), is(true));
+ assertThat("Must be no enabled exporters before enabling monitoring", getMonitoringUsageExporters().isEmpty(), is(true));
final Settings settings = Settings.builder()
- .put("xpack.monitoring.collection.interval", interval.getStringRep())
+ .put("xpack.monitoring.collection.enabled", true)
.put("xpack.monitoring.exporters._local.enabled", true)
.build();
assertAcked(client().admin().cluster().prepareUpdateSettings().setTransientSettings(settings));
assertBusy(() -> {
+ assertThat("[_local] exporter not enabled yet", getMonitoringUsageExporters().isEmpty(), is(false));
+
assertThat("No monitoring documents yet",
client().prepareSearch(".monitoring-es-" + TEMPLATE_VERSION + "-*")
.setSize(0)
@@ -549,26 +539,15 @@ public class MonitoringIT extends ESSingleNodeTestCase {
@SuppressWarnings("unchecked")
public void disableMonitoring() throws Exception {
final Settings settings = Settings.builder()
- .put("xpack.monitoring.collection.interval", (String) null)
- .put("xpack.monitoring.exporters._local.enabled", (String) null)
+ .putNull("xpack.monitoring.collection.enabled")
+ .putNull("xpack.monitoring.exporters._local.enabled")
.build();
assertAcked(client().admin().cluster().prepareUpdateSettings().setTransientSettings(settings));
assertBusy(() -> {
try {
- final XPackUsageResponse usageResponse = new XPackUsageRequestBuilder(client()).execute().get();
- final Optional monitoringUsage =
- usageResponse.getUsages()
- .stream()
- .filter(usage -> usage instanceof MonitoringFeatureSetUsage)
- .map(usage -> (MonitoringFeatureSetUsage)usage)
- .findFirst();
- assertThat("Monitoring feature set does not exist", monitoringUsage.isPresent(), is(true));
-
- final Map exporters = monitoringUsage.get().getExporters();
-
- assertThat("Exporters are not yet stopped", exporters.isEmpty(), is(true));
+ assertThat("Exporters are not yet stopped", getMonitoringUsageExporters().isEmpty(), is(true));
// now wait until Monitoring has actually stopped
final NodesStatsResponse response = client().admin().cluster().prepareNodesStats().clear().setThreadPool(true).get();
@@ -592,6 +571,20 @@ public class MonitoringIT extends ESSingleNodeTestCase {
});
}
+ private Map getMonitoringUsageExporters() throws Exception {
+ final XPackUsageResponse usageResponse = new XPackUsageRequestBuilder(client()).execute().get();
+ final Optional monitoringUsage =
+ usageResponse.getUsages()
+ .stream()
+ .filter(usage -> usage instanceof MonitoringFeatureSetUsage)
+ .map(usage -> (MonitoringFeatureSetUsage)usage)
+ .findFirst();
+
+ assertThat("Monitoring feature set does not exist", monitoringUsage.isPresent(), is(true));
+
+ return monitoringUsage.get().getExporters();
+ }
+
/**
* Returns the {@link SearchHit} content as a {@link Map} object.
*/
diff --git a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/test/MonitoringIntegTestCase.java b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/test/MonitoringIntegTestCase.java
index 9bf9e530af5..187b4b302ed 100644
--- a/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/test/MonitoringIntegTestCase.java
+++ b/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/test/MonitoringIntegTestCase.java
@@ -12,7 +12,6 @@ import org.elasticsearch.common.Strings;
import org.elasticsearch.common.collect.Tuple;
import org.elasticsearch.common.regex.Regex;
import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.util.concurrent.CountDown;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.IndexNotFoundException;
@@ -49,22 +48,11 @@ public abstract class MonitoringIntegTestCase extends ESIntegTestCase {
protected static final String MONITORING_INDICES_PREFIX = ".monitoring-";
protected static final String ALL_MONITORING_INDICES = MONITORING_INDICES_PREFIX + "*";
- public MonitoringIntegTestCase() throws Exception {
-// super();
-// // The XPackPlugin is sometimes not loaded by the time the plugin components are loaded
-// // so we do this to ensure that we wont get a NPE
-// Settings settings = Settings.builder()
-// .put("path.home", createTempDir())
-// .build();
-//
-// // These tests do not load this plugin yet before spinning up some nodes
-// new XPackPlugin(settings, null);
- }
-
@Override
protected Settings nodeSettings(int nodeOrdinal) {
Settings.Builder builder = Settings.builder()
.put(super.nodeSettings(nodeOrdinal))
+ .put(MonitoringService.INTERVAL.getKey(), MonitoringService.MIN_INTERVAL)
// .put(XPackSettings.SECURITY_ENABLED.getKey(), false)
// .put(XPackSettings.WATCHER_ENABLED.getKey(), false)
// Disable native ML autodetect_process as the c++ controller won't be available
@@ -229,12 +217,14 @@ public abstract class MonitoringIntegTestCase extends ESIntegTestCase {
assertThat(client().admin().indices().prepareExists(indices).get().isExists(), is(true));
}
- protected void disableMonitoringInterval() {
- updateMonitoringInterval(TimeValue.MINUS_ONE.millis(), TimeUnit.MILLISECONDS);
+ protected void enableMonitoringCollection() {
+ assertAcked(client().admin().cluster().prepareUpdateSettings().setTransientSettings(
+ Settings.builder().put(MonitoringService.ENABLED.getKey(), true)));
}
- protected void updateMonitoringInterval(long value, TimeUnit timeUnit) {
+ protected void disableMonitoringCollection() {
assertAcked(client().admin().cluster().prepareUpdateSettings().setTransientSettings(
- Settings.builder().put(MonitoringService.INTERVAL.getKey(), value, timeUnit)));
+ Settings.builder().putNull(MonitoringService.ENABLED.getKey())));
}
+
}
diff --git a/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java b/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java
index 877c05659a9..bcc5e789008 100644
--- a/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java
+++ b/plugin/src/test/java/org/elasticsearch/xpack/test/rest/XPackRestIT.java
@@ -129,7 +129,8 @@ public class XPackRestIT extends ESClientYamlSuiteTestCase {
XContentMapValues.extractRawValues("monitoring.enabled_exporters", exporters), hasSize(0));
final Map settings = new HashMap<>();
- settings.put("xpack.monitoring.collection.interval", "3s");
+ settings.put("xpack.monitoring.collection.enabled", true);
+ settings.put("xpack.monitoring.collection.interval", "1s");
settings.put("xpack.monitoring.exporters._local.enabled", true);
awaitCallApi("cluster.put_settings", emptyMap(),
@@ -151,6 +152,7 @@ public class XPackRestIT extends ESClientYamlSuiteTestCase {
private void disableMonitoring() throws Exception {
if (isMonitoringTest()) {
final Map settings = new HashMap<>();
+ settings.put("xpack.monitoring.collection.enabled", null);
settings.put("xpack.monitoring.collection.interval", null);
settings.put("xpack.monitoring.exporters._local.enabled", null);