Make xpack.monitoring.enabled setting a no-op (#55617)

* Make xpack.monitoring.enabled setting a no-op

This commit turns xpack.monitoring.enabled into a no-op. Mostly, this involved
removing the setting from the setup for integration tests. Monitoring may
introduce some complexity for test setup and teardown, so we should keep an eye
out for turbulence and failures

* Docs for making deprecated setting a no-op
This commit is contained in:
William Brafford 2020-04-30 16:52:32 -04:00 committed by GitHub
parent 1c80e85ad8
commit 560940bc52
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 28 additions and 109 deletions

View file

@ -73,19 +73,21 @@ In Elasticsearch 7.8.0, the following settings no longer have any effect, and
have been deprecated: have been deprecated:
* `xpack.ilm.enabled` * `xpack.ilm.enabled`
* `xpack.monitoring.enabled`
In other words, even if `xpack.ilm.enabled` is set to `false`, the ILM APIs Previously, these settings could be set to `false` in order to disable the
will be available. feature's APIs in a cluster. As of 7.8.0, these basic license features are
always enabled for the {default-dist}.
If you have disabled ILM so that you can use another tool to manage Watcher If you have disabled ILM so that you can use another tool to manage Watcher
indices, the newly introduced `xpack.watcher.use_ilm_index_management` setting indices, the newly introduced `xpack.watcher.use_ilm_index_management` setting
may be set to false. may be set to false.
Additionally, the following settings have been deprecated: Additionally, the following settings have been deprecated without removing
their effects:
* `xpack.enrich.enabled` * `xpack.enrich.enabled`
* `xpack.flattened.enabled` * `xpack.flattened.enabled`
* `xpack.monitoring.enabled`
* `xpack.rollup.enabled` * `xpack.rollup.enabled`
* `xpack.slm.enabled` * `xpack.slm.enabled`
* `xpack.sql.enabled` * `xpack.sql.enabled`
@ -93,7 +95,7 @@ Additionally, the following settings have been deprecated:
* `xpack.vectors.enabled` * `xpack.vectors.enabled`
In future releases, it will not be possible to disable the APIs for Enrichment, In future releases, it will not be possible to disable the APIs for Enrichment,
Flattened mappings, Monitoring, Rollup, SLM, SQL, Transforms, and Vectors. Flattened mappings, Rollup, SLM, SQL, Transforms, and Vectors.
[float] [float]
==== The `prefer_v2_templates` parameter now defaults to `true` ==== The `prefer_v2_templates` parameter now defaults to `true`

View file

@ -30,10 +30,6 @@ To learn about monitoring in general, see <<monitor-elasticsearch-cluster>>.
. Configure your cluster to collect monitoring data: . Configure your cluster to collect monitoring data:
.. Verify that the deprecated `xpack.monitoring.enabled` setting is not set to
`false` on any node in the cluster. For more information, see
<<monitoring-settings>>.
.. Verify that the `xpack.monitoring.elasticsearch.collection.enabled` setting .. Verify that the `xpack.monitoring.elasticsearch.collection.enabled` setting
is `true`, which is its default value, on each node in the cluster. is `true`, which is its default value, on each node in the cluster.
+ +

View file

@ -119,8 +119,6 @@ Add the following setting in the {kib} configuration file (`kibana.yml`):
xpack.monitoring.kibana.collection.enabled: false xpack.monitoring.kibana.collection.enabled: false
---------------------------------- ----------------------------------
Leave the `xpack.monitoring.enabled` set to its default value (`true`).
For more information, see For more information, see
{kibana-ref}/monitoring-settings-kb.html[Monitoring settings in {kib}]. {kibana-ref}/monitoring-settings-kb.html[Monitoring settings in {kib}].
-- --

View file

@ -28,12 +28,7 @@ For more information, see <<monitor-elasticsearch-cluster>>.
`xpack.monitoring.enabled`:: `xpack.monitoring.enabled`::
deprecated:[7.8.0,Basic License features should always be enabled] + deprecated:[7.8.0,Basic License features should always be enabled] +
Set to `true` (default) to enable {es} {monitoring} for {es} on the node. This deprecated setting has no effect.
+
--
NOTE: To enable data collection, you must also set `xpack.monitoring.collection.enabled`
to `true`. Its default value is `false`.
--
[float] [float]
[[monitoring-collection-settings]] [[monitoring-collection-settings]]

View file

@ -45,7 +45,6 @@ public abstract class CcrSingleNodeTestCase extends ESSingleNodeTestCase {
protected Settings nodeSettings() { protected Settings nodeSettings() {
Settings.Builder builder = Settings.builder(); Settings.Builder builder = Settings.builder();
builder.put(XPackSettings.SECURITY_ENABLED.getKey(), false); builder.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
builder.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
builder.put(XPackSettings.WATCHER_ENABLED.getKey(), false); builder.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
builder.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false); builder.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);
builder.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial"); builder.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial");

View file

@ -55,7 +55,12 @@ public class XPackSettings {
/** Setting for enabling or disabling security. Defaults to true. */ /** Setting for enabling or disabling security. Defaults to true. */
public static final Setting<Boolean> SECURITY_ENABLED = Setting.boolSetting("xpack.security.enabled", true, Setting.Property.NodeScope); public static final Setting<Boolean> SECURITY_ENABLED = Setting.boolSetting("xpack.security.enabled", true, Setting.Property.NodeScope);
/** Setting for enabling or disabling monitoring. */ /**
* Setting for enabling or disabling monitoring.
* <p>
* This setting is now a no-op: setting it to false is permitted, but does nothing.
*/
@Deprecated(since = "7.8.0")
public static final Setting<Boolean> MONITORING_ENABLED = Setting.boolSetting("xpack.monitoring.enabled", true, public static final Setting<Boolean> MONITORING_ENABLED = Setting.boolSetting("xpack.monitoring.enabled", true,
Property.NodeScope, Property.Deprecated); Property.NodeScope, Property.Deprecated);

View file

@ -30,9 +30,8 @@ public class MonitoringFeatureSetUsage extends XPackFeatureSet.Usage {
collectionEnabled = in.readOptionalBoolean(); collectionEnabled = in.readOptionalBoolean();
} }
public MonitoringFeatureSetUsage(boolean available, boolean enabled, public MonitoringFeatureSetUsage(boolean available, boolean collectionEnabled, Map<String, Object> exporters) {
boolean collectionEnabled, Map<String, Object> exporters) { super(XPackField.MONITORING, available, true);
super(XPackField.MONITORING, available, enabled);
this.exporters = exporters; this.exporters = exporters;
this.collectionEnabled = collectionEnabled; this.collectionEnabled = collectionEnabled;
} }

View file

@ -37,7 +37,6 @@ public class LicensesManagerServiceTests extends ESSingleNodeTestCase {
return Settings.builder() return Settings.builder()
.put(super.nodeSettings()) .put(super.nodeSettings())
.put(XPackSettings.SECURITY_ENABLED.getKey(), false) .put(XPackSettings.SECURITY_ENABLED.getKey(), false)
.put(XPackSettings.MONITORING_ENABLED.getKey(), false)
.put(XPackSettings.WATCHER_ENABLED.getKey(), false) .put(XPackSettings.WATCHER_ENABLED.getKey(), false)
.put(XPackSettings.GRAPH_ENABLED.getKey(), false) .put(XPackSettings.GRAPH_ENABLED.getKey(), false)
.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false) .put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false)

View file

@ -25,7 +25,6 @@ public abstract class AbstractEqlIntegTestCase extends ESIntegTestCase {
protected Settings nodeSettings(int nodeOrdinal) { protected Settings nodeSettings(int nodeOrdinal) {
Settings.Builder settings = Settings.builder().put(super.nodeSettings(nodeOrdinal)); Settings.Builder settings = Settings.builder().put(super.nodeSettings(nodeOrdinal));
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false); settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false); settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false); settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false); settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);

View file

@ -97,7 +97,6 @@ public class IndexLifecycleInitialisationTests extends ESIntegTestCase {
settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false); settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false); settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false); settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false); settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
settings.put(LifecycleSettings.LIFECYCLE_POLL_INTERVAL, "1s"); settings.put(LifecycleSettings.LIFECYCLE_POLL_INTERVAL, "1s");

View file

@ -47,7 +47,6 @@ public class SnapshotLifecycleInitialisationTests extends ESSingleNodeTestCase {
settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false); settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false); settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false); settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false); settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
settings.put(Environment.PATH_REPO_SETTING.getKey(), repositoryLocation); settings.put(Environment.PATH_REPO_SETTING.getKey(), repositoryLocation);

View file

@ -44,7 +44,6 @@ public abstract class MlSingleNodeTestCase extends ESSingleNodeTestCase {
newSettings.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial"); newSettings.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial");
// Disable security otherwise delete-by-query action fails to get authorized // Disable security otherwise delete-by-query action fails to get authorized
newSettings.put(XPackSettings.SECURITY_ENABLED.getKey(), false); newSettings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
newSettings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
newSettings.put(XPackSettings.WATCHER_ENABLED.getKey(), false); newSettings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
// Disable ILM history index so that the tests don't have to clean it up // Disable ILM history index so that the tests don't have to clean it up
newSettings.put(LifecycleSettings.LIFECYCLE_HISTORY_INDEX_ENABLED_SETTING.getKey(), false); newSettings.put(LifecycleSettings.LIFECYCLE_HISTORY_INDEX_ENABLED_SETTING.getKey(), false);

View file

@ -27,7 +27,6 @@ public class AnnotationIndexIT extends MlSingleNodeTestCase {
protected Settings nodeSettings() { protected Settings nodeSettings() {
Settings.Builder newSettings = Settings.builder(); Settings.Builder newSettings = Settings.builder();
newSettings.put(super.nodeSettings()); newSettings.put(super.nodeSettings());
newSettings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
newSettings.put(XPackSettings.SECURITY_ENABLED.getKey(), false); newSettings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
newSettings.put(XPackSettings.WATCHER_ENABLED.getKey(), false); newSettings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
return newSettings.build(); return newSettings.build();

View file

@ -92,7 +92,6 @@ public abstract class BaseMlIntegTestCase extends ESIntegTestCase {
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false); settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
settings.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial"); settings.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial");
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false); settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false); settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
settings.put(LifecycleSettings.LIFECYCLE_HISTORY_INDEX_ENABLED_SETTING.getKey(), false); settings.put(LifecycleSettings.LIFECYCLE_HISTORY_INDEX_ENABLED_SETTING.getKey(), false);
return settings.build(); return settings.build();

View file

@ -32,7 +32,6 @@ import org.elasticsearch.script.ScriptService;
import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.watcher.ResourceWatcherService; import org.elasticsearch.watcher.ResourceWatcherService;
import org.elasticsearch.xpack.core.XPackPlugin; import org.elasticsearch.xpack.core.XPackPlugin;
import org.elasticsearch.xpack.core.XPackSettings;
import org.elasticsearch.xpack.core.action.XPackInfoFeatureAction; import org.elasticsearch.xpack.core.action.XPackInfoFeatureAction;
import org.elasticsearch.xpack.core.action.XPackUsageFeatureAction; import org.elasticsearch.xpack.core.action.XPackUsageFeatureAction;
import org.elasticsearch.xpack.core.monitoring.MonitoringField; import org.elasticsearch.xpack.core.monitoring.MonitoringField;
@ -66,7 +65,6 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Supplier; import java.util.function.Supplier;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList; import static java.util.Collections.singletonList;
import static org.elasticsearch.common.settings.Setting.boolSetting; import static org.elasticsearch.common.settings.Setting.boolSetting;
@ -80,13 +78,11 @@ public class Monitoring extends Plugin implements ActionPlugin, ReloadablePlugin
true, Setting.Property.Dynamic, Setting.Property.NodeScope, Setting.Property.Deprecated); true, Setting.Property.Dynamic, Setting.Property.NodeScope, Setting.Property.Deprecated);
protected final Settings settings; protected final Settings settings;
private final boolean enabled;
private Exporters exporters; private Exporters exporters;
public Monitoring(Settings settings) { public Monitoring(Settings settings) {
this.settings = settings; this.settings = settings;
this.enabled = XPackSettings.MONITORING_ENABLED.get(settings);
} }
// overridable by tests // overridable by tests
@ -94,10 +90,6 @@ public class Monitoring extends Plugin implements ActionPlugin, ReloadablePlugin
protected XPackLicenseState getLicenseState() { return XPackPlugin.getSharedLicenseState(); } protected XPackLicenseState getLicenseState() { return XPackPlugin.getSharedLicenseState(); }
protected LicenseService getLicenseService() { return XPackPlugin.getSharedLicenseService(); } protected LicenseService getLicenseService() { return XPackPlugin.getSharedLicenseService(); }
boolean isEnabled() {
return enabled;
}
@Override @Override
public Collection<Object> createComponents(Client client, ClusterService clusterService, ThreadPool threadPool, public Collection<Object> createComponents(Client client, ClusterService clusterService, ThreadPool threadPool,
ResourceWatcherService resourceWatcherService, ScriptService scriptService, ResourceWatcherService resourceWatcherService, ScriptService scriptService,
@ -105,10 +97,6 @@ public class Monitoring extends Plugin implements ActionPlugin, ReloadablePlugin
NodeEnvironment nodeEnvironment, NamedWriteableRegistry namedWriteableRegistry, NodeEnvironment nodeEnvironment, NamedWriteableRegistry namedWriteableRegistry,
IndexNameExpressionResolver expressionResolver, IndexNameExpressionResolver expressionResolver,
Supplier<RepositoriesService> repositoriesServiceSupplier) { Supplier<RepositoriesService> repositoriesServiceSupplier) {
if (enabled == false) {
return Collections.singletonList(new MonitoringUsageServices(null, null));
}
final ClusterSettings clusterSettings = clusterService.getClusterSettings(); final ClusterSettings clusterSettings = clusterService.getClusterSettings();
final CleanerService cleanerService = new CleanerService(settings, clusterSettings, threadPool, getLicenseState()); final CleanerService cleanerService = new CleanerService(settings, clusterSettings, threadPool, getLicenseState());
final SSLService dynamicSSLService = getSslService().createDynamicSSLService(); final SSLService dynamicSSLService = getSslService().createDynamicSSLService();
@ -140,9 +128,6 @@ public class Monitoring extends Plugin implements ActionPlugin, ReloadablePlugin
public List<ActionHandler<? extends ActionRequest, ? extends ActionResponse>> getActions() { public List<ActionHandler<? extends ActionRequest, ? extends ActionResponse>> getActions() {
var usageAction = new ActionHandler<>(XPackUsageFeatureAction.MONITORING, MonitoringUsageTransportAction.class); var usageAction = new ActionHandler<>(XPackUsageFeatureAction.MONITORING, MonitoringUsageTransportAction.class);
var infoAction = new ActionHandler<>(XPackInfoFeatureAction.MONITORING, MonitoringInfoTransportAction.class); var infoAction = new ActionHandler<>(XPackInfoFeatureAction.MONITORING, MonitoringInfoTransportAction.class);
if (false == enabled) {
return Arrays.asList(usageAction, infoAction);
}
return Arrays.asList( return Arrays.asList(
new ActionHandler<>(MonitoringBulkAction.INSTANCE, TransportMonitoringBulkAction.class), new ActionHandler<>(MonitoringBulkAction.INSTANCE, TransportMonitoringBulkAction.class),
usageAction, usageAction,
@ -153,9 +138,6 @@ public class Monitoring extends Plugin implements ActionPlugin, ReloadablePlugin
public List<RestHandler> getRestHandlers(Settings settings, RestController restController, ClusterSettings clusterSettings, public List<RestHandler> getRestHandlers(Settings settings, RestController restController, ClusterSettings clusterSettings,
IndexScopedSettings indexScopedSettings, SettingsFilter settingsFilter, IndexNameExpressionResolver indexNameExpressionResolver, IndexScopedSettings indexScopedSettings, SettingsFilter settingsFilter, IndexNameExpressionResolver indexNameExpressionResolver,
Supplier<DiscoveryNodes> nodesInCluster) { Supplier<DiscoveryNodes> nodesInCluster) {
if (false == enabled) {
return emptyList();
}
return singletonList(new RestMonitoringBulkAction()); return singletonList(new RestMonitoringBulkAction());
} }

View file

@ -7,24 +7,20 @@ package org.elasticsearch.xpack.monitoring;
import org.elasticsearch.action.support.ActionFilters; import org.elasticsearch.action.support.ActionFilters;
import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.license.XPackLicenseState; import org.elasticsearch.license.XPackLicenseState;
import org.elasticsearch.transport.TransportService; import org.elasticsearch.transport.TransportService;
import org.elasticsearch.xpack.core.XPackField; import org.elasticsearch.xpack.core.XPackField;
import org.elasticsearch.xpack.core.XPackSettings;
import org.elasticsearch.xpack.core.action.XPackInfoFeatureAction; import org.elasticsearch.xpack.core.action.XPackInfoFeatureAction;
import org.elasticsearch.xpack.core.action.XPackInfoFeatureTransportAction; import org.elasticsearch.xpack.core.action.XPackInfoFeatureTransportAction;
public class MonitoringInfoTransportAction extends XPackInfoFeatureTransportAction { public class MonitoringInfoTransportAction extends XPackInfoFeatureTransportAction {
private final boolean enabled;
private final XPackLicenseState licenseState; private final XPackLicenseState licenseState;
@Inject @Inject
public MonitoringInfoTransportAction(TransportService transportService, ActionFilters actionFilters, public MonitoringInfoTransportAction(TransportService transportService, ActionFilters actionFilters,
Settings settings, XPackLicenseState licenseState) { XPackLicenseState licenseState) {
super(XPackInfoFeatureAction.MONITORING.name(), transportService, actionFilters); super(XPackInfoFeatureAction.MONITORING.name(), transportService, actionFilters);
this.enabled = XPackSettings.MONITORING_ENABLED.get(settings);
this.licenseState = licenseState; this.licenseState = licenseState;
} }
@ -40,6 +36,6 @@ public class MonitoringInfoTransportAction extends XPackInfoFeatureTransportActi
@Override @Override
public boolean enabled() { public boolean enabled() {
return enabled; return true;
} }
} }

View file

@ -11,13 +11,11 @@ import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver; import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.cluster.service.ClusterService;
import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.license.XPackLicenseState; import org.elasticsearch.license.XPackLicenseState;
import org.elasticsearch.protocol.xpack.XPackUsageRequest; import org.elasticsearch.protocol.xpack.XPackUsageRequest;
import org.elasticsearch.tasks.Task; import org.elasticsearch.tasks.Task;
import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.transport.TransportService; import org.elasticsearch.transport.TransportService;
import org.elasticsearch.xpack.core.XPackSettings;
import org.elasticsearch.xpack.core.action.XPackUsageFeatureAction; import org.elasticsearch.xpack.core.action.XPackUsageFeatureAction;
import org.elasticsearch.xpack.core.action.XPackUsageFeatureResponse; import org.elasticsearch.xpack.core.action.XPackUsageFeatureResponse;
import org.elasticsearch.xpack.core.action.XPackUsageFeatureTransportAction; import org.elasticsearch.xpack.core.action.XPackUsageFeatureTransportAction;
@ -29,7 +27,6 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class MonitoringUsageTransportAction extends XPackUsageFeatureTransportAction { public class MonitoringUsageTransportAction extends XPackUsageFeatureTransportAction {
private final boolean enabled;
private final MonitoringService monitoringService; private final MonitoringService monitoringService;
private final XPackLicenseState licenseState; private final XPackLicenseState licenseState;
private final Exporters exporters; private final Exporters exporters;
@ -37,10 +34,9 @@ public class MonitoringUsageTransportAction extends XPackUsageFeatureTransportAc
@Inject @Inject
public MonitoringUsageTransportAction(TransportService transportService, ClusterService clusterService, ThreadPool threadPool, public MonitoringUsageTransportAction(TransportService transportService, ClusterService clusterService, ThreadPool threadPool,
ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver, ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver,
Settings settings, XPackLicenseState licenseState, MonitoringUsageServices monitoringServices) { XPackLicenseState licenseState, MonitoringUsageServices monitoringServices) {
super(XPackUsageFeatureAction.MONITORING.name(), transportService, clusterService, threadPool, super(XPackUsageFeatureAction.MONITORING.name(), transportService, clusterService, threadPool,
actionFilters, indexNameExpressionResolver); actionFilters, indexNameExpressionResolver);
this.enabled = XPackSettings.MONITORING_ENABLED.get(settings);
this.licenseState = licenseState; this.licenseState = licenseState;
this.monitoringService = monitoringServices.monitoringService; this.monitoringService = monitoringServices.monitoringService;
this.exporters = monitoringServices.exporters; this.exporters = monitoringServices.exporters;
@ -51,7 +47,7 @@ public class MonitoringUsageTransportAction extends XPackUsageFeatureTransportAc
ActionListener<XPackUsageFeatureResponse> listener) { ActionListener<XPackUsageFeatureResponse> listener) {
final boolean collectionEnabled = monitoringService != null && monitoringService.isMonitoringActive(); final boolean collectionEnabled = monitoringService != null && monitoringService.isMonitoringActive();
var usage = new MonitoringFeatureSetUsage(licenseState.isAllowed(XPackLicenseState.Feature.MONITORING), var usage = new MonitoringFeatureSetUsage(licenseState.isAllowed(XPackLicenseState.Feature.MONITORING),
enabled, collectionEnabled, exportersUsage(exporters)); collectionEnabled, exportersUsage(exporters));
listener.onResponse(new XPackUsageFeatureResponse(usage)); listener.onResponse(new XPackUsageFeatureResponse(usage));
} }

View file

@ -11,8 +11,6 @@ import org.elasticsearch.action.support.PlainActionFuture;
import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.io.stream.BytesStreamOutput; import org.elasticsearch.common.io.stream.BytesStreamOutput;
import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.settings.Setting;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.ToXContent;
import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.license.XPackLicenseState; import org.elasticsearch.license.XPackLicenseState;
@ -21,7 +19,6 @@ import org.elasticsearch.test.VersionUtils;
import org.elasticsearch.test.rest.yaml.ObjectPath; import org.elasticsearch.test.rest.yaml.ObjectPath;
import org.elasticsearch.transport.TransportService; import org.elasticsearch.transport.TransportService;
import org.elasticsearch.xpack.core.XPackFeatureSet; import org.elasticsearch.xpack.core.XPackFeatureSet;
import org.elasticsearch.xpack.core.XPackSettings;
import org.elasticsearch.xpack.core.action.XPackUsageFeatureResponse; import org.elasticsearch.xpack.core.action.XPackUsageFeatureResponse;
import org.elasticsearch.xpack.core.monitoring.MonitoringFeatureSetUsage; import org.elasticsearch.xpack.core.monitoring.MonitoringFeatureSetUsage;
import org.elasticsearch.xpack.monitoring.exporter.Exporter; import org.elasticsearch.xpack.monitoring.exporter.Exporter;
@ -48,25 +45,15 @@ public class MonitoringInfoTransportActionTests extends ESTestCase {
public void testAvailable() { public void testAvailable() {
MonitoringInfoTransportAction featureSet = new MonitoringInfoTransportAction( MonitoringInfoTransportAction featureSet = new MonitoringInfoTransportAction(
mock(TransportService.class), mock(ActionFilters.class), Settings.EMPTY, licenseState); mock(TransportService.class), mock(ActionFilters.class), licenseState);
boolean available = randomBoolean(); boolean available = randomBoolean();
when(licenseState.isAllowed(XPackLicenseState.Feature.MONITORING)).thenReturn(available); when(licenseState.isAllowed(XPackLicenseState.Feature.MONITORING)).thenReturn(available);
assertThat(featureSet.available(), is(available)); assertThat(featureSet.available(), is(available));
} }
public void testEnabledSetting() { public void testMonitoringEnabledByDefault() {
boolean enabled = randomBoolean();
Settings.Builder settings = Settings.builder();
settings.put("xpack.monitoring.enabled", enabled);
MonitoringInfoTransportAction featureSet = new MonitoringInfoTransportAction( MonitoringInfoTransportAction featureSet = new MonitoringInfoTransportAction(
mock(TransportService.class), mock(ActionFilters.class), settings.build(), licenseState); mock(TransportService.class), mock(ActionFilters.class), licenseState);
assertThat(featureSet.enabled(), is(enabled));
assertSettingDeprecationsAndWarnings(new Setting<?>[] { XPackSettings.MONITORING_ENABLED } );
}
public void testEnabledDefault() {
MonitoringInfoTransportAction featureSet = new MonitoringInfoTransportAction(
mock(TransportService.class), mock(ActionFilters.class), Settings.EMPTY, licenseState);
assertThat(featureSet.enabled(), is(true)); assertThat(featureSet.enabled(), is(true));
} }
@ -106,7 +93,7 @@ public class MonitoringInfoTransportActionTests extends ESTestCase {
when(monitoring.isMonitoringActive()).thenReturn(collectionEnabled); when(monitoring.isMonitoringActive()).thenReturn(collectionEnabled);
var usageAction = new MonitoringUsageTransportAction(mock(TransportService.class), null, null, var usageAction = new MonitoringUsageTransportAction(mock(TransportService.class), null, null,
mock(ActionFilters.class), null, Settings.EMPTY,licenseState, mock(ActionFilters.class), null, licenseState,
new MonitoringUsageServices(monitoring, exporters)); new MonitoringUsageServices(monitoring, exporters));
PlainActionFuture<XPackUsageFeatureResponse> future = new PlainActionFuture<>(); PlainActionFuture<XPackUsageFeatureResponse> future = new PlainActionFuture<>();
usageAction.masterOperation(null, null, null, future); usageAction.masterOperation(null, null, null, future);

View file

@ -1,25 +0,0 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
package org.elasticsearch.xpack.monitoring;
import org.elasticsearch.client.Client;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.test.ESTestCase;
import static org.hamcrest.Matchers.is;
public class MonitoringPluginClientTests extends ESTestCase {
public void testModulesWithNodeSettings() throws Exception {
// these settings mimic what ES does when running as a node...
Settings settings = Settings.builder()
.put("path.home", createTempDir())
.put(Client.CLIENT_TYPE_SETTING_S.getKey(), "node")
.build();
Monitoring plugin = new Monitoring(settings);
assertThat(plugin.isEnabled(), is(true));
}
}

View file

@ -206,7 +206,7 @@ public class ClusterStatsCollectorTests extends BaseCollectorTestCase {
.thenReturn(indices); .thenReturn(indices);
final XPackUsageResponse xPackUsageResponse = new XPackUsageResponse( final XPackUsageResponse xPackUsageResponse = new XPackUsageResponse(
singletonList(new MonitoringFeatureSetUsage(true, true, false, null))); singletonList(new MonitoringFeatureSetUsage(true, false, null)));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
final ActionFuture<XPackUsageResponse> xPackUsageFuture = (ActionFuture<XPackUsageResponse>) mock(ActionFuture.class); final ActionFuture<XPackUsageResponse> xPackUsageFuture = (ActionFuture<XPackUsageResponse>) mock(ActionFuture.class);
@ -305,7 +305,7 @@ public class ClusterStatsCollectorTests extends BaseCollectorTestCase {
when(client.admin()).thenReturn(adminClient); when(client.admin()).thenReturn(adminClient);
final XPackUsageResponse xPackUsageResponse = new XPackUsageResponse( final XPackUsageResponse xPackUsageResponse = new XPackUsageResponse(
singletonList(new MonitoringFeatureSetUsage(true, true, false, null))); singletonList(new MonitoringFeatureSetUsage(true, false, null)));
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
final ActionFuture<XPackUsageResponse> xPackUsageFuture = (ActionFuture<XPackUsageResponse>) mock(ActionFuture.class); final ActionFuture<XPackUsageResponse> xPackUsageFuture = (ActionFuture<XPackUsageResponse>) mock(ActionFuture.class);
when(client.execute(same(XPackUsageAction.INSTANCE), any(XPackUsageRequest.class))).thenReturn(xPackUsageFuture); when(client.execute(same(XPackUsageAction.INSTANCE), any(XPackUsageRequest.class))).thenReturn(xPackUsageFuture);

View file

@ -235,7 +235,7 @@ public class ClusterStatsMonitoringDocTests extends BaseMonitoringDocTestCase<Cl
.maxNodes(2) .maxNodes(2)
.build(); .build();
final List<XPackFeatureSet.Usage> usages = singletonList(new MonitoringFeatureSetUsage(false, true, false, null)); final List<XPackFeatureSet.Usage> usages = singletonList(new MonitoringFeatureSetUsage(false, false, null));
final NodeInfo mockNodeInfo = mock(NodeInfo.class); final NodeInfo mockNodeInfo = mock(NodeInfo.class);
Version mockNodeVersion = Version.CURRENT.minimumIndexCompatibilityVersion(); Version mockNodeVersion = Version.CURRENT.minimumIndexCompatibilityVersion();

View file

@ -135,9 +135,8 @@ public class SecuritySettingsSource extends NodeConfigurationSource {
.put(XPackSettings.SECURITY_ENABLED.getKey(), true) .put(XPackSettings.SECURITY_ENABLED.getKey(), true)
.put(NetworkModule.TRANSPORT_TYPE_KEY, randomBoolean() ? SecurityField.NAME4 : SecurityField.NIO) .put(NetworkModule.TRANSPORT_TYPE_KEY, randomBoolean() ? SecurityField.NAME4 : SecurityField.NIO)
.put(NetworkModule.HTTP_TYPE_KEY, randomBoolean() ? SecurityField.NAME4 : SecurityField.NIO) .put(NetworkModule.HTTP_TYPE_KEY, randomBoolean() ? SecurityField.NAME4 : SecurityField.NIO)
//TODO: for now isolate security tests from watcher & monitoring (randomize this later) //TODO: for now isolate security tests from watcher (randomize this later)
.put(XPackSettings.WATCHER_ENABLED.getKey(), false) .put(XPackSettings.WATCHER_ENABLED.getKey(), false)
.put(XPackSettings.MONITORING_ENABLED.getKey(), false)
.put(XPackSettings.AUDIT_ENABLED.getKey(), randomBoolean()) .put(XPackSettings.AUDIT_ENABLED.getKey(), randomBoolean())
.put(LoggingAuditTrail.EMIT_HOST_ADDRESS_SETTING.getKey(), randomBoolean()) .put(LoggingAuditTrail.EMIT_HOST_ADDRESS_SETTING.getKey(), randomBoolean())
.put(LoggingAuditTrail.EMIT_HOST_NAME_SETTING.getKey(), randomBoolean()) .put(LoggingAuditTrail.EMIT_HOST_NAME_SETTING.getKey(), randomBoolean())

View file

@ -23,7 +23,6 @@ public abstract class AbstractSqlIntegTestCase extends ESIntegTestCase {
protected Settings nodeSettings(int nodeOrdinal) { protected Settings nodeSettings(int nodeOrdinal) {
Settings.Builder settings = Settings.builder().put(super.nodeSettings(nodeOrdinal)); Settings.Builder settings = Settings.builder().put(super.nodeSettings(nodeOrdinal));
settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false); settings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
settings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false); settings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false); settings.put(XPackSettings.GRAPH_ENABLED.getKey(), false);
settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false); settings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);

View file

@ -107,7 +107,6 @@ public abstract class AbstractWatcherIntegrationTestCase extends ESIntegTestCase
protected Settings nodeSettings(int nodeOrdinal) { protected Settings nodeSettings(int nodeOrdinal) {
return Settings.builder() return Settings.builder()
.put(super.nodeSettings(nodeOrdinal)) .put(super.nodeSettings(nodeOrdinal))
.put(XPackSettings.MONITORING_ENABLED.getKey(), false)
.put(XPackSettings.SECURITY_ENABLED.getKey(), false) .put(XPackSettings.SECURITY_ENABLED.getKey(), false)
.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial") .put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial")
// we do this by default in core, but for watcher this isn't needed and only adds noise. // we do this by default in core, but for watcher this isn't needed and only adds noise.

View file

@ -59,7 +59,6 @@ public class RejectedExecutionTests extends AbstractWatcherIntegrationTestCase {
return Settings.builder() return Settings.builder()
.put(super.nodeSettings(nodeOrdinal)) .put(super.nodeSettings(nodeOrdinal))
.put(XPackSettings.MONITORING_ENABLED.getKey(), false)
.put(XPackSettings.SECURITY_ENABLED.getKey(), false) .put(XPackSettings.SECURITY_ENABLED.getKey(), false)
.put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial") .put(LicenseService.SELF_GENERATED_LICENSE_TYPE.getKey(), "trial")
.put("thread_pool.write.size", 1) .put("thread_pool.write.size", 1)