From c0a7dd4142816e01727a8e4120014727201a1cbc Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Fri, 24 Apr 2020 11:15:50 -0400 Subject: [PATCH 01/16] Expose agg usage in Feature Usage API Counts usage of the aggs and exposes them on the _nodes/usage/. Closes #53746 --- .../test/rest/NodeRestUsageIT.java | 121 +++++++-- docs/reference/cluster/nodes-usage.asciidoc | 28 ++- .../test/mixed_cluster/10_basic.yml | 6 + .../admin/cluster/node/usage/NodeUsage.java | 33 ++- .../cluster/node/usage/NodesUsageRequest.java | 27 +- .../node/usage/TransportNodesUsageAction.java | 2 +- .../java/org/elasticsearch/node/Node.java | 1 + .../admin/cluster/RestNodesUsageAction.java | 1 + .../support/ValuesSourceConfig.java | 1 + .../support/ValuesSourceRegistry.java | 230 ++++++++++++++---- .../support/ValuesSourceType.java | 6 + .../org/elasticsearch/usage/UsageService.java | 33 ++- .../usage/UsageServiceTests.java | 51 +++- .../support/GeoShapeValuesSourceType.java | 5 + 14 files changed, 461 insertions(+), 84 deletions(-) diff --git a/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java b/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java index 2370548c6b61c..7835986510336 100644 --- a/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java +++ b/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java @@ -22,8 +22,14 @@ import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.Request; +import org.elasticsearch.common.Strings; +import org.elasticsearch.script.Script; +import org.elasticsearch.search.aggregations.AggregationBuilders; +import org.elasticsearch.search.aggregations.support.ValueType; +import org.elasticsearch.search.builder.SearchSourceBuilder; import java.io.IOException; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -41,14 +47,7 @@ public void testWithRestUsage() throws IOException { Response beforeResponse = client().performRequest(new Request("GET", path)); Map beforeResponseBodyMap = entityAsMap(beforeResponse); assertThat(beforeResponseBodyMap, notNullValue()); - Map before_nodesMap = (Map) beforeResponseBodyMap.get("_nodes"); - assertThat(before_nodesMap, notNullValue()); - Integer beforeTotal = (Integer) before_nodesMap.get("total"); - Integer beforeSuccessful = (Integer) before_nodesMap.get("successful"); - Integer beforeFailed = (Integer) before_nodesMap.get("failed"); - assertThat(beforeTotal, greaterThan(0)); - assertThat(beforeSuccessful, equalTo(beforeTotal)); - assertThat(beforeFailed, equalTo(0)); + int beforeSuccessful = assertSuccess(beforeResponseBodyMap); Map beforeNodesMap = (Map) beforeResponseBodyMap.get("nodes"); assertThat(beforeNodesMap, notNullValue()); @@ -98,14 +97,7 @@ public void testWithRestUsage() throws IOException { Response response = client().performRequest(new Request("GET", "_nodes/usage")); Map responseBodyMap = entityAsMap(response); assertThat(responseBodyMap, notNullValue()); - Map _nodesMap = (Map) responseBodyMap.get("_nodes"); - assertThat(_nodesMap, notNullValue()); - Integer total = (Integer) _nodesMap.get("total"); - Integer successful = (Integer) _nodesMap.get("successful"); - Integer failed = (Integer) _nodesMap.get("failed"); - assertThat(total, greaterThan(0)); - assertThat(successful, equalTo(total)); - assertThat(failed, equalTo(0)); + int successful = assertSuccess(responseBodyMap); Map nodesMap = (Map) responseBodyMap.get("nodes"); assertThat(nodesMap, notNullValue()); @@ -143,4 +135,101 @@ public void testMetricsWithAll() throws IOException { + "\"reason\":\"request [_nodes/usage/_all,rest_actions] contains _all and individual metrics [_all,rest_actions]\"")); } + @SuppressWarnings("unchecked") + public void testAggregationUsage() throws IOException { + // First get the current usage figures + String path = randomFrom("_nodes/usage", "_nodes/usage/aggregations", "_nodes/usage/_all"); + Response beforeResponse = client().performRequest(new Request("GET", path)); + Map beforeResponseBodyMap = entityAsMap(beforeResponse); + assertThat(beforeResponseBodyMap, notNullValue()); + int beforeSuccessful = assertSuccess(beforeResponseBodyMap); + + Map beforeNodesMap = (Map) beforeResponseBodyMap.get("nodes"); + assertThat(beforeNodesMap, notNullValue()); + assertThat(beforeNodesMap.size(), equalTo(beforeSuccessful)); + + Map> beforeCombinedAggsUsage = getTotalUsage(beforeNodesMap); + // Do some requests to get some rest usage stats + client().performRequest(new Request("PUT", "/test")); + for (int i = 0; i < 3; i++) { + final Request index = new Request("POST", "/test/_doc/" + i); + index.setJsonEntity("{\"str\": \"val\", \"foo\":\"bar\", \"num\": 5, \"start\": \"2020-03-15\"}"); + client().performRequest(index); + } + + Request searchRequest = new Request("GET", "/test/_search"); + SearchSourceBuilder searchSource = new SearchSourceBuilder() + .aggregation(AggregationBuilders.terms("str_terms").field("str.keyword")) + .aggregation(AggregationBuilders.terms("num_terms").field("num")) + .aggregation(AggregationBuilders.terms("script_terms_unknown").script(new Script("10"))) // That will use bytes by default + .aggregation(AggregationBuilders.avg("num_avg").field("num")); + searchRequest.setJsonEntity(Strings.toString(searchSource)); + searchRequest.setJsonEntity(Strings.toString(searchSource)); + client().performRequest(searchRequest); + + searchRequest = new Request("GET", "/test/_search"); + searchSource = new SearchSourceBuilder() + .aggregation(AggregationBuilders.terms("start").field("start")) + .aggregation(AggregationBuilders.avg("num1").field("num")) + .aggregation(AggregationBuilders.avg("num2").field("num")) + .aggregation(AggregationBuilders.terms("script_terms_known").script(new Script("10")).userValueTypeHint(ValueType.NUMERIC)) + .aggregation(AggregationBuilders.terms("foo").field("foo.keyword")); + String r = Strings.toString(searchSource); + searchRequest.setJsonEntity(Strings.toString(searchSource)); + client().performRequest(searchRequest); + + Response response = client().performRequest(new Request("GET", "_nodes/usage")); + Map responseBodyMap = entityAsMap(response); + assertThat(responseBodyMap, notNullValue()); + int successful = assertSuccess(responseBodyMap); + + Map nodesMap = (Map) responseBodyMap.get("nodes"); + assertThat(nodesMap, notNullValue()); + assertThat(nodesMap.size(), equalTo(successful)); + + Map> afterCombinedAggsUsage = getTotalUsage(nodesMap); + + assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "terms", "numeric", 2L); + assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "terms", "date", 1L); + assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "terms", "bytes", 3L); + assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "avg", "numeric", 3L); + } + + private void assertDiff(Map> before, Map> after, String agg, String vst, + long diff) { + Long valBefore = before.getOrDefault(agg, Collections.emptyMap()).getOrDefault(vst, 0L); + Long valAfter = after.getOrDefault(agg, Collections.emptyMap()).getOrDefault(vst, 0L); + assertThat(agg + "." + vst, valAfter - valBefore, equalTo(diff) ); + } + + private Map> getTotalUsage(Map nodeUsage) { + Map> combined = new HashMap<>(); + for (Map.Entry nodeEntry : nodeUsage.entrySet()) { + @SuppressWarnings("unchecked") + Map beforeAggsUsage = (Map) ((Map) nodeEntry.getValue()).get("aggregations"); + assertThat(beforeAggsUsage, notNullValue()); + for (Map.Entry aggEntry : beforeAggsUsage.entrySet()) { + @SuppressWarnings("unchecked") Map aggMap = (Map) aggEntry.getValue(); + Map combinedAggMap = combined.computeIfAbsent(aggEntry.getKey(), k -> new HashMap<>()); + for (Map.Entry valSourceEntry : aggMap.entrySet()) { + combinedAggMap.put(valSourceEntry.getKey(), + combinedAggMap.getOrDefault(valSourceEntry.getKey(), 0L) + ((Number) valSourceEntry.getValue()).longValue()); + } + } + } + return combined; + } + + private int assertSuccess(Map responseBodyMap) { + @SuppressWarnings("unchecked") Map nodesResultMap = (Map) responseBodyMap.get("_nodes"); + assertThat(nodesResultMap, notNullValue()); + Integer total = (Integer) nodesResultMap.get("total"); + Integer successful = (Integer) nodesResultMap.get("successful"); + Integer failed = (Integer) nodesResultMap.get("failed"); + assertThat(total, greaterThan(0)); + assertThat(successful, equalTo(total)); + assertThat(failed, equalTo(0)); + return successful; + } + } diff --git a/docs/reference/cluster/nodes-usage.asciidoc b/docs/reference/cluster/nodes-usage.asciidoc index 503568b000698..5f7b089a1bca6 100644 --- a/docs/reference/cluster/nodes-usage.asciidoc +++ b/docs/reference/cluster/nodes-usage.asciidoc @@ -31,15 +31,15 @@ of features for each node. All the nodes selective options are explained ==== {api-path-parms-title} ``:: - (Optional, string) Limits the information returned to the specific metrics. - A comma-separated list of the following options: + (Optional, string) Limits the information returned to the specific metrics. + A comma-separated list of the following options: + -- `_all`:: Returns all stats. - + `rest_actions`:: - Returns the REST actions classname with a count of the number of times + Returns the REST actions classname with a count of the number of times that action has been called on the node. -- @@ -79,11 +79,18 @@ The API returns the following response: "timestamp": 1492553961812, <1> "since": 1492553906606, <2> "rest_actions": { - "org.elasticsearch.rest.action.admin.cluster.RestNodesUsageAction": 1, - "org.elasticsearch.rest.action.admin.indices.RestCreateIndexAction": 1, - "org.elasticsearch.rest.action.document.RestGetAction": 1, - "org.elasticsearch.rest.action.search.RestSearchAction": 19, <3> - "org.elasticsearch.rest.action.admin.cluster.RestNodesInfoAction": 36 + "nodes_usage_action": 1, + "create_index_action": 1, + "document_get_action": 1, + "search_action": 19, <3> + "nodes_info_action": 36 + }, + "aggregations" : { + "terms" : { + "bytes" : 1, <4> + "ip" : 3, + "numeric" : 5 <5> + } } } } @@ -94,7 +101,10 @@ The API returns the following response: // TESTRESPONSE[s/1492553961812/$body.$_path/] // TESTRESPONSE[s/1492553906606/$body.$_path/] // TESTRESPONSE[s/"rest_actions": [^}]+}/"rest_actions": $body.$_path/] +// TESTRESPONSE[s/"aggregations": [^}]+}/"aggregations": $body.$_path/] <1> Timestamp for when this nodes usage request was performed. <2> Timestamp for when the usage information recording was started. This is equivalent to the time that the node was started. <3> Search action has been called 19 times for this node. +<4> Terms aggregation on a keyword field has been called 1 time on this node. +<5> Terms aggregation on a numeric field has been called 5 time on this node. diff --git a/qa/rolling-upgrade/src/test/resources/rest-api-spec/test/mixed_cluster/10_basic.yml b/qa/rolling-upgrade/src/test/resources/rest-api-spec/test/mixed_cluster/10_basic.yml index fa86389f0db2a..8f97dc1b0d36d 100644 --- a/qa/rolling-upgrade/src/test/resources/rest-api-spec/test/mixed_cluster/10_basic.yml +++ b/qa/rolling-upgrade/src/test/resources/rest-api-spec/test/mixed_cluster/10_basic.yml @@ -67,3 +67,9 @@ - match: { hits.total: 1 } - match: { hits.hits.0._id: q3 } +--- +"Verify nodes usage works": + - do: + nodes.usage: {} + - is_true: nodes + - match: { _nodes.failed: 0 } diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/NodeUsage.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/NodeUsage.java index cd5aeef64313c..45fac09e00c91 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/NodeUsage.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/NodeUsage.java @@ -19,6 +19,7 @@ package org.elasticsearch.action.admin.cluster.node.usage; +import org.elasticsearch.Version; import org.elasticsearch.action.support.nodes.BaseNodeResponse; import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.common.io.stream.StreamInput; @@ -31,15 +32,22 @@ public class NodeUsage extends BaseNodeResponse implements ToXContentFragment { - private long timestamp; - private long sinceTime; - private Map restUsage; + private final long timestamp; + private final long sinceTime; + private final Map restUsage; + private final Map aggregationUsage; + @SuppressWarnings("unchecked") public NodeUsage(StreamInput in) throws IOException { super(in); timestamp = in.readLong(); sinceTime = in.readLong(); restUsage = (Map) in.readGenericValue(); + if (in.getVersion().onOrAfter(Version.V_8_0_0)) { + aggregationUsage = (Map) in.readGenericValue(); + } else { + aggregationUsage = null; + } } /** @@ -54,11 +62,13 @@ public NodeUsage(StreamInput in) throws IOException { * a map containing the counts of the number of times each REST * endpoint has been called */ - public NodeUsage(DiscoveryNode node, long timestamp, long sinceTime, Map restUsage) { + public NodeUsage(DiscoveryNode node, long timestamp, long sinceTime, Map restUsage, + Map aggregationUsage) { super(node); this.timestamp = timestamp; this.sinceTime = sinceTime; this.restUsage = restUsage; + this.aggregationUsage = aggregationUsage; } /** @@ -83,6 +93,14 @@ public Map getRestUsage() { return restUsage; } + /** + * @return a map containing the counts of the number of times each REST + * endpoint has been called + */ + public Map getAggregationUsage() { + return aggregationUsage; + } + @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { builder.field("since", sinceTime); @@ -90,6 +108,10 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws builder.field("rest_actions"); builder.map(restUsage); } + if (aggregationUsage != null) { + builder.field("aggregations"); + builder.map(aggregationUsage); + } return builder; } @@ -99,6 +121,9 @@ public void writeTo(StreamOutput out) throws IOException { out.writeLong(timestamp); out.writeLong(sinceTime); out.writeGenericValue(restUsage); + if (out.getVersion().onOrAfter(Version.V_8_0_0)) { + out.writeGenericValue(aggregationUsage); + } } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/NodesUsageRequest.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/NodesUsageRequest.java index 1a8b7926fe987..92de4f7872d82 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/NodesUsageRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/NodesUsageRequest.java @@ -19,6 +19,7 @@ package org.elasticsearch.action.admin.cluster.node.usage; +import org.elasticsearch.Version; import org.elasticsearch.action.support.nodes.BaseNodesRequest; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; @@ -28,10 +29,14 @@ public class NodesUsageRequest extends BaseNodesRequest { private boolean restActions; + private boolean aggregations; public NodesUsageRequest(StreamInput in) throws IOException { super(in); this.restActions = in.readBoolean(); + if (in.getVersion().onOrAfter(Version.V_8_0_0)) { + this.aggregations = in.readBoolean(); + } } /** @@ -47,6 +52,7 @@ public NodesUsageRequest(String... nodesIds) { */ public NodesUsageRequest all() { this.restActions = true; + this.aggregations = true; return this; } @@ -73,9 +79,28 @@ public NodesUsageRequest restActions(boolean restActions) { return this; } + + /** + * Should the node rest actions usage statistics be returned. + */ + public boolean aggregations() { + return this.aggregations; + } + + /** + * Should the node rest actions usage statistics be returned. + */ + public NodesUsageRequest aggregations(boolean aggregations) { + this.aggregations = aggregations; + return this; + } + @Override public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); out.writeBoolean(restActions); + if (out.getVersion().onOrAfter(Version.V_8_0_0)) { + out.writeBoolean(aggregations); + } } -} \ No newline at end of file +} diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/TransportNodesUsageAction.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/TransportNodesUsageAction.java index b7a16793be0f7..7b84cdd472313 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/TransportNodesUsageAction.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/TransportNodesUsageAction.java @@ -66,7 +66,7 @@ protected NodeUsage newNodeResponse(StreamInput in) throws IOException { @Override protected NodeUsage nodeOperation(NodeUsageRequest nodeUsageRequest, Task task) { NodesUsageRequest request = nodeUsageRequest.request; - return usageService.getUsageStats(clusterService.localNode(), request.restActions()); + return usageService.getUsageStats(clusterService.localNode(), request.restActions(), request.aggregations()); } public static class NodeUsageRequest extends TransportRequest { diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index eff54dd4e7a8e..7f0bc02315ee5 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -384,6 +384,7 @@ protected Node(final Environment initialEnvironment, modules.add(indicesModule); SearchModule searchModule = new SearchModule(settings, pluginsService.filterPlugins(SearchPlugin.class)); + searchModule.getValuesSourceRegistry().registerUsage(usageService); CircuitBreakerService circuitBreakerService = createCircuitBreakerService(settingsModule.getSettings(), settingsModule.getClusterSettings()); resourcesToClose.add(circuitBreakerService); diff --git a/server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestNodesUsageAction.java b/server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestNodesUsageAction.java index 6c38883b8663f..2e399226f3992 100644 --- a/server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestNodesUsageAction.java +++ b/server/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestNodesUsageAction.java @@ -66,6 +66,7 @@ protected RestChannelConsumer prepareRequest(RestRequest request, NodeClient cli } else { nodesUsageRequest.clear(); nodesUsageRequest.restActions(metrics.contains("rest_actions")); + nodesUsageRequest.aggregations(metrics.contains("aggregations")); } return channel -> client.admin().cluster().nodesUsage(nodesUsageRequest, new RestBuilderListener(channel) { diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java index 6cd62a0d2a622..915b8bc700ab7 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java @@ -157,6 +157,7 @@ private static ValuesSourceConfig internalResolve(QueryShardContext context, aggregationScript = createScript(script, context); } } + context.getValuesSourceRegistry().incUsage(aggregationName, valuesSourceType); config = new ValuesSourceConfig(valuesSourceType, fieldType, unmapped, aggregationScript, scriptValueType , context); config.format(resolveFormat(format, valuesSourceType, timeZone, fieldType)); config.missing(missing); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java index 0ac07dd062887..42f9a1c5d62c3 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java @@ -26,71 +26,185 @@ import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.AggregationExecutionException; +import org.elasticsearch.usage.UsageService; -import java.util.AbstractMap; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.Predicate; +import java.util.concurrent.atomic.AtomicLong; /** * {@link ValuesSourceRegistry} holds the mapping from {@link ValuesSourceType}s to {@link AggregatorSupplier}s. DO NOT directly * instantiate this class, instead get an already-configured copy from {@link QueryShardContext#getValuesSourceRegistry()}, or (in the case * of some test scenarios only) directly from {@link SearchModule#getValuesSourceRegistry()} - * */ public class ValuesSourceRegistry { + /** + * Base class for the aggregation registration. + *

+ * TODO: we can get rid of this entire hierarchy and shrink it to a single class or even Tuple when we get rid of registerAny + */ + public abstract static class RegistryEntry { + + private final AggregatorSupplier supplier; + + /** + * @param supplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator + * from the aggregation standard set of parameters + */ + protected RegistryEntry(AggregatorSupplier supplier) { + this.supplier = supplier; + } + + /** + * Returns true if this aggregation can be applied to the given value source type, false otherwise + */ + protected abstract boolean appliesTo(ValuesSourceType type); + + /** + * Increments usage counter for the given aggregetion + */ + protected abstract void inc(ValuesSourceType type); + + /** + * Registers the aggregation usage with the usage service + */ + protected abstract void registerUsage(String aggName, UsageService usageService); + + } + + private static class AnyRegistryEntry extends RegistryEntry { + private final AtomicLong stats; + + private AnyRegistryEntry(AggregatorSupplier supplier) { + super(supplier); + this.stats = new AtomicLong(); + } + + @Override + protected void inc(ValuesSourceType type) { + stats.incrementAndGet(); + } + + @Override + protected void registerUsage(String aggName, UsageService usageService) { + usageService.addAggregationUsage(aggName, "*", stats); + } + + @Override + protected boolean appliesTo(ValuesSourceType type) { + return true; + } + } + + + private static class SingleRegistryEntry extends RegistryEntry { + private final AtomicLong stats; + private final ValuesSourceType type; + + private SingleRegistryEntry(AggregatorSupplier supplier, ValuesSourceType type) { + super(supplier); + this.stats = new AtomicLong(); + this.type = type; + } + + @Override + protected void inc(ValuesSourceType type) { + stats.incrementAndGet(); + } + + @Override + protected void registerUsage(String aggName, UsageService usageService) { + usageService.addAggregationUsage(aggName, type.value(), stats); + } + + @Override + protected boolean appliesTo(ValuesSourceType type) { + return this.type == type; + } + } + + private static class MultiRegistryEntry extends RegistryEntry { + private final Map stats; + private final List valuesSourceTypes; + + private MultiRegistryEntry(AggregatorSupplier supplier, List valuesSourceTypes) { + super(supplier); + this.stats = new HashMap<>(); + this.valuesSourceTypes = valuesSourceTypes; + for (ValuesSourceType valuesSourceType : valuesSourceTypes) { + AtomicLong stat = new AtomicLong(); + stats.put(valuesSourceType, stat); + } + } + + @Override + protected void inc(ValuesSourceType type) { + stats.get(type).incrementAndGet(); + } + + @Override + protected boolean appliesTo(ValuesSourceType type) { + for (ValuesSourceType valuesSourceType : valuesSourceTypes) { + if (valuesSourceType.equals(type)) { + return true; + } + } + return false; + } + + @Override + protected void registerUsage(String aggName, UsageService usageService) { + for (ValuesSourceType valuesSourceType : valuesSourceTypes) { + usageService.addAggregationUsage(aggName, valuesSourceType.value(), stats.get(valuesSourceType)); + } + } + } + public static class Builder { - private Map, AggregatorSupplier>>> aggregatorRegistry = new HashMap<>(); + private final Map> aggregatorRegistry = new HashMap<>(); + /** * Register a ValuesSource to Aggregator mapping. * - * @param aggregationName The name of the family of aggregations, typically found via - * {@link ValuesSourceAggregationBuilder#getType()} - * @param appliesTo A predicate which accepts the resolved {@link ValuesSourceType} and decides if the given aggregator can be - * applied to that type. - * @param aggregatorSupplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator + * @param aggregationName The name of the family of aggregations, typically found via + * {@link ValuesSourceAggregationBuilder#getType()} + * @param registryEntry An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator */ - private void register(String aggregationName, Predicate appliesTo, - AggregatorSupplier aggregatorSupplier) { + private void register(String aggregationName, RegistryEntry registryEntry) { if (aggregatorRegistry.containsKey(aggregationName) == false) { aggregatorRegistry.put(aggregationName, new ArrayList<>()); } - aggregatorRegistry.get(aggregationName).add( new AbstractMap.SimpleEntry<>(appliesTo, aggregatorSupplier)); + aggregatorRegistry.get(aggregationName).add(registryEntry); } /** * Register a ValuesSource to Aggregator mapping. This version provides a convenience method for mappings that only apply to a * single {@link ValuesSourceType}, to allow passing in the type and auto-wrapping it in a predicate - * @param aggregationName The name of the family of aggregations, typically found via - * {@link ValuesSourceAggregationBuilder#getType()} - * @param valuesSourceType The ValuesSourceType this mapping applies to. + * + * @param aggregationName The name of the family of aggregations, typically found via + * {@link ValuesSourceAggregationBuilder#getType()} + * @param valuesSourceType The ValuesSourceType this mapping applies to. * @param aggregatorSupplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator * from the aggregation standard set of parameters */ public void register(String aggregationName, ValuesSourceType valuesSourceType, AggregatorSupplier aggregatorSupplier) { - register(aggregationName, (candidate) -> valuesSourceType.equals(candidate), aggregatorSupplier); + register(aggregationName, new SingleRegistryEntry(aggregatorSupplier, valuesSourceType)); } /** * Register a ValuesSource to Aggregator mapping. This version provides a convenience method for mappings that only apply to a * known list of {@link ValuesSourceType}, to allow passing in the type and auto-wrapping it in a predicate - * @param aggregationName The name of the family of aggregations, typically found via - * {@link ValuesSourceAggregationBuilder#getType()} - * @param valuesSourceTypes The ValuesSourceTypes this mapping applies to. + * + * @param aggregationName The name of the family of aggregations, typically found via + * {@link ValuesSourceAggregationBuilder#getType()} + * @param valuesSourceTypes The ValuesSourceTypes this mapping applies to. * @param aggregatorSupplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator * from the aggregation standard set of parameters */ public void register(String aggregationName, List valuesSourceTypes, AggregatorSupplier aggregatorSupplier) { - register(aggregationName, (candidate) -> { - for (ValuesSourceType valuesSourceType : valuesSourceTypes) { - if (valuesSourceType.equals(candidate)) { - return true; - } - } - return false; - }, aggregatorSupplier); + register(aggregationName, new MultiRegistryEntry(aggregatorSupplier, valuesSourceTypes)); } /** @@ -98,44 +212,45 @@ public void register(String aggregationName, List valuesSource * all about the types of their inputs. Aggregations using this version of registration should not make any other registrations, as * the aggregator registered using this function will be applied in all cases. * - * @param aggregationName The name of the family of aggregations, typically found via - * {@link ValuesSourceAggregationBuilder#getType()} + * @param aggregationName The name of the family of aggregations, typically found via + * {@link ValuesSourceAggregationBuilder#getType()} * @param aggregatorSupplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator * from the aggregation standard set of parameters. */ public void registerAny(String aggregationName, AggregatorSupplier aggregatorSupplier) { - register(aggregationName, (ignored) -> true, aggregatorSupplier); + register(aggregationName, new AnyRegistryEntry(aggregatorSupplier)); } - public ValuesSourceRegistry build() { return new ValuesSourceRegistry(aggregatorRegistry); } } - /** Maps Aggregation names to (ValuesSourceType, Supplier) pairs, keyed by ValuesSourceType */ - private Map, AggregatorSupplier>>> aggregatorRegistry; - public ValuesSourceRegistry(Map, AggregatorSupplier>>> aggregatorRegistry) { + /** + * Maps Aggregation names to RegistryEntry + */ + private final Map> aggregatorRegistry; + + public ValuesSourceRegistry(Map> aggregatorRegistry) { /* - Make an immutatble copy of our input map. Since this is write once, read many, we'll spend a bit of extra time to shape this + Make an immutable copy of our input map. Since this is write once, read many, we'll spend a bit of extra time to shape this into a Map.of(), which is more read optimized than just using a hash map. */ - Map.Entry[] copiedEntries = new Map.Entry[aggregatorRegistry.size()]; + @SuppressWarnings("unchecked") Map.Entry>[] copiedEntries = new Map.Entry[aggregatorRegistry.size()]; int i = 0; - for (Map.Entry, AggregatorSupplier>>> entry : aggregatorRegistry.entrySet()) { + for (Map.Entry> entry : aggregatorRegistry.entrySet()) { String aggName = entry.getKey(); - List, AggregatorSupplier>> values = entry.getValue(); - Map.Entry newEntry = Map.entry(aggName, List.of(values.toArray())); + List values = entry.getValue(); + Map.Entry> newEntry = Map.entry(aggName, List.of(values.toArray(new RegistryEntry[0]))); copiedEntries[i++] = newEntry; } this.aggregatorRegistry = Map.ofEntries(copiedEntries); } - private AggregatorSupplier findMatchingSuppier(ValuesSourceType valuesSourceType, - List, AggregatorSupplier>> supportedTypes) { - for (Map.Entry, AggregatorSupplier> candidate : supportedTypes) { - if (candidate.getKey().test(valuesSourceType)) { - return candidate.getValue(); + private RegistryEntry findMatchingSuppier(ValuesSourceType valuesSourceType, List supportedTypes) { + for (RegistryEntry candidate : supportedTypes) { + if (candidate.appliesTo(valuesSourceType)) { + return candidate; } } return null; @@ -143,19 +258,19 @@ private AggregatorSupplier findMatchingSuppier(ValuesSourceType valuesSourceType public AggregatorSupplier getAggregator(ValuesSourceType valuesSourceType, String aggregationName) { if (aggregationName != null && aggregatorRegistry.containsKey(aggregationName)) { - AggregatorSupplier supplier = findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName)); - if (supplier == null) { + RegistryEntry entry = findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName)); + if (entry == null) { throw new AggregationExecutionException("ValuesSource type " + valuesSourceType.toString() + " is not supported for aggregation" + aggregationName); } - return supplier; + return entry.supplier; } - throw new AggregationExecutionException("Unregistered Aggregation [" + aggregationName + "]"); + throw new AggregationExecutionException("Unregistered Aggregation [" + aggregationName + "]"); } public ValuesSourceType getValuesSourceType(MappedFieldType fieldType, String aggregationName, // TODO: the following arguments are only needed for the legacy case - IndexFieldData indexFieldData, + IndexFieldData indexFieldData, ValueType valueType, ValuesSourceType defaultValuesSourceType) { if (aggregationName != null && aggregatorRegistry.containsKey(aggregationName)) { @@ -185,4 +300,21 @@ && findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName) } } } + + public void incUsage(String aggregationName, ValuesSourceType valuesSourceType) { + if (aggregatorRegistry.get(aggregationName) != null) { + RegistryEntry entry = findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName)); + if (entry != null) { + entry.inc(valuesSourceType); + } + } + } + + public void registerUsage(UsageService usageService) { + for (Map.Entry> mapEntries : aggregatorRegistry.entrySet()) { + for (RegistryEntry entry : mapEntries.getValue()) { + entry.registerUsage(mapEntries.getKey(), usageService); + } + } + } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java index 9c5660ba4656a..2052c69f93b64 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java @@ -98,4 +98,10 @@ ValuesSource replaceMissing(ValuesSource valuesSource, Object rawMissing, DocVal default DocValueFormat getFormatter(String format, ZoneId tz) { return DocValueFormat.RAW; } + + /** + * Returns the name of the Values Source Type for stats purposes + * @return the name of the Values Source Type + */ + String value(); } diff --git a/server/src/main/java/org/elasticsearch/usage/UsageService.java b/server/src/main/java/org/elasticsearch/usage/UsageService.java index df1f53bcbb7c8..609932aa36741 100644 --- a/server/src/main/java/org/elasticsearch/usage/UsageService.java +++ b/server/src/main/java/org/elasticsearch/usage/UsageService.java @@ -46,6 +46,7 @@ import java.util.Locale; import java.util.Map; import java.util.Objects; +import java.util.concurrent.atomic.AtomicLong; /** * A service to monitor usage of Elasticsearch features. @@ -53,10 +54,12 @@ public class UsageService { private final Map handlers; + private final Map> aggs; private final long sinceTime; public UsageService() { this.handlers = new HashMap<>(); + this.aggs = new HashMap<>(); this.sinceTime = System.currentTimeMillis(); } @@ -89,6 +92,14 @@ public void addRestHandler(BaseRestHandler handler) { } } + public void addAggregationUsage(String aggregationName, String valuesSourceType, AtomicLong val) { + Map subAgg = aggs.computeIfAbsent(aggregationName, k -> new HashMap<>()); + if ( subAgg.put(valuesSourceType, val) != null) { + throw new IllegalArgumentException("stats for aggregation [" + aggregationName + "][" + valuesSourceType + + "] already registered"); + } + } + /** * Get the current usage statistics for this node. * @@ -100,8 +111,9 @@ public void addRestHandler(BaseRestHandler handler) { * @return the {@link NodeUsage} representing the usage statistics for this * node */ - public NodeUsage getUsageStats(DiscoveryNode localNode, boolean restActions) { + public NodeUsage getUsageStats(DiscoveryNode localNode, boolean restActions, boolean aggregations) { Map restUsageMap; + Map aggsUsageMap; if (restActions) { restUsageMap = new HashMap<>(); handlers.values().forEach(handler -> { @@ -113,7 +125,24 @@ public NodeUsage getUsageStats(DiscoveryNode localNode, boolean restActions) { } else { restUsageMap = null; } - return new NodeUsage(localNode, System.currentTimeMillis(), sinceTime, restUsageMap); + if (aggregations) { + aggsUsageMap = new HashMap<>(); + aggs.forEach((name, agg) -> { + Map aggUsageMap = new HashMap<>(); + agg.forEach((k, v) -> { + long val = v.get(); + if (val > 0) { + aggUsageMap.put(k, val); + } + }); + if (aggUsageMap.isEmpty() == false) { + aggsUsageMap.put(name, aggUsageMap); + } + }); + } else { + aggsUsageMap = null; + } + return new NodeUsage(localNode, System.currentTimeMillis(), sinceTime, restUsageMap, aggsUsageMap); } } diff --git a/server/src/test/java/org/elasticsearch/usage/UsageServiceTests.java b/server/src/test/java/org/elasticsearch/usage/UsageServiceTests.java index 7c9ac5568aa1c..c4fb7c6ecc6d6 100644 --- a/server/src/test/java/org/elasticsearch/usage/UsageServiceTests.java +++ b/server/src/test/java/org/elasticsearch/usage/UsageServiceTests.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.concurrent.atomic.AtomicLong; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; @@ -125,8 +126,9 @@ public void testRestUsage() throws Exception { handlerF.handleRequest(restRequest, null, null); handlerC.handleRequest(restRequest, null, null); handlerD.handleRequest(restRequest, null, null); - NodeUsage usage = usageService.getUsageStats(discoveryNode, true); + NodeUsage usage = usageService.getUsageStats(discoveryNode, true, false); assertThat(usage.getNode(), sameInstance(discoveryNode)); + assertThat(usage.getAggregationUsage(), nullValue()); Map restUsage = usage.getRestUsage(); assertThat(restUsage, notNullValue()); assertThat(restUsage.size(), equalTo(6)); @@ -137,7 +139,52 @@ public void testRestUsage() throws Exception { assertThat(restUsage.get("e"), equalTo(1L)); assertThat(restUsage.get("f"), equalTo(1L)); - usage = usageService.getUsageStats(discoveryNode, false); + usage = usageService.getUsageStats(discoveryNode, false, false); + assertThat(usage.getNode(), sameInstance(discoveryNode)); + assertThat(usage.getRestUsage(), nullValue()); + assertThat(usage.getAggregationUsage(), nullValue()); + } + + @SuppressWarnings("unchecked") + public void testAggsUsage() throws Exception { + DiscoveryNode discoveryNode = new DiscoveryNode("foo", new TransportAddress(InetAddress.getByName("localhost"), 12345), + Version.CURRENT); + UsageService usageService = new UsageService(); + AtomicLong ax = new AtomicLong(); + AtomicLong ay = new AtomicLong(); + AtomicLong bx = new AtomicLong(); + AtomicLong cx = new AtomicLong(); + AtomicLong by = new AtomicLong(); + AtomicLong az = new AtomicLong(); + + usageService.addAggregationUsage("a", "x", ax); + usageService.addAggregationUsage("a", "y", ay); + usageService.addAggregationUsage("b", "x", bx); + usageService.addAggregationUsage("c", "x", cx); + usageService.addAggregationUsage("b", "y", by); + usageService.addAggregationUsage("a", "z", az); + + ax.set(1); + ay.set(2); + az.set(3); + bx.set(4); + by.set(5); + cx.set(6); + + NodeUsage usage = usageService.getUsageStats(discoveryNode, false, true); + assertThat(usage.getNode(), sameInstance(discoveryNode)); + Map aggsUsage = usage.getAggregationUsage(); + assertThat(aggsUsage, notNullValue()); + assertThat(aggsUsage.size(), equalTo(3)); + assertThat(((Map)aggsUsage.get("a")).get("x"), equalTo(1L)); + assertThat(((Map)aggsUsage.get("a")).get("y"), equalTo(2L)); + assertThat(((Map)aggsUsage.get("a")).get("z"), equalTo(3L)); + assertThat(((Map)aggsUsage.get("b")).get("x"), equalTo(4L)); + assertThat(((Map)aggsUsage.get("b")).get("y"), equalTo(5L)); + assertThat(((Map)aggsUsage.get("c")).get("x"), equalTo(6L)); + + + usage = usageService.getUsageStats(discoveryNode, false, false); assertThat(usage.getNode(), sameInstance(discoveryNode)); assertThat(usage.getRestUsage(), nullValue()); } diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java index 5704b20c867ae..05831535e9eb5 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java @@ -115,6 +115,11 @@ public SortedBinaryDocValues bytesValues(LeafReaderContext context) throws IOExc }; } + @Override + public String value() { + return "geoshape"; + } + @Override public void writeTo(StreamOutput out) throws IOException { From 1cc437c4d456ed734c3f78c2992ab8d86a1a8f43 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Fri, 24 Apr 2020 17:06:32 -0400 Subject: [PATCH 02/16] Refactor to include non value sources aggregations --- .../test/rest/NodeRestUsageIT.java | 10 +- .../index/query/QueryShardContext.java | 7 +- .../java/org/elasticsearch/node/Node.java | 3 +- .../elasticsearch/search/SearchModule.java | 19 +- .../AbstractAggregationBuilder.java | 1 + .../aggregations/AggregatorFactory.java | 5 + .../WeightedAvgAggregationBuilder.java | 5 + .../metrics/WeightedAvgAggregatorFactory.java | 7 + .../support/CoreValuesSourceType.java | 4 + .../ValuesSourceAggregatorFactory.java | 4 + .../support/ValuesSourceConfig.java | 1 - .../support/ValuesSourceRegistry.java | 242 +++++------------- .../support/ValuesSourceType.java | 2 +- .../org/elasticsearch/usage/UsageService.java | 26 +- .../usage/UsageServiceTests.java | 61 ++--- .../xpack/analytics/AnalyticsPlugin.java | 1 + .../support/AnalyticsValuesSourceType.java | 5 + .../ttest/TTestAggregationBuilder.java | 5 + .../ttest/TTestAggregatorFactory.java | 7 + .../support/GeoShapeValuesSourceType.java | 2 +- 20 files changed, 189 insertions(+), 228 deletions(-) diff --git a/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java b/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java index 7835986510336..c5787a460348d 100644 --- a/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java +++ b/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java @@ -19,13 +19,11 @@ package org.elasticsearch.test.rest; +import org.elasticsearch.client.Request; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; -import org.elasticsearch.client.Request; import org.elasticsearch.common.Strings; -import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilders; -import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.builder.SearchSourceBuilder; import java.io.IOException; @@ -161,7 +159,6 @@ public void testAggregationUsage() throws IOException { SearchSourceBuilder searchSource = new SearchSourceBuilder() .aggregation(AggregationBuilders.terms("str_terms").field("str.keyword")) .aggregation(AggregationBuilders.terms("num_terms").field("num")) - .aggregation(AggregationBuilders.terms("script_terms_unknown").script(new Script("10"))) // That will use bytes by default .aggregation(AggregationBuilders.avg("num_avg").field("num")); searchRequest.setJsonEntity(Strings.toString(searchSource)); searchRequest.setJsonEntity(Strings.toString(searchSource)); @@ -172,7 +169,6 @@ public void testAggregationUsage() throws IOException { .aggregation(AggregationBuilders.terms("start").field("start")) .aggregation(AggregationBuilders.avg("num1").field("num")) .aggregation(AggregationBuilders.avg("num2").field("num")) - .aggregation(AggregationBuilders.terms("script_terms_known").script(new Script("10")).userValueTypeHint(ValueType.NUMERIC)) .aggregation(AggregationBuilders.terms("foo").field("foo.keyword")); String r = Strings.toString(searchSource); searchRequest.setJsonEntity(Strings.toString(searchSource)); @@ -189,9 +185,9 @@ public void testAggregationUsage() throws IOException { Map> afterCombinedAggsUsage = getTotalUsage(nodesMap); - assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "terms", "numeric", 2L); + assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "terms", "numeric", 1L); assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "terms", "date", 1L); - assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "terms", "bytes", 3L); + assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "terms", "bytes", 2L); assertDiff(beforeCombinedAggsUsage, afterCombinedAggsUsage, "avg", "numeric", 3L); } diff --git a/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java b/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java index 98db6e5dfb8a0..990c62f303468 100644 --- a/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java +++ b/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java @@ -59,6 +59,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.transport.RemoteClusterAware; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.HashMap; @@ -100,7 +101,7 @@ public class QueryShardContext extends QueryRewriteContext { private boolean allowUnmappedFields; private boolean mapUnmappedFieldAsString; private NestedScope nestedScope; - private ValuesSourceRegistry valuesSourceRegistry; + private final ValuesSourceRegistry valuesSourceRegistry; public QueryShardContext(int shardId, IndexSettings indexSettings, @@ -470,4 +471,8 @@ public SimilarityService getSimilarityService() { public BitsetFilterCache getBitsetFilterCache() { return bitsetFilterCache; } + + public UsageService getUsageService() { + return valuesSourceRegistry.getUsageService(); + } } diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index 7f0bc02315ee5..6c1f5986e5fb8 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -383,8 +383,7 @@ protected Node(final Environment initialEnvironment, IndicesModule indicesModule = new IndicesModule(pluginsService.filterPlugins(MapperPlugin.class)); modules.add(indicesModule); - SearchModule searchModule = new SearchModule(settings, pluginsService.filterPlugins(SearchPlugin.class)); - searchModule.getValuesSourceRegistry().registerUsage(usageService); + SearchModule searchModule = new SearchModule(settings, pluginsService.filterPlugins(SearchPlugin.class), usageService); CircuitBreakerService circuitBreakerService = createCircuitBreakerService(settingsModule.getSettings(), settingsModule.getClusterSettings()); resourcesToClose.add(circuitBreakerService); diff --git a/server/src/main/java/org/elasticsearch/search/SearchModule.java b/server/src/main/java/org/elasticsearch/search/SearchModule.java index 133a6d8516513..ea8d91178dacf 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/server/src/main/java/org/elasticsearch/search/SearchModule.java @@ -249,6 +249,7 @@ import org.elasticsearch.search.suggest.phrase.StupidBackoff; import org.elasticsearch.search.suggest.term.TermSuggestion; import org.elasticsearch.search.suggest.term.TermSuggestionBuilder; +import org.elasticsearch.usage.UsageService; import java.util.ArrayList; import java.util.List; @@ -273,7 +274,8 @@ public class SearchModule { private final Settings settings; private final List namedWriteables = new ArrayList<>(); private final List namedXContents = new ArrayList<>(); - private ValuesSourceRegistry valuesSourceRegistry; + private final ValuesSourceRegistry valuesSourceRegistry; + private final UsageService usageService; /** * Constructs a new SearchModule object @@ -283,8 +285,9 @@ public class SearchModule { * @param settings Current settings * @param plugins List of included {@link SearchPlugin} objects. */ - public SearchModule(Settings settings, List plugins) { + public SearchModule(Settings settings, List plugins, UsageService usageService) { this.settings = settings; + this.usageService = usageService; registerSuggesters(plugins); highlighters = setupHighlighters(settings, plugins); registerScoreFunctions(plugins); @@ -302,6 +305,11 @@ public SearchModule(Settings settings, List plugins) { namedWriteables.addAll(SortValue.namedWriteables()); } + // Temporary for testing + public SearchModule(Settings settings, List plugins) { + this(settings, plugins, new UsageService()); + } + public List getNamedWriteables() { return namedWriteables; } @@ -322,13 +330,14 @@ public Map getHighlighters() { } private ValuesSourceRegistry registerAggregations(List plugins) { - ValuesSourceRegistry.Builder builder = new ValuesSourceRegistry.Builder(); + ValuesSourceRegistry.Builder builder = new ValuesSourceRegistry.Builder(usageService); registerAggregation(new AggregationSpec(AvgAggregationBuilder.NAME, AvgAggregationBuilder::new, AvgAggregationBuilder.PARSER) .addResultReader(InternalAvg::new) .setAggregatorRegistrar(AvgAggregationBuilder::registerAggregators), builder); registerAggregation(new AggregationSpec(WeightedAvgAggregationBuilder.NAME, WeightedAvgAggregationBuilder::new, - WeightedAvgAggregationBuilder.PARSER).addResultReader(InternalWeightedAvg::new), builder); + WeightedAvgAggregationBuilder.PARSER).addResultReader(InternalWeightedAvg::new) + .setAggregatorRegistrar(WeightedAvgAggregationBuilder::registerUsage), builder); registerAggregation(new AggregationSpec(SumAggregationBuilder.NAME, SumAggregationBuilder::new, SumAggregationBuilder.PARSER) .addResultReader(InternalSum::new) .setAggregatorRegistrar(SumAggregationBuilder::registerAggregators), builder); @@ -479,6 +488,8 @@ private void registerAggregation(AggregationSpec spec, ValuesSourceRegistry.Buil Consumer register = spec.getAggregatorRegistrar(); if (register != null) { register.accept(builder); + } else { + usageService.registerAggregationUsage(spec.getName().getPreferredName()); } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/AbstractAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/AbstractAggregationBuilder.java index 9f39c19d4ab48..85fb368e91cbd 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/AbstractAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/AbstractAggregationBuilder.java @@ -137,6 +137,7 @@ public final String getWriteableName() { @Override public final AggregatorFactory build(QueryShardContext queryShardContext, AggregatorFactory parent) throws IOException { AggregatorFactory factory = doBuild(queryShardContext, parent, factoriesBuilder); + queryShardContext.getUsageService().incAggregationUsage(getType(), factory.getStatsSubtype()); return factory; } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java index b308de0327e52..c6101c022a895 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java @@ -32,6 +32,8 @@ import java.io.IOException; import java.util.Map; +import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; + public abstract class AggregatorFactory { public static final class MultiBucketAggregatorWrapper extends Aggregator { @@ -238,4 +240,7 @@ protected static Aggregator asMultiBucketAggregator(final AggregatorFactory fact return new MultiBucketAggregatorWrapper(bigArrays, searchContext, parent, factory, first); } + public String getStatsSubtype() { + return OTHER_SUBTYPE; + } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregationBuilder.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregationBuilder.java index f5183bebc04cc..cdd52115e88a3 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregationBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregationBuilder.java @@ -38,6 +38,7 @@ import org.elasticsearch.search.aggregations.support.MultiValuesSourceParseHelper; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -57,6 +58,10 @@ public class WeightedAvgAggregationBuilder extends MultiValuesSourceAggregationB MultiValuesSourceParseHelper.declareField(WEIGHT_FIELD.getPreferredName(), PARSER, true, false, false); } + public static void registerUsage(ValuesSourceRegistry.Builder builder) { + builder.registerUsage(NAME, CoreValuesSourceType.NUMERIC); + } + public WeightedAvgAggregationBuilder(String name) { super(name); } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregatorFactory.java index f962ce8578877..64d620e1f5f8e 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/WeightedAvgAggregatorFactory.java @@ -32,6 +32,8 @@ import java.io.IOException; import java.util.Map; +import static org.elasticsearch.search.aggregations.metrics.WeightedAvgAggregationBuilder.VALUE_FIELD; + class WeightedAvgAggregatorFactory extends MultiValuesSourceAggregatorFactory { WeightedAvgAggregatorFactory(String name, Map configs, @@ -62,4 +64,9 @@ protected Aggregator doCreateInternal(SearchContext searchContext, } return new WeightedAvgAggregator(name, numericMultiVS, format, searchContext, parent, metadata); } + + @Override + public String getStatsSubtype() { + return configs.get(VALUE_FIELD.getPreferredName()).valueSourceType().typeName(); + } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/CoreValuesSourceType.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/CoreValuesSourceType.java index 0c3ccbc23c475..0149b22a81b41 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/CoreValuesSourceType.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/CoreValuesSourceType.java @@ -288,4 +288,8 @@ public String value() { return name().toLowerCase(Locale.ROOT); } + @Override + public String typeName() { + return value(); + } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregatorFactory.java index 6d03d6f056b69..cfbea3010e6f6 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregatorFactory.java @@ -59,4 +59,8 @@ protected abstract Aggregator doCreateInternal(ValuesSource valuesSource, boolean collectsFromSingleBucket, Map metadata) throws IOException; + @Override + public String getStatsSubtype() { + return config.valueSourceType().typeName(); + } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java index 915b8bc700ab7..6cd62a0d2a622 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java @@ -157,7 +157,6 @@ private static ValuesSourceConfig internalResolve(QueryShardContext context, aggregationScript = createScript(script, context); } } - context.getValuesSourceRegistry().incUsage(aggregationName, valuesSourceType); config = new ValuesSourceConfig(valuesSourceType, fieldType, unmapped, aggregationScript, scriptValueType , context); config.format(resolveFormat(format, valuesSourceType, timeZone, fieldType)); config.missing(missing); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java index 42f9a1c5d62c3..426c70ddcb562 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java @@ -28,183 +28,80 @@ import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.usage.UsageService; +import java.util.AbstractMap; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicLong; +import java.util.function.Predicate; /** * {@link ValuesSourceRegistry} holds the mapping from {@link ValuesSourceType}s to {@link AggregatorSupplier}s. DO NOT directly * instantiate this class, instead get an already-configured copy from {@link QueryShardContext#getValuesSourceRegistry()}, or (in the case * of some test scenarios only) directly from {@link SearchModule#getValuesSourceRegistry()} + * */ public class ValuesSourceRegistry { - /** - * Base class for the aggregation registration. - *

- * TODO: we can get rid of this entire hierarchy and shrink it to a single class or even Tuple when we get rid of registerAny - */ - public abstract static class RegistryEntry { - - private final AggregatorSupplier supplier; - - /** - * @param supplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator - * from the aggregation standard set of parameters - */ - protected RegistryEntry(AggregatorSupplier supplier) { - this.supplier = supplier; - } - - /** - * Returns true if this aggregation can be applied to the given value source type, false otherwise - */ - protected abstract boolean appliesTo(ValuesSourceType type); - - /** - * Increments usage counter for the given aggregetion - */ - protected abstract void inc(ValuesSourceType type); - - /** - * Registers the aggregation usage with the usage service - */ - protected abstract void registerUsage(String aggName, UsageService usageService); - - } - - private static class AnyRegistryEntry extends RegistryEntry { - private final AtomicLong stats; - - private AnyRegistryEntry(AggregatorSupplier supplier) { - super(supplier); - this.stats = new AtomicLong(); - } - - @Override - protected void inc(ValuesSourceType type) { - stats.incrementAndGet(); - } - - @Override - protected void registerUsage(String aggName, UsageService usageService) { - usageService.addAggregationUsage(aggName, "*", stats); - } - - @Override - protected boolean appliesTo(ValuesSourceType type) { - return true; - } - } - - - private static class SingleRegistryEntry extends RegistryEntry { - private final AtomicLong stats; - private final ValuesSourceType type; - - private SingleRegistryEntry(AggregatorSupplier supplier, ValuesSourceType type) { - super(supplier); - this.stats = new AtomicLong(); - this.type = type; - } - - @Override - protected void inc(ValuesSourceType type) { - stats.incrementAndGet(); - } - - @Override - protected void registerUsage(String aggName, UsageService usageService) { - usageService.addAggregationUsage(aggName, type.value(), stats); - } - - @Override - protected boolean appliesTo(ValuesSourceType type) { - return this.type == type; - } - } - - private static class MultiRegistryEntry extends RegistryEntry { - private final Map stats; - private final List valuesSourceTypes; - - private MultiRegistryEntry(AggregatorSupplier supplier, List valuesSourceTypes) { - super(supplier); - this.stats = new HashMap<>(); - this.valuesSourceTypes = valuesSourceTypes; - for (ValuesSourceType valuesSourceType : valuesSourceTypes) { - AtomicLong stat = new AtomicLong(); - stats.put(valuesSourceType, stat); - } - } - - @Override - protected void inc(ValuesSourceType type) { - stats.get(type).incrementAndGet(); - } - - @Override - protected boolean appliesTo(ValuesSourceType type) { - for (ValuesSourceType valuesSourceType : valuesSourceTypes) { - if (valuesSourceType.equals(type)) { - return true; - } - } - return false; - } - - @Override - protected void registerUsage(String aggName, UsageService usageService) { - for (ValuesSourceType valuesSourceType : valuesSourceTypes) { - usageService.addAggregationUsage(aggName, valuesSourceType.value(), stats.get(valuesSourceType)); - } - } - } public static class Builder { - private final Map> aggregatorRegistry = new HashMap<>(); + private final Map, AggregatorSupplier>>> aggregatorRegistry = new HashMap<>(); + private final UsageService usageService; + public Builder(UsageService usageService) { + this.usageService = usageService; + } /** * Register a ValuesSource to Aggregator mapping. * - * @param aggregationName The name of the family of aggregations, typically found via - * {@link ValuesSourceAggregationBuilder#getType()} - * @param registryEntry An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator + * @param aggregationName The name of the family of aggregations, typically found via + * {@link ValuesSourceAggregationBuilder#getType()} + * @param appliesTo A predicate which accepts the resolved {@link ValuesSourceType} and decides if the given aggregator can be + * applied to that type. + * @param aggregatorSupplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator */ - private void register(String aggregationName, RegistryEntry registryEntry) { + private void register(String aggregationName, Predicate appliesTo, + AggregatorSupplier aggregatorSupplier) { if (aggregatorRegistry.containsKey(aggregationName) == false) { aggregatorRegistry.put(aggregationName, new ArrayList<>()); } - aggregatorRegistry.get(aggregationName).add(registryEntry); + aggregatorRegistry.get(aggregationName).add( new AbstractMap.SimpleEntry<>(appliesTo, aggregatorSupplier)); } /** * Register a ValuesSource to Aggregator mapping. This version provides a convenience method for mappings that only apply to a * single {@link ValuesSourceType}, to allow passing in the type and auto-wrapping it in a predicate - * - * @param aggregationName The name of the family of aggregations, typically found via - * {@link ValuesSourceAggregationBuilder#getType()} - * @param valuesSourceType The ValuesSourceType this mapping applies to. + * @param aggregationName The name of the family of aggregations, typically found via + * {@link ValuesSourceAggregationBuilder#getType()} + * @param valuesSourceType The ValuesSourceType this mapping applies to. * @param aggregatorSupplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator * from the aggregation standard set of parameters */ public void register(String aggregationName, ValuesSourceType valuesSourceType, AggregatorSupplier aggregatorSupplier) { - register(aggregationName, new SingleRegistryEntry(aggregatorSupplier, valuesSourceType)); + register(aggregationName, valuesSourceType::equals, aggregatorSupplier); + registerUsage(aggregationName, valuesSourceType); } /** * Register a ValuesSource to Aggregator mapping. This version provides a convenience method for mappings that only apply to a * known list of {@link ValuesSourceType}, to allow passing in the type and auto-wrapping it in a predicate - * - * @param aggregationName The name of the family of aggregations, typically found via - * {@link ValuesSourceAggregationBuilder#getType()} - * @param valuesSourceTypes The ValuesSourceTypes this mapping applies to. + * @param aggregationName The name of the family of aggregations, typically found via + * {@link ValuesSourceAggregationBuilder#getType()} + * @param valuesSourceTypes The ValuesSourceTypes this mapping applies to. * @param aggregatorSupplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator * from the aggregation standard set of parameters */ public void register(String aggregationName, List valuesSourceTypes, AggregatorSupplier aggregatorSupplier) { - register(aggregationName, new MultiRegistryEntry(aggregatorSupplier, valuesSourceTypes)); + register(aggregationName, (candidate) -> { + for (ValuesSourceType valuesSourceType : valuesSourceTypes) { + if (valuesSourceType.equals(candidate)) { + return true; + } + } + return false; + }, aggregatorSupplier); + for (ValuesSourceType valuesSourceType : valuesSourceTypes) { + registerUsage(aggregationName, valuesSourceType); + } } /** @@ -212,45 +109,51 @@ public void register(String aggregationName, List valuesSource * all about the types of their inputs. Aggregations using this version of registration should not make any other registrations, as * the aggregator registered using this function will be applied in all cases. * - * @param aggregationName The name of the family of aggregations, typically found via - * {@link ValuesSourceAggregationBuilder#getType()} + * @param aggregationName The name of the family of aggregations, typically found via + * {@link ValuesSourceAggregationBuilder#getType()} * @param aggregatorSupplier An Aggregation-specific specialization of AggregatorSupplier which will construct the mapped aggregator * from the aggregation standard set of parameters. */ public void registerAny(String aggregationName, AggregatorSupplier aggregatorSupplier) { - register(aggregationName, new AnyRegistryEntry(aggregatorSupplier)); + register(aggregationName, (ignored) -> true, aggregatorSupplier); + // We are not registering usage of any + } + + public void registerUsage(String aggregationName, ValuesSourceType valuesSourceType) { + usageService.registerAggregationUsage(aggregationName, valuesSourceType.typeName()); } public ValuesSourceRegistry build() { - return new ValuesSourceRegistry(aggregatorRegistry); + return new ValuesSourceRegistry(aggregatorRegistry, usageService); } } - /** - * Maps Aggregation names to RegistryEntry - */ - private final Map> aggregatorRegistry; - - public ValuesSourceRegistry(Map> aggregatorRegistry) { + /** Maps Aggregation names to (ValuesSourceType, Supplier) pairs, keyed by ValuesSourceType */ + private final Map, AggregatorSupplier>>> aggregatorRegistry; + private final UsageService usageService; + public ValuesSourceRegistry(Map, AggregatorSupplier>>> aggregatorRegistry, + UsageService usageService) { /* - Make an immutable copy of our input map. Since this is write once, read many, we'll spend a bit of extra time to shape this + Make an immutatble copy of our input map. Since this is write once, read many, we'll spend a bit of extra time to shape this into a Map.of(), which is more read optimized than just using a hash map. */ - @SuppressWarnings("unchecked") Map.Entry>[] copiedEntries = new Map.Entry[aggregatorRegistry.size()]; + Map.Entry[] copiedEntries = new Map.Entry[aggregatorRegistry.size()]; int i = 0; - for (Map.Entry> entry : aggregatorRegistry.entrySet()) { + for (Map.Entry, AggregatorSupplier>>> entry : aggregatorRegistry.entrySet()) { String aggName = entry.getKey(); - List values = entry.getValue(); - Map.Entry> newEntry = Map.entry(aggName, List.of(values.toArray(new RegistryEntry[0]))); + List, AggregatorSupplier>> values = entry.getValue(); + Map.Entry newEntry = Map.entry(aggName, List.of(values.toArray())); copiedEntries[i++] = newEntry; } this.aggregatorRegistry = Map.ofEntries(copiedEntries); + this.usageService = usageService; } - private RegistryEntry findMatchingSuppier(ValuesSourceType valuesSourceType, List supportedTypes) { - for (RegistryEntry candidate : supportedTypes) { - if (candidate.appliesTo(valuesSourceType)) { - return candidate; + private AggregatorSupplier findMatchingSuppier(ValuesSourceType valuesSourceType, + List, AggregatorSupplier>> supportedTypes) { + for (Map.Entry, AggregatorSupplier> candidate : supportedTypes) { + if (candidate.getKey().test(valuesSourceType)) { + return candidate.getValue(); } } return null; @@ -258,14 +161,14 @@ private RegistryEntry findMatchingSuppier(ValuesSourceType valuesSourceType, Lis public AggregatorSupplier getAggregator(ValuesSourceType valuesSourceType, String aggregationName) { if (aggregationName != null && aggregatorRegistry.containsKey(aggregationName)) { - RegistryEntry entry = findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName)); - if (entry == null) { + AggregatorSupplier supplier = findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName)); + if (supplier == null) { throw new AggregationExecutionException("ValuesSource type " + valuesSourceType.toString() + " is not supported for aggregation" + aggregationName); } - return entry.supplier; + return supplier; } - throw new AggregationExecutionException("Unregistered Aggregation [" + aggregationName + "]"); + throw new AggregationExecutionException("Unregistered Aggregation [" + aggregationName + "]"); } public ValuesSourceType getValuesSourceType(MappedFieldType fieldType, String aggregationName, @@ -301,20 +204,7 @@ && findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName) } } - public void incUsage(String aggregationName, ValuesSourceType valuesSourceType) { - if (aggregatorRegistry.get(aggregationName) != null) { - RegistryEntry entry = findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName)); - if (entry != null) { - entry.inc(valuesSourceType); - } - } - } - - public void registerUsage(UsageService usageService) { - for (Map.Entry> mapEntries : aggregatorRegistry.entrySet()) { - for (RegistryEntry entry : mapEntries.getValue()) { - entry.registerUsage(mapEntries.getKey(), usageService); - } - } + public UsageService getUsageService() { + return usageService; } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java index 2052c69f93b64..1e858528b7399 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceType.java @@ -103,5 +103,5 @@ default DocValueFormat getFormatter(String format, ZoneId tz) { * Returns the name of the Values Source Type for stats purposes * @return the name of the Values Source Type */ - String value(); + String typeName(); } diff --git a/server/src/main/java/org/elasticsearch/usage/UsageService.java b/server/src/main/java/org/elasticsearch/usage/UsageService.java index 609932aa36741..8e3c23c725830 100644 --- a/server/src/main/java/org/elasticsearch/usage/UsageService.java +++ b/server/src/main/java/org/elasticsearch/usage/UsageService.java @@ -46,7 +46,7 @@ import java.util.Locale; import java.util.Map; import java.util.Objects; -import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.LongAdder; /** * A service to monitor usage of Elasticsearch features. @@ -54,7 +54,7 @@ public class UsageService { private final Map handlers; - private final Map> aggs; + private final Map> aggs; private final long sinceTime; public UsageService() { @@ -92,14 +92,28 @@ public void addRestHandler(BaseRestHandler handler) { } } - public void addAggregationUsage(String aggregationName, String valuesSourceType, AtomicLong val) { - Map subAgg = aggs.computeIfAbsent(aggregationName, k -> new HashMap<>()); - if ( subAgg.put(valuesSourceType, val) != null) { + public static final String OTHER_SUBTYPE = "other"; + + public void registerAggregationUsage(String aggregationName) { + registerAggregationUsage(aggregationName, OTHER_SUBTYPE); + } + + public void registerAggregationUsage(String aggregationName, String valuesSourceType) { + Map subAgg = aggs.computeIfAbsent(aggregationName, k -> new HashMap<>()); + if ( subAgg.put(valuesSourceType, new LongAdder()) != null) { throw new IllegalArgumentException("stats for aggregation [" + aggregationName + "][" + valuesSourceType + "] already registered"); } } + public void incAggregationUsage(String aggregationName, String valuesSourceType) { + Map valuesSourceMap = aggs.get(aggregationName); + // Not all aggs register their usage at the moment + if (valuesSourceMap != null) { + valuesSourceMap.get(valuesSourceType).increment(); + } + } + /** * Get the current usage statistics for this node. * @@ -130,7 +144,7 @@ public NodeUsage getUsageStats(DiscoveryNode localNode, boolean restActions, boo aggs.forEach((name, agg) -> { Map aggUsageMap = new HashMap<>(); agg.forEach((k, v) -> { - long val = v.get(); + long val = v.longValue(); if (val > 0) { aggUsageMap.put(k, val); } diff --git a/server/src/test/java/org/elasticsearch/usage/UsageServiceTests.java b/server/src/test/java/org/elasticsearch/usage/UsageServiceTests.java index c4fb7c6ecc6d6..b1058c93b2279 100644 --- a/server/src/test/java/org/elasticsearch/usage/UsageServiceTests.java +++ b/server/src/test/java/org/elasticsearch/usage/UsageServiceTests.java @@ -34,8 +34,8 @@ import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.concurrent.atomic.AtomicLong; +import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; @@ -97,7 +97,7 @@ public void testHandlersWithConflictingNamesButDifferentInstances() { public void testRestUsage() throws Exception { DiscoveryNode discoveryNode = new DiscoveryNode("foo", new TransportAddress(InetAddress.getByName("localhost"), 12345), - Version.CURRENT); + Version.CURRENT); RestRequest restRequest = new FakeRestRequest(); BaseRestHandler handlerA = new MockRestHandler("a"); BaseRestHandler handlerB = new MockRestHandler("b"); @@ -150,39 +150,42 @@ public void testAggsUsage() throws Exception { DiscoveryNode discoveryNode = new DiscoveryNode("foo", new TransportAddress(InetAddress.getByName("localhost"), 12345), Version.CURRENT); UsageService usageService = new UsageService(); - AtomicLong ax = new AtomicLong(); - AtomicLong ay = new AtomicLong(); - AtomicLong bx = new AtomicLong(); - AtomicLong cx = new AtomicLong(); - AtomicLong by = new AtomicLong(); - AtomicLong az = new AtomicLong(); - - usageService.addAggregationUsage("a", "x", ax); - usageService.addAggregationUsage("a", "y", ay); - usageService.addAggregationUsage("b", "x", bx); - usageService.addAggregationUsage("c", "x", cx); - usageService.addAggregationUsage("b", "y", by); - usageService.addAggregationUsage("a", "z", az); - - ax.set(1); - ay.set(2); - az.set(3); - bx.set(4); - by.set(5); - cx.set(6); + + usageService.registerAggregationUsage("a", "x"); + usageService.registerAggregationUsage("a", "y"); + usageService.registerAggregationUsage("b", "x"); + usageService.registerAggregationUsage("c"); + usageService.registerAggregationUsage("b", "y"); + usageService.registerAggregationUsage("a", "z"); + + usageService.incAggregationUsage("a", "x"); + for (int i = 0; i < 2; i++) { + usageService.incAggregationUsage("a", "y"); + } + for (int i = 0; i < 3; i++) { + usageService.incAggregationUsage("a", "z"); + } + for (int i = 0; i < 4; i++) { + usageService.incAggregationUsage("b", "x"); + } + for (int i = 0; i < 5; i++) { + usageService.incAggregationUsage("b", "y"); + } + for (int i = 0; i < 6; i++) { + usageService.incAggregationUsage("c", OTHER_SUBTYPE); + } NodeUsage usage = usageService.getUsageStats(discoveryNode, false, true); assertThat(usage.getNode(), sameInstance(discoveryNode)); Map aggsUsage = usage.getAggregationUsage(); assertThat(aggsUsage, notNullValue()); assertThat(aggsUsage.size(), equalTo(3)); - assertThat(((Map)aggsUsage.get("a")).get("x"), equalTo(1L)); - assertThat(((Map)aggsUsage.get("a")).get("y"), equalTo(2L)); - assertThat(((Map)aggsUsage.get("a")).get("z"), equalTo(3L)); - assertThat(((Map)aggsUsage.get("b")).get("x"), equalTo(4L)); - assertThat(((Map)aggsUsage.get("b")).get("y"), equalTo(5L)); - assertThat(((Map)aggsUsage.get("c")).get("x"), equalTo(6L)); - + assertThat(((Map) aggsUsage.get("a")).get("x"), equalTo(1L)); + assertThat(((Map) aggsUsage.get("a")).get("y"), equalTo(2L)); + assertThat(((Map) aggsUsage.get("a")).get("z"), equalTo(3L)); + assertThat(((Map) aggsUsage.get("b")).get("x"), equalTo(4L)); + assertThat(((Map) aggsUsage.get("b")).get("y"), equalTo(5L)); + assertThat(((Map) aggsUsage.get("c")).get(OTHER_SUBTYPE), equalTo(6L)); usage = usageService.getUsageStats(discoveryNode, false, false); assertThat(usage.getNode(), sameInstance(discoveryNode)); diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java index 10f0e6af4c120..8d1db67c739fb 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/AnalyticsPlugin.java @@ -105,6 +105,7 @@ public List getAggregations() { TTestAggregationBuilder::new, usage.track(AnalyticsStatsAction.Item.T_TEST, checkLicense(TTestAggregationBuilder.PARSER))) .addResultReader(InternalTTest::new) + .setAggregatorRegistrar(TTestAggregationBuilder::registerUsage) ); } diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/aggregations/support/AnalyticsValuesSourceType.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/aggregations/support/AnalyticsValuesSourceType.java index 8ff07fda257b5..fbc7d530a844e 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/aggregations/support/AnalyticsValuesSourceType.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/aggregations/support/AnalyticsValuesSourceType.java @@ -56,4 +56,9 @@ public static ValuesSourceType fromString(String name) { public String value() { return name().toLowerCase(Locale.ROOT); } + + @Override + public String typeName() { + return value(); + } } diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilder.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilder.java index caffdf4233b4d..ff1307969dca5 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilder.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilder.java @@ -26,6 +26,7 @@ import org.elasticsearch.search.aggregations.support.MultiValuesSourceParseHelper; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -54,6 +55,10 @@ public class TTestAggregationBuilder extends MultiValuesSourceAggregationBuilder private int tails = 2; + public static void registerUsage(ValuesSourceRegistry.Builder builder) { + builder.registerUsage(NAME, CoreValuesSourceType.NUMERIC); + } + public TTestAggregationBuilder(String name) { super(name); } diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorFactory.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorFactory.java index c960b76a8135e..2c91d5a2475e6 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorFactory.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorFactory.java @@ -26,6 +26,8 @@ import java.io.IOException; import java.util.Map; +import static org.elasticsearch.xpack.analytics.ttest.TTestAggregationBuilder.A_FIELD; + class TTestAggregatorFactory extends MultiValuesSourceAggregatorFactory { private final TTestType testType; @@ -118,4 +120,9 @@ public Weight getWeight(Query filter) { } return null; } + + @Override + public String getStatsSubtype() { + return configs.get(A_FIELD.getPreferredName()).scriptValueType().name(); + } } diff --git a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java index 05831535e9eb5..73f00f5660eeb 100644 --- a/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java +++ b/x-pack/plugin/spatial/src/main/java/org/elasticsearch/xpack/spatial/search/aggregations/support/GeoShapeValuesSourceType.java @@ -116,7 +116,7 @@ public SortedBinaryDocValues bytesValues(LeafReaderContext context) throws IOExc } @Override - public String value() { + public String typeName() { return "geoshape"; } From 9c8510a63e720cb49e09ba2ae78e34f0663c4c4d Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Mon, 27 Apr 2020 09:48:09 -0400 Subject: [PATCH 03/16] Fix reported values source type for parent and children aggs --- .../join/aggregations/ChildrenAggregatorFactory.java | 8 ++++++++ .../join/aggregations/ParentAggregatorFactory.java | 8 ++++++++ .../main/java/org/elasticsearch/usage/UsageService.java | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregatorFactory.java b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregatorFactory.java index 078c1015420bf..c453a67861634 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregatorFactory.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregatorFactory.java @@ -36,6 +36,8 @@ import java.io.IOException; import java.util.Map; +import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; + public class ChildrenAggregatorFactory extends ValuesSourceAggregatorFactory { private final Query parentFilter; @@ -84,4 +86,10 @@ protected Aggregator doCreateInternal(ValuesSource rawValuesSource, return asMultiBucketAggregator(this, searchContext, parent); } } + + @Override + public String getStatsSubtype() { + // Child Aggregation is registered in non-standard way, so it might return child's values type + return OTHER_SUBTYPE; + } } diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregatorFactory.java b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregatorFactory.java index 8ddc2b1c56bb5..99841510f1560 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregatorFactory.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregatorFactory.java @@ -36,6 +36,8 @@ import java.io.IOException; import java.util.Map; +import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; + public class ParentAggregatorFactory extends ValuesSourceAggregatorFactory { private final Query parentFilter; @@ -85,4 +87,10 @@ protected Aggregator doCreateInternal(ValuesSource rawValuesSource, return asMultiBucketAggregator(this, searchContext, children); } } + + @Override + public String getStatsSubtype() { + // Parent Aggregation is registered in non-standard way + return OTHER_SUBTYPE; + } } diff --git a/server/src/main/java/org/elasticsearch/usage/UsageService.java b/server/src/main/java/org/elasticsearch/usage/UsageService.java index 8e3c23c725830..7f531581ca9d6 100644 --- a/server/src/main/java/org/elasticsearch/usage/UsageService.java +++ b/server/src/main/java/org/elasticsearch/usage/UsageService.java @@ -108,7 +108,7 @@ public void registerAggregationUsage(String aggregationName, String valuesSource public void incAggregationUsage(String aggregationName, String valuesSourceType) { Map valuesSourceMap = aggs.get(aggregationName); - // Not all aggs register their usage at the moment + // Not all aggs register their usage at the moment we also don't register them in test context if (valuesSourceMap != null) { valuesSourceMap.get(valuesSourceType).increment(); } From 62074972fcae3b277cdcd3c7b8ee2d78a0b471a4 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Mon, 27 Apr 2020 10:21:11 -0400 Subject: [PATCH 04/16] Refactor SearchModule constructor --- .../client/ESRestHighLevelClientTestCase.java | 4 +++- .../client/MLRequestConvertersTests.java | 3 ++- .../client/TransformRequestConvertersTests.java | 3 ++- .../client/core/CountRequestTests.java | 3 ++- .../client/eql/EqlSearchRequestTests.java | 3 ++- .../ml/EvaluateDataFrameRequestTests.java | 3 ++- .../ml/PutDataFrameAnalyticsRequestTests.java | 3 ++- .../DataFrameAnalyticsConfigTests.java | 3 ++- .../DataFrameAnalyticsSourceTests.java | 3 ++- .../client/ml/dataframe/QueryConfigTests.java | 3 ++- .../NamedXContentObjectHelperTests.java | 3 ++- .../ml/inference/TrainedModelConfigTests.java | 3 ++- .../inference/TrainedModelDefinitionTests.java | 3 ++- .../trainedmodel/ensemble/EnsembleTests.java | 3 ++- .../ml/job/config/AnalysisConfigTests.java | 3 ++- .../client/ml/job/config/JobTests.java | 3 ++- .../transform/GetTransformResponseTests.java | 3 ++- .../transform/PreviewTransformRequestTests.java | 3 ++- .../transform/PutTransformRequestTests.java | 3 ++- .../UpdateDataFrameTransformResponseTests.java | 3 ++- .../transform/UpdateTransformRequestTests.java | 3 ++- .../transform/transforms/QueryConfigTests.java | 3 ++- .../transform/transforms/SourceConfigTests.java | 3 ++- .../transforms/TransformConfigTests.java | 5 +++-- .../transforms/TransformConfigUpdateTests.java | 3 ++- .../pivot/AggregationConfigTests.java | 3 ++- .../transforms/pivot/PivotConfigTests.java | 3 ++- .../action/PainlessExecuteRequestTests.java | 6 ++++-- .../percolator/QueryBuilderStoreTests.java | 5 +++-- .../index/rankeval/RatedRequestsTests.java | 5 +++-- .../upgrades/QueryBuilderBWCIT.java | 3 ++- .../org/elasticsearch/search/SearchModule.java | 8 ++------ .../action/ShardValidateQueryRequestTests.java | 3 ++- .../ClusterSearchShardsResponseTests.java | 3 ++- .../action/explain/ExplainRequestTests.java | 3 ++- .../search/SearchPhaseControllerTests.java | 3 ++- .../action/search/SearchResponseTests.java | 3 ++- .../index/query/AbstractQueryBuilderTests.java | 3 ++- .../index/query/InnerHitBuilderTests.java | 3 ++- .../index/reindex/ReindexRequestTests.java | 5 +++-- .../rest/action/RestActionsTests.java | 3 ++- .../search/AbstractSearchTestCase.java | 3 ++- .../elasticsearch/search/SearchModuleTests.java | 16 +++++++++------- .../search/SearchSortValuesAndFormatsTests.java | 3 ++- .../AggregatorFactoriesBuilderTests.java | 3 ++- .../aggregations/AggregatorFactoriesTests.java | 3 ++- .../aggregations/InternalAggregationsTests.java | 3 ++- .../significant/SignificanceHeuristicTests.java | 6 ++++-- .../WeightedAvgAggregationBuilderTests.java | 3 ++- .../MultiValuesSourceFieldConfigTests.java | 7 +++++-- .../search/collapse/CollapseBuilderTests.java | 3 ++- .../highlight/HighlightBuilderTests.java | 3 ++- .../search/query/QuerySearchResultTests.java | 3 ++- .../rescore/QueryRescorerBuilderTests.java | 3 ++- .../search/sort/AbstractSortTestCase.java | 3 ++- .../search/sort/NestedSortBuilderTests.java | 3 ++- .../search/sort/SortBuilderTests.java | 3 ++- .../AbstractSuggestionBuilderTestCase.java | 3 ++- .../search/suggest/SuggestBuilderTests.java | 3 ++- .../search/suggest/SuggestTests.java | 3 ++- .../search/aggregations/AggregatorTestCase.java | 3 ++- .../BasePipelineAggregationTestCase.java | 3 ++- .../test/AbstractBuilderTestCase.java | 3 ++- .../test/InternalAggregationTestCase.java | 3 ++- .../ttest/TTestAggregationBuilderTests.java | 6 ++++-- .../xpack/search/AsyncSearchResponseTests.java | 3 ++- .../EvaluateDataFrameActionRequestTests.java | 5 +++-- ...etDataFrameAnalyticsActionResponseTests.java | 5 +++-- .../action/GetDatafeedsActionResponseTests.java | 3 ++- ...PutDataFrameAnalyticsActionRequestTests.java | 5 +++-- ...utDataFrameAnalyticsActionResponseTests.java | 3 ++- .../action/PutDatafeedActionRequestTests.java | 5 +++-- .../action/PutDatafeedActionResponseTests.java | 3 ++- .../UpdateDatafeedActionRequestTests.java | 5 +++-- .../core/ml/datafeed/AggProviderTests.java | 7 ++++--- .../core/ml/datafeed/DatafeedConfigTests.java | 9 +++++---- .../core/ml/datafeed/DatafeedUpdateTests.java | 7 ++++--- .../DataFrameAnalyticsConfigTests.java | 5 +++-- .../DataFrameAnalyticsSourceTests.java | 5 +++-- .../ml/inference/NamedXContentObjectsTests.java | 3 ++- .../ml/inference/TrainedModelConfigTests.java | 3 ++- .../inference/TrainedModelDefinitionTests.java | 3 ++- .../langident/LangIdentNeuralNetworkTests.java | 3 ++- .../utils/NamedXContentObjectHelperTests.java | 3 ++- .../xpack/core/ml/utils/QueryProviderTests.java | 5 +++-- .../utils/XContentObjectTransformerTests.java | 3 ++- .../AbstractSerializingTransformTestCase.java | 5 +++-- ...bstractWireSerializingTransformTestCase.java | 3 ++- .../action/PutTransformActionRequestTests.java | 3 ++- .../AbstractSerializingTransformTestCase.java | 3 ++- .../deprecation/MlDeprecationChecksTests.java | 5 +++-- .../action/EnrichShardMultiSearchAction.java | 5 ++++- .../xpack/eql/action/EqlRequestParserTests.java | 3 ++- .../xpack/eql/action/EqlSearchRequestTests.java | 5 +++-- .../ml/integration/MlNativeIntegTestCase.java | 5 +++-- .../MlConfigMigrationEligibilityCheckTests.java | 3 ++- .../xpack/ml/MlConfigMigratorTests.java | 3 ++- .../elasticsearch/xpack/ml/MlMetadataTests.java | 5 +++-- .../xpack/ml/MlSingleNodeTestCase.java | 3 ++- .../TransportStartDatafeedActionTests.java | 3 ++- .../ml/datafeed/DatafeedJobValidatorTests.java | 3 ++- .../DelayedDataDetectorFactoryTests.java | 3 ++- .../extractor/DataExtractorFactoryTests.java | 3 ++- .../AggregationDataExtractorFactoryTests.java | 3 ++- .../ChunkedDataExtractorFactoryTests.java | 3 ++- .../process/results/AnalyticsResultTests.java | 3 ++- .../ml/integration/ModelInferenceActionIT.java | 3 ++- .../ml/integration/TrainedModelProviderIT.java | 3 ++- .../xpack/ml/job/JobManagerTests.java | 3 ++- .../rollup/RollupRequestTranslationTests.java | 3 ++- .../xpack/rollup/action/SearchActionTests.java | 3 ++- .../xpack/sql/action/SqlQueryRequestTests.java | 17 +++++++++-------- .../sql/action/SqlTranslateRequestTests.java | 5 +++-- .../integration/TransformIntegTestCase.java | 7 ++++--- .../integration/TransformInternalIndexIT.java | 4 +++- .../transforms/pivot/AggregationsTests.java | 4 +++- .../transform/transforms/pivot/PivotTests.java | 3 ++- .../test/integration/SearchInputTests.java | 3 ++- 118 files changed, 291 insertions(+), 167 deletions(-) diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java index 174c98f3642df..f4c484bb8f0dc 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java @@ -43,6 +43,7 @@ import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.rest.ESRestTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.Before; @@ -144,7 +145,8 @@ protected interface AsyncMethodNoRequest { private static class HighLevelClient extends RestHighLevelClient { private HighLevelClient(RestClient restClient) { - super(restClient, (client) -> {}, new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + super(restClient, (client) -> {}, new SearchModule(Settings.EMPTY, Collections.emptyList(), + new UsageService()).getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java index 86b14a7e8a745..b3d5025cf65f4 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java @@ -115,6 +115,7 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -1085,7 +1086,7 @@ public void testSetUpgradeMode() { @Override protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); namedXContent.addAll(new MlEvaluationNamedXContentProvider().getNamedXContentParsers()); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/TransformRequestConvertersTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/TransformRequestConvertersTests.java index 9d25f302b8c41..853c2d54d5093 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/TransformRequestConvertersTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/TransformRequestConvertersTests.java @@ -44,6 +44,7 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -60,7 +61,7 @@ public class TransformRequestConvertersTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java index de6eea6b00354..d60177f766af4 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java @@ -31,6 +31,7 @@ import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.builder.SearchSourceBuilder; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -67,7 +68,7 @@ protected void assertInstances(QueryBuilder serverInstance, CountRequest clientT @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of(), new UsageService()).getNamedXContents()); } public void testIllegalArguments() { diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java index 66b8b334d2dcb..46d5b5e4cf99a 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java @@ -25,6 +25,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.List; @@ -85,6 +86,6 @@ protected void assertInstances(org.elasticsearch.xpack.eql.action.EqlSearchReque @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of(), new UsageService()).getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/EvaluateDataFrameRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/EvaluateDataFrameRequestTests.java index 8cdeaf68ed648..beb59be19222e 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/EvaluateDataFrameRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/EvaluateDataFrameRequestTests.java @@ -29,6 +29,7 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -77,7 +78,7 @@ protected Predicate getRandomFieldsExcludeFilter() { @Override protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); namedXContent.addAll(new MlEvaluationNamedXContentProvider().getNamedXContentParsers()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/PutDataFrameAnalyticsRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/PutDataFrameAnalyticsRequestTests.java index 7387ba8ddeb65..cdbb210431208 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/PutDataFrameAnalyticsRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/PutDataFrameAnalyticsRequestTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -67,7 +68,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfigTests.java index 1e59aac7af293..f4d8182af1cdf 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfigTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.time.Instant; @@ -96,7 +97,7 @@ protected Predicate getRandomFieldsExcludeFilter() { @Override protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsSourceTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsSourceTests.java index 3fae44aad9060..6c1fc93a41fd6 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsSourceTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsSourceTests.java @@ -25,6 +25,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.function.Predicate; @@ -73,7 +74,7 @@ protected DataFrameAnalyticsSource createTestInstance() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/QueryConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/QueryConfigTests.java index 7413bc936a215..6093963cb241e 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/QueryConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/QueryConfigTests.java @@ -27,6 +27,7 @@ import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; @@ -56,7 +57,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/NamedXContentObjectHelperTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/NamedXContentObjectHelperTests.java index 9eca65e529928..c74ca93b1e0e1 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/NamedXContentObjectHelperTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/NamedXContentObjectHelperTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -105,7 +106,7 @@ protected NamedXContentRegistry xContentRegistry() { namedXContent.addAll(Collections.singletonList(new NamedXContentRegistry.Entry(NamedXContentObject.class, new ParseField("my_named_object"), (p, c) -> NamedTestObject.PARSER.apply(p, null)))); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelConfigTests.java index 3fabed1619990..8aeda1ac0536d 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelConfigTests.java @@ -27,6 +27,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.time.Instant; @@ -91,7 +92,7 @@ protected TrainedModelConfig createTestInstance() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelDefinitionTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelDefinitionTests.java index 39bfe62af0099..a5eb86b8aaea8 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelDefinitionTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelDefinitionTests.java @@ -29,6 +29,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -84,7 +85,7 @@ protected TrainedModelDefinition createTestInstance() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/trainedmodel/ensemble/EnsembleTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/trainedmodel/ensemble/EnsembleTests.java index 520b1c3af90a0..9715bdc05ffbe 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/trainedmodel/ensemble/EnsembleTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/trainedmodel/ensemble/EnsembleTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -103,7 +104,7 @@ protected Ensemble createTestInstance() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/AnalysisConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/AnalysisConfigTests.java index a72de967d86b7..27e48a925153e 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/AnalysisConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/AnalysisConfigTests.java @@ -24,6 +24,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.util.ArrayList; import java.util.Arrays; @@ -256,7 +257,7 @@ private static AnalysisConfig.Builder createValidCategorizationConfig() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/JobTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/JobTests.java index 5af87c477c31e..4b0e1a297bc79 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/JobTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/JobTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -171,7 +172,7 @@ public static Job createRandomizedJob() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/GetTransformResponseTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/GetTransformResponseTests.java index 30453f98948f4..7bc1e3e5f6285 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/GetTransformResponseTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/GetTransformResponseTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -78,7 +79,7 @@ private static void toXContent(GetTransformResponse response, XContentBuilder bu @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PreviewTransformRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PreviewTransformRequestTests.java index 039f5de152bc7..b118336694f24 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PreviewTransformRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PreviewTransformRequestTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -55,7 +56,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PutTransformRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PutTransformRequestTests.java index 52c4770fb9fd4..f49fadeb5046c 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PutTransformRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PutTransformRequestTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -71,7 +72,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateDataFrameTransformResponseTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateDataFrameTransformResponseTests.java index 7dd1313d14a0b..692c1afcf9105 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateDataFrameTransformResponseTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateDataFrameTransformResponseTests.java @@ -25,6 +25,7 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -54,7 +55,7 @@ private static void toXContent(UpdateTransformResponse response, XContentBuilder @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateTransformRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateTransformRequestTests.java index df622cc1a47fa..e240888b09b59 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateTransformRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateTransformRequestTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -69,7 +70,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/QueryConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/QueryConfigTests.java index a5834c0ce5918..4946f49602219 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/QueryConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/QueryConfigTests.java @@ -27,6 +27,7 @@ import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; @@ -56,7 +57,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/SourceConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/SourceConfigTests.java index eb28db9a6ef34..8dce27eabb949 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/SourceConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/SourceConfigTests.java @@ -24,6 +24,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.function.Predicate; @@ -62,7 +63,7 @@ protected SourceConfig createTestInstance() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigTests.java index ec271ead85455..3e96fb9b5a0fd 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.time.Instant; @@ -45,7 +46,7 @@ public static TransformConfig randomTransformConfig() { randomSourceConfig(), randomDestConfig(), randomBoolean() ? null : TimeValue.timeValueMillis(randomIntBetween(1000, 1000000)), - randomBoolean() ? null : randomSyncConfig(), + randomBoolean() ? null : randomSyncConfig(), PivotConfigTests.randomPivotConfig(), randomBoolean() ? null : randomAlphaOfLengthBetween(1, 100), randomBoolean() ? null : Instant.now(), @@ -79,7 +80,7 @@ protected Predicate getRandomFieldsExcludeFilter() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigUpdateTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigUpdateTests.java index fe8261d7ba1af..c29647b5e34ae 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigUpdateTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigUpdateTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -66,7 +67,7 @@ protected TransformConfigUpdate createTestInstance() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/AggregationConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/AggregationConfigTests.java index f568290d93bfc..892b8ce44bdab 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/AggregationConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/AggregationConfigTests.java @@ -27,6 +27,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.HashSet; @@ -66,7 +67,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/PivotConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/PivotConfigTests.java index 66fec4747427f..10a15a9dac031 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/PivotConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/PivotConfigTests.java @@ -24,6 +24,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -60,7 +61,7 @@ protected Predicate getRandomFieldsExcludeFilter() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/modules/lang-painless/src/test/java/org/elasticsearch/painless/action/PainlessExecuteRequestTests.java b/modules/lang-painless/src/test/java/org/elasticsearch/painless/action/PainlessExecuteRequestTests.java index d0996c4c2591c..af27087a6d320 100644 --- a/modules/lang-painless/src/test/java/org/elasticsearch/painless/action/PainlessExecuteRequestTests.java +++ b/modules/lang-painless/src/test/java/org/elasticsearch/painless/action/PainlessExecuteRequestTests.java @@ -37,6 +37,7 @@ import org.elasticsearch.script.ScriptType; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.io.UncheckedIOException; @@ -73,12 +74,13 @@ public final void testFromXContent() throws Exception { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), + new UsageService()).getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); } @Override diff --git a/modules/percolator/src/test/java/org/elasticsearch/percolator/QueryBuilderStoreTests.java b/modules/percolator/src/test/java/org/elasticsearch/percolator/QueryBuilderStoreTests.java index e08f49fe8cdc0..09a25f94ee5c7 100644 --- a/modules/percolator/src/test/java/org/elasticsearch/percolator/QueryBuilderStoreTests.java +++ b/modules/percolator/src/test/java/org/elasticsearch/percolator/QueryBuilderStoreTests.java @@ -46,6 +46,7 @@ import org.elasticsearch.mock.orig.Mockito; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -57,13 +58,13 @@ public class QueryBuilderStoreTests extends ESTestCase { @Override protected NamedWriteableRegistry writableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RatedRequestsTests.java b/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RatedRequestsTests.java index a10459abfdce3..861f9258f3c84 100644 --- a/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RatedRequestsTests.java +++ b/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RatedRequestsTests.java @@ -39,6 +39,7 @@ import org.elasticsearch.search.suggest.SuggestBuilder; import org.elasticsearch.search.suggest.SuggestBuilders; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -64,8 +65,8 @@ public class RatedRequestsTests extends ESTestCase { @BeforeClass public static void init() { xContentRegistry = new NamedXContentRegistry( - Stream.of(new SearchModule(Settings.EMPTY, emptyList()).getNamedXContents().stream()).flatMap(Function.identity()) - .collect(toList())); + Stream.of(new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedXContents().stream()) + .flatMap(Function.identity()).collect(toList())); } @AfterClass diff --git a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java index ee655657ee6a0..348082a1b224c 100644 --- a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java +++ b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java @@ -46,6 +46,7 @@ import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; import org.elasticsearch.index.query.functionscore.RandomScoreFunctionBuilder; import org.elasticsearch.search.SearchModule; +import org.elasticsearch.usage.UsageService; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -188,7 +189,7 @@ public void testQueryBuilderBWC() throws Exception { } } else { NamedWriteableRegistry registry = new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, - Collections.emptyList()).getNamedWriteables()); + Collections.emptyList(), new UsageService()).getNamedWriteables()); for (int i = 0; i < CANDIDATES.size(); i++) { QueryBuilder expectedQueryBuilder = (QueryBuilder) CANDIDATES.get(i)[1]; diff --git a/server/src/main/java/org/elasticsearch/search/SearchModule.java b/server/src/main/java/org/elasticsearch/search/SearchModule.java index ea8d91178dacf..6736d09aa0ce1 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/server/src/main/java/org/elasticsearch/search/SearchModule.java @@ -282,8 +282,9 @@ public class SearchModule { * * NOTE: This constructor should not be called in production unless an accurate {@link Settings} object is provided. * When constructed, a static flag is set in Lucene {@link BooleanQuery#setMaxClauseCount} according to the settings. - * @param settings Current settings + * @param settings Current settings * @param plugins List of included {@link SearchPlugin} objects. + * @param usageService usage service for gathering aggregetion stats */ public SearchModule(Settings settings, List plugins, UsageService usageService) { this.settings = settings; @@ -305,11 +306,6 @@ public SearchModule(Settings settings, List plugins, UsageService namedWriteables.addAll(SortValue.namedWriteables()); } - // Temporary for testing - public SearchModule(Settings settings, List plugins) { - this(settings, plugins, new UsageService()); - } - public List getNamedWriteables() { return namedWriteables; } diff --git a/server/src/test/java/org/elasticsearch/action/ShardValidateQueryRequestTests.java b/server/src/test/java/org/elasticsearch/action/ShardValidateQueryRequestTests.java index d537bdabece3d..e81605e26f503 100644 --- a/server/src/test/java/org/elasticsearch/action/ShardValidateQueryRequestTests.java +++ b/server/src/test/java/org/elasticsearch/action/ShardValidateQueryRequestTests.java @@ -31,6 +31,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.internal.AliasFilter; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -42,7 +43,7 @@ public class ShardValidateQueryRequestTests extends ESTestCase { public void setUp() throws Exception { super.setUp(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsResponseTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsResponseTests.java index c83caae49a72f..22a006412ac74 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsResponseTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsResponseTests.java @@ -37,6 +37,7 @@ import org.elasticsearch.search.internal.AliasFilter; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.VersionUtils; +import org.elasticsearch.usage.UsageService; import java.util.ArrayList; import java.util.Collections; @@ -73,7 +74,7 @@ public void testSerialization() throws Exception { ClusterSearchShardsResponse clusterSearchShardsResponse = new ClusterSearchShardsResponse(clusterSearchShardsGroups, nodes.toArray(new DiscoveryNode[nodes.size()]), indicesAndFilters); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List entries = new ArrayList<>(); entries.addAll(searchModule.getNamedWriteables()); NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(entries); diff --git a/server/src/test/java/org/elasticsearch/action/explain/ExplainRequestTests.java b/server/src/test/java/org/elasticsearch/action/explain/ExplainRequestTests.java index b279bf9485133..6880b98d84fba 100644 --- a/server/src/test/java/org/elasticsearch/action/explain/ExplainRequestTests.java +++ b/server/src/test/java/org/elasticsearch/action/explain/ExplainRequestTests.java @@ -30,6 +30,7 @@ import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.internal.AliasFilter; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -45,7 +46,7 @@ public class ExplainRequestTests extends ESTestCase { public void setUp() throws Exception { super.setUp(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java b/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java index 094b6365ab812..1af026efb75cd 100644 --- a/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java +++ b/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java @@ -66,6 +66,7 @@ import org.elasticsearch.search.suggest.term.TermSuggestion; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.util.ArrayList; @@ -98,7 +99,7 @@ public class SearchPhaseControllerTests extends ESTestCase { @Override protected NamedWriteableRegistry writableRegistry() { - return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, emptyList()).getNamedWriteables()); + return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedWriteables()); } @Before diff --git a/server/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java b/server/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java index 414f165864dcd..abe3bb01b51d2 100644 --- a/server/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java +++ b/server/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java @@ -46,6 +46,7 @@ import org.elasticsearch.search.suggest.SuggestTests; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.After; import org.junit.Before; @@ -69,7 +70,7 @@ public class SearchResponseTests extends ESTestCase { } private final NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry( - new SearchModule(Settings.EMPTY, emptyList()).getNamedWriteables()); + new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedWriteables()); private AggregationsTests aggregationsTests = new AggregationsTests(); @Before diff --git a/server/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java index 6bf2ed8acf6e3..005791827c263 100644 --- a/server/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -40,7 +41,7 @@ public class AbstractQueryBuilderTests extends ESTestCase { @BeforeClass public static void init() { - xContentRegistry = new NamedXContentRegistry(new SearchModule(Settings.EMPTY, emptyList()).getNamedXContents()); + xContentRegistry = new NamedXContentRegistry(new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedXContents()); } @AfterClass diff --git a/server/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java index bc2b303a8e817..12897a99bceb8 100644 --- a/server/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java @@ -40,6 +40,7 @@ import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -67,7 +68,7 @@ public class InnerHitBuilderTests extends ESTestCase { @BeforeClass public static void init() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/server/src/test/java/org/elasticsearch/index/reindex/ReindexRequestTests.java b/server/src/test/java/org/elasticsearch/index/reindex/ReindexRequestTests.java index 1cabb051cc94e..ad417f5eba144 100644 --- a/server/src/test/java/org/elasticsearch/index/reindex/ReindexRequestTests.java +++ b/server/src/test/java/org/elasticsearch/index/reindex/ReindexRequestTests.java @@ -32,6 +32,7 @@ import org.elasticsearch.index.query.TermQueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.slice.SliceBuilder; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -53,13 +54,13 @@ public class ReindexRequestTests extends AbstractBulkByScrollRequestTestCase entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java b/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java index b16909f071d06..2ad80f0fe9a70 100644 --- a/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java +++ b/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java @@ -70,6 +70,7 @@ import org.elasticsearch.search.suggest.term.TermSuggestion; import org.elasticsearch.search.suggest.term.TermSuggestionBuilder; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -172,7 +173,8 @@ public List> getRescorers() { } private ThrowingRunnable registryForPlugin(SearchPlugin plugin) { - return () -> new NamedXContentRegistry(new SearchModule(Settings.EMPTY, singletonList(plugin)).getNamedXContents()); + return () -> new NamedXContentRegistry(new SearchModule(Settings.EMPTY, singletonList(plugin), new UsageService()) + .getNamedXContents()); } public void testRegisterSuggester() { @@ -186,7 +188,7 @@ public List> getSuggesters() { TestSuggestionBuilder::fromXContent, TestSuggestion::new)); } - })); + }), new UsageService()); assertEquals(1, module.getNamedXContents().stream() .filter(e -> e.categoryClass.equals(SuggestionBuilder.class) && @@ -227,7 +229,7 @@ public void testRegisterHighlighter() { public Map getHighlighters() { return singletonMap("custom", customHighlighter); } - })); + }), new UsageService()); Map highlighters = module.getHighlighters(); assertEquals(FastVectorHighlighter.class, highlighters.get("fvh").getClass()); @@ -240,7 +242,7 @@ public void testRegisteredQueries() { List allSupportedQueries = new ArrayList<>(); Collections.addAll(allSupportedQueries, NON_DEPRECATED_QUERIES); Collections.addAll(allSupportedQueries, DEPRECATED_QUERIES); - SearchModule module = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule module = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); Set registeredNonDeprecated = module.getNamedXContents().stream() .filter(e -> e.categoryClass.equals(QueryBuilder.class)) @@ -262,7 +264,7 @@ public void testRegisterAggregation() { public List getAggregations() { return singletonList(new AggregationSpec("test", TestAggregationBuilder::new, TestAggregationBuilder::fromXContent)); } - })); + }), new UsageService()); assertThat( module.getNamedXContents().stream() @@ -279,7 +281,7 @@ public List getPipelineAggregations() { return singletonList(new PipelineAggregationSpec("test", TestPipelineAggregationBuilder::new, TestPipelineAggregationBuilder::fromXContent)); } - })); + }), new UsageService()); assertThat( module.getNamedXContents().stream() @@ -295,7 +297,7 @@ public void testRegisterRescorer() { public List> getRescorers() { return singletonList(new RescorerSpec<>("test", TestRescorerBuilder::new, TestRescorerBuilder::fromXContent)); } - })); + }), new UsageService()); assertThat( module.getNamedXContents().stream() .filter(entry -> entry.categoryClass.equals(RescorerBuilder.class) && diff --git a/server/src/test/java/org/elasticsearch/search/SearchSortValuesAndFormatsTests.java b/server/src/test/java/org/elasticsearch/search/SearchSortValuesAndFormatsTests.java index 2273ab3af0db7..b11650a221289 100644 --- a/server/src/test/java/org/elasticsearch/search/SearchSortValuesAndFormatsTests.java +++ b/server/src/test/java/org/elasticsearch/search/SearchSortValuesAndFormatsTests.java @@ -24,6 +24,7 @@ import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.util.ArrayList; @@ -36,7 +37,7 @@ public class SearchSortValuesAndFormatsTests extends AbstractWireSerializingTest @Before public void initRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); List entries = new ArrayList<>(); entries.addAll(searchModule.getNamedWriteables()); namedWriteableRegistry = new NamedWriteableRegistry(entries); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesBuilderTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesBuilderTests.java index 6d686ebeef189..a903c8a94d427 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesBuilderTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.pipeline.CumulativeSumPipelineAggregationBuilder; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.io.IOException; @@ -49,7 +50,7 @@ public void setUp() throws Exception { super.setUp(); // register aggregations as NamedWriteable - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); namedXContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java index cff1e7c874b5c..26128b43a4c4e 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java @@ -40,6 +40,7 @@ import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree; import org.elasticsearch.test.AbstractQueryTestCase; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.util.Collection; import java.util.List; @@ -71,7 +72,7 @@ public void setUp() throws Exception { String type = randomAlphaOfLengthBetween(1, 10); currentTypes[i] = type; } - xContentRegistry = new NamedXContentRegistry(new SearchModule(settings, emptyList()).getNamedXContents()); + xContentRegistry = new NamedXContentRegistry(new SearchModule(settings, emptyList(), new UsageService()).getNamedXContents()); } public void testGetAggregatorFactories_returnsUnmodifiableList() { diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java index a2e99a9ed1d9a..58a5e1227ffca 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java @@ -35,6 +35,7 @@ import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; import org.elasticsearch.test.VersionUtils; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -47,7 +48,7 @@ public class InternalAggregationsTests extends ESTestCase { private final NamedWriteableRegistry registry = new NamedWriteableRegistry( - new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); public void testReduceEmptyAggs() { List aggs = Collections.emptyList(); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java index 39a51ee5db475..b4b918c8a66bb 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java @@ -49,6 +49,7 @@ import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; import org.elasticsearch.test.TestSearchContext; +import org.elasticsearch.usage.UsageService; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -106,7 +107,8 @@ public void testStreamResponse() throws Exception { // read ByteArrayInputStream inBuffer = new ByteArrayInputStream(outBuffer.toByteArray()); StreamInput in = new InputStreamStreamInput(inBuffer); - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); // populates the registry through side effects + // populates the registry through side effects + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); NamedWriteableRegistry registry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); in = new NamedWriteableAwareStreamInput(in, registry); in.setVersion(version); @@ -474,6 +476,6 @@ public void testGNDCornerCases() throws Exception { @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, emptyList()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedXContents()); } } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java index 5bc4eb7be9e37..b8d3c9190947e 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.search.aggregations.metrics.WeightedAvgAggregationBuilder; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.io.IOException; @@ -45,7 +46,7 @@ public void setupName() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceFieldConfigTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceFieldConfigTests.java index 98e42eaa898d9..c938e854274da 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceFieldConfigTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceFieldConfigTests.java @@ -29,6 +29,7 @@ import org.elasticsearch.script.Script; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.time.ZoneId; @@ -71,11 +72,13 @@ public void testBothFieldScript() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()) + .getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()) + .getNamedXContents()); } } diff --git a/server/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java b/server/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java index 5956306fcad75..d19217fc46ed8 100644 --- a/server/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java @@ -39,6 +39,7 @@ import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -56,7 +57,7 @@ public class CollapseBuilderTests extends AbstractSerializingTestCase entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java index aa41bcad47c32..fd0d3c6e9c26a 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java @@ -76,6 +76,7 @@ import org.elasticsearch.script.ScriptModule; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.SearchModule; +import org.elasticsearch.usage.UsageService; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; @@ -342,7 +343,7 @@ private static class ServiceHolder implements Closeable { List> additionalSettings = pluginsService.getPluginSettings(); SettingsModule settingsModule = new SettingsModule(nodeSettings, additionalSettings, pluginsService.getPluginSettingsFilter(), Collections.emptySet()); - searchModule = new SearchModule(nodeSettings, pluginsService.filterPlugins(SearchPlugin.class)); + searchModule = new SearchModule(nodeSettings, pluginsService.filterPlugins(SearchPlugin.class), new UsageService()); IndicesModule indicesModule = new IndicesModule(pluginsService.filterPlugins(MapperPlugin.class)); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); diff --git a/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java index eabd5088f99b3..758cdb7d6816f 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java @@ -142,6 +142,7 @@ import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree; import org.elasticsearch.search.aggregations.pipeline.StatsBucketPipelineAggregationBuilder; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -295,7 +296,7 @@ protected final NamedWriteableRegistry getNamedWriteableRegistry() { */ protected List getNamedWriteables() { SearchPlugin plugin = registerPlugin(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, plugin == null ? emptyList() : List.of(plugin)); + SearchModule searchModule = new SearchModule(Settings.EMPTY, plugin == null ? emptyList() : List.of(plugin), new UsageService()); List entries = new ArrayList<>(searchModule.getNamedWriteables()); // Modules/plugins may have extra namedwriteables that are not added by agg specs diff --git a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilderTests.java b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilderTests.java index ece6242d0f3fc..e980cdc1857a5 100644 --- a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilderTests.java +++ b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilderTests.java @@ -19,6 +19,7 @@ import org.elasticsearch.search.aggregations.BaseAggregationBuilder; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.io.IOException; @@ -88,7 +89,8 @@ protected Writeable.Reader instanceReader() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()) + .getNamedWriteables()); } @Override @@ -98,7 +100,7 @@ protected NamedXContentRegistry xContentRegistry() { BaseAggregationBuilder.class, new ParseField(TTestAggregationBuilder.NAME), (p, n) -> TTestAggregationBuilder.PARSER.apply(p, (String) n))); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } } diff --git a/x-pack/plugin/async-search/src/test/java/org/elasticsearch/xpack/search/AsyncSearchResponseTests.java b/x-pack/plugin/async-search/src/test/java/org/elasticsearch/xpack/search/AsyncSearchResponseTests.java index 52eeb309b90e6..4848acbbf1585 100644 --- a/x-pack/plugin/async-search/src/test/java/org/elasticsearch/xpack/search/AsyncSearchResponseTests.java +++ b/x-pack/plugin/async-search/src/test/java/org/elasticsearch/xpack/search/AsyncSearchResponseTests.java @@ -22,6 +22,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.internal.InternalSearchResponse; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.search.action.AsyncSearchResponse; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.TransformNamedXContentProvider; @@ -44,7 +45,7 @@ public class AsyncSearchResponseTests extends ESTestCase { @Before public void registerNamedObjects() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); List namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add(new NamedWriteableRegistry.Entry(SyncConfig.class, TransformField.TIME_BASED_SYNC.getPreferredName(), diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameActionRequestTests.java index dd485341cb7fd..fb6839f10c6b1 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameActionRequestTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.EvaluateDataFrameAction.Request; import org.elasticsearch.xpack.core.ml.dataframe.evaluation.Evaluation; import org.elasticsearch.xpack.core.ml.dataframe.evaluation.MlEvaluationNamedXContentProvider; @@ -32,7 +33,7 @@ public class EvaluateDataFrameActionRequestTests extends AbstractSerializingTest protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(MlEvaluationNamedXContentProvider.getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } @@ -40,7 +41,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlEvaluationNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDataFrameAnalyticsActionResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDataFrameAnalyticsActionResponseTests.java index a82c3e6b957a2..20b9dc5e4882d 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDataFrameAnalyticsActionResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDataFrameAnalyticsActionResponseTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.action.util.QueryPage; import org.elasticsearch.xpack.core.ml.action.GetDataFrameAnalyticsAction.Response; import org.elasticsearch.xpack.core.ml.dataframe.DataFrameAnalyticsConfig; @@ -27,7 +28,7 @@ public class GetDataFrameAnalyticsActionResponseTests extends AbstractWireSerial protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } @@ -35,7 +36,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDatafeedsActionResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDatafeedsActionResponseTests.java index 645ea73320389..37f0c8c3f7b3f 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDatafeedsActionResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDatafeedsActionResponseTests.java @@ -10,6 +10,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.GetDatafeedsAction.Response; import org.elasticsearch.xpack.core.action.util.QueryPage; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; @@ -38,7 +39,7 @@ protected Writeable.Reader instanceReader() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionRequestTests.java index 038c35fdd2930..b4cbca57a4967 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionRequestTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.PutDataFrameAnalyticsAction.Request; import org.elasticsearch.xpack.core.ml.dataframe.DataFrameAnalyticsConfig; import org.elasticsearch.xpack.core.ml.dataframe.DataFrameAnalyticsConfigTests; @@ -43,7 +44,7 @@ public void setUpId() { protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } @@ -51,7 +52,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionResponseTests.java index 6338e031070b5..8739f45f3e246 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionResponseTests.java @@ -10,6 +10,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.PutDataFrameAnalyticsAction.Response; import org.elasticsearch.xpack.core.ml.dataframe.DataFrameAnalyticsConfigTests; import org.elasticsearch.xpack.core.ml.dataframe.analyses.MlDataFrameAnalysisNamedXContentProvider; @@ -24,7 +25,7 @@ public class PutDataFrameAnalyticsActionResponseTests extends AbstractWireSerial protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionRequestTests.java index 31b7f3394ef06..cc250402f1a09 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionRequestTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.PutDatafeedAction.Request; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfigTests; import org.junit.Before; @@ -50,13 +51,13 @@ protected Request doParseInstance(XContentParser parser) { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionResponseTests.java index f61c0dfdac89d..2b2cba5b0ec28 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionResponseTests.java @@ -10,6 +10,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.PutDatafeedAction.Response; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfigTests; @@ -34,7 +35,7 @@ protected Writeable.Reader instanceReader() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/UpdateDatafeedActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/UpdateDatafeedActionRequestTests.java index c3570e16efc5c..c4ea6fc3f5bf1 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/UpdateDatafeedActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/UpdateDatafeedActionRequestTests.java @@ -12,6 +12,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.UpdateDatafeedAction.Request; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfigTests; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedUpdateTests; @@ -50,13 +51,13 @@ protected Request doParseInstance(XContentParser parser) { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderTests.java index aacb9596a4e1c..cceb9e7e1df65 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderTests.java @@ -18,6 +18,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.utils.XContentObjectTransformer; import java.io.IOException; @@ -32,13 +33,13 @@ public class AggProviderTests extends AbstractSerializingTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @Override protected NamedWriteableRegistry writableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @@ -70,7 +71,7 @@ public static AggProvider createRandomValidAggProvider(String name, String field Map agg = Collections.singletonMap(name, Collections.singletonMap("avg", Collections.singletonMap("field", field))); try { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); AggregatorFactories.Builder aggs = XContentObjectTransformer.aggregatorTransformer(new NamedXContentRegistry(searchModule.getNamedXContents())) .fromMap(agg); diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfigTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfigTests.java index a709df1ab5c79..ff1650b0ab015 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfigTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfigTests.java @@ -47,6 +47,7 @@ import org.elasticsearch.search.builder.SearchSourceBuilder.ScriptField; import org.elasticsearch.test.AbstractSerializingTestCase; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.ChunkingConfig.Mode; import org.elasticsearch.xpack.core.ml.job.messages.Messages; import org.elasticsearch.xpack.core.ml.utils.QueryProvider; @@ -156,13 +157,13 @@ private static DatafeedConfig.Builder createRandomizedDatafeedConfigBuilder(Stri @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -768,7 +769,7 @@ public void testSerializationOfComplexAggs() throws IOException { assertEquals(aggBuilder, parsedDatafeedConfig.getParsedAggregations(xContentRegistry())); assertEquals(datafeedConfig.getQuery(), parsedDatafeedConfig.getQuery()); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); try(BytesStreamOutput output = new BytesStreamOutput()) { datafeedConfig.writeTo(output); @@ -809,7 +810,7 @@ public void testSerializationOfComplexAggsBetweenVersions() throws IOException { .filter(QueryBuilders.termQuery(randomAlphaOfLengthBetween(1, 10), randomAlphaOfLengthBetween(1, 10))))); DatafeedConfig datafeedConfig = datafeedConfigBuilder.build(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); try (BytesStreamOutput output = new BytesStreamOutput()) { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdateTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdateTests.java index 9c1e135551bb5..2fcb853c12a2a 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdateTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdateTests.java @@ -41,6 +41,7 @@ import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder.ScriptField; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.ChunkingConfig.Mode; import org.elasticsearch.xpack.core.ml.job.config.JobTests; import org.elasticsearch.xpack.core.ml.utils.QueryProvider; @@ -134,13 +135,13 @@ protected DatafeedUpdate doParseInstance(XContentParser parser) { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -346,7 +347,7 @@ public void testSerializationOfComplexAggsBetweenVersions() throws IOException { .filter(QueryBuilders.termQuery(randomAlphaOfLengthBetween(1, 10), randomAlphaOfLengthBetween(1, 10))))); DatafeedUpdate datafeedUpdate = datafeedUpdateBuilder.build(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); try (BytesStreamOutput output = new BytesStreamOutput()) { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsConfigTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsConfigTests.java index 2ad341df35c7d..d3b2e7e42b766 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsConfigTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsConfigTests.java @@ -31,6 +31,7 @@ import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.AbstractBWCSerializationTestCase; import org.elasticsearch.xpack.core.ml.AbstractBWCWireSerializationTestCase; import org.elasticsearch.xpack.core.ml.dataframe.analyses.Classification; @@ -77,7 +78,7 @@ protected DataFrameAnalyticsConfig doParseInstance(XContentParser parser) throws protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } @@ -85,7 +86,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsSourceTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsSourceTests.java index fdfb34edf8e0c..050bc58091222 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsSourceTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsSourceTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.AbstractBWCSerializationTestCase; import org.elasticsearch.xpack.core.ml.utils.QueryProvider; @@ -30,13 +31,13 @@ public class DataFrameAnalyticsSourceTests extends AbstractBWCSerializationTestC @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/NamedXContentObjectsTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/NamedXContentObjectsTests.java index 2db86e64e3502..58a30d578e820 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/NamedXContentObjectsTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/NamedXContentObjectsTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.LenientlyParsedTrainedModel; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.TrainedModel; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.StrictlyParsedTrainedModel; @@ -187,7 +188,7 @@ protected Predicate getRandomFieldsExcludeFilter() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelConfigTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelConfigTests.java index 0479263162a00..8f3bf5e05cafa 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelConfigTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelConfigTests.java @@ -21,6 +21,7 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.license.License; import org.elasticsearch.search.SearchModule; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.AbstractBWCSerializationTestCase; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.ClassificationConfigTests; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.RegressionConfigTests; @@ -107,7 +108,7 @@ protected Writeable.Reader instanceReader() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelDefinitionTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelDefinitionTests.java index 47cf8b3f5d487..299166d86618d 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelDefinitionTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelDefinitionTests.java @@ -15,6 +15,7 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.preprocessing.FrequencyEncodingTests; import org.elasticsearch.xpack.core.ml.inference.preprocessing.OneHotEncodingTests; import org.elasticsearch.xpack.core.ml.inference.preprocessing.TargetMeanEncodingTests; @@ -295,7 +296,7 @@ protected Writeable.Reader instanceReader() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/trainedmodel/langident/LangIdentNeuralNetworkTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/trainedmodel/langident/LangIdentNeuralNetworkTests.java index 118c2f5d62751..f7f1fab2b7685 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/trainedmodel/langident/LangIdentNeuralNetworkTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/trainedmodel/langident/LangIdentNeuralNetworkTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.MlInferenceNamedXContentProvider; import org.junit.Before; @@ -59,7 +60,7 @@ protected Writeable.Reader instanceReader() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/NamedXContentObjectHelperTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/NamedXContentObjectHelperTests.java index a9a30d68c0e6f..ac70f11be64b0 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/NamedXContentObjectHelperTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/NamedXContentObjectHelperTests.java @@ -17,6 +17,7 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -94,7 +95,7 @@ protected NamedXContentRegistry xContentRegistry() { namedXContent.addAll(Collections.singletonList(new NamedXContentRegistry.Entry(NamedXContentObject.class, new ParseField("my_named_object"), (p, c) -> NamedTestObject.PARSER.apply(p, null)))); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/QueryProviderTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/QueryProviderTests.java index 9a9331e9543a1..e653f04641262 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/QueryProviderTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/QueryProviderTests.java @@ -21,6 +21,7 @@ import org.elasticsearch.rest.RestStatus; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.job.messages.Messages; import java.io.IOException; @@ -34,13 +35,13 @@ public class QueryProviderTests extends AbstractSerializingTestCase namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add(new NamedWriteableRegistry.Entry(SyncConfig.class, TransformField.TIME_BASED_SYNC.getPreferredName(), @@ -54,4 +55,4 @@ protected NamedXContentRegistry xContentRegistry() { return namedXContentRegistry; } -} \ No newline at end of file +} diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/AbstractWireSerializingTransformTestCase.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/AbstractWireSerializingTransformTestCase.java index fc51286a89901..93ddf5c388199 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/AbstractWireSerializingTransformTestCase.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/AbstractWireSerializingTransformTestCase.java @@ -12,6 +12,7 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.TransformNamedXContentProvider; import org.elasticsearch.xpack.core.transform.transforms.SyncConfig; @@ -31,7 +32,7 @@ public abstract class AbstractWireSerializingTransformTestCase namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add(new NamedWriteableRegistry.Entry(SyncConfig.class, TransformField.TIME_BASED_SYNC.getPreferredName(), diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PutTransformActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PutTransformActionRequestTests.java index 9a4babfbb57a7..2edf627b35d3e 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PutTransformActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PutTransformActionRequestTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.action.PutTransformAction.Request; import org.elasticsearch.xpack.core.transform.transforms.TransformConfig; @@ -44,7 +45,7 @@ protected Request createTestInstance() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); List namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add( diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/AbstractSerializingTransformTestCase.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/AbstractSerializingTransformTestCase.java index c7a9136c76971..3d6806112171a 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/AbstractSerializingTransformTestCase.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/AbstractSerializingTransformTestCase.java @@ -18,6 +18,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BaseAggregationBuilder; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.TransformNamedXContentProvider; import org.junit.Before; @@ -42,7 +43,7 @@ public abstract class AbstractSerializingTransformTestCase namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add(new NamedWriteableRegistry.Entry(QueryBuilder.class, MockDeprecatedQueryBuilder.NAME, diff --git a/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/MlDeprecationChecksTests.java b/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/MlDeprecationChecksTests.java index c3ca275ad350d..77798f4b03c9f 100644 --- a/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/MlDeprecationChecksTests.java +++ b/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/MlDeprecationChecksTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import java.util.Collections; @@ -19,7 +20,7 @@ public class MlDeprecationChecksTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -44,7 +45,7 @@ public void testCheckDataFeedQuery() { qs.put("use_dis_max", true); Map query = Collections.singletonMap("query_string", qs); deprecatedDatafeed.setQuery(query); - + DeprecationIssue issue = MlDeprecationChecks.checkDataFeedQuery(deprecatedDatafeed.build()); assertNotNull(issue); assertThat(issue.getDetails(), equalTo("[Deprecated field [use_dis_max] used, replaced by [Set [tie_breaker] to 1 instead]]")); diff --git a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java index 907fa1266ca72..f47fd59bb568a 100644 --- a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java +++ b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java @@ -62,6 +62,7 @@ import org.elasticsearch.search.internal.InternalSearchResponse; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.TransportService; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.enrich.EnrichPolicy; import java.io.IOException; @@ -157,7 +158,9 @@ private boolean assertSearchSource() { } private SearchSourceBuilder copy(SearchSourceBuilder source) { - NamedWriteableRegistry registry = new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, List.of()).getNamedWriteables()); + NamedWriteableRegistry registry = new NamedWriteableRegistry( + new SearchModule(Settings.EMPTY, List.of(), new UsageService()).getNamedWriteables() + ); try (BytesStreamOutput output = new BytesStreamOutput()) { source.writeTo(output); try (StreamInput in = new NamedWriteableAwareStreamInput(output.bytes().streamInput(), registry)) { diff --git a/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlRequestParserTests.java b/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlRequestParserTests.java index bdaddb8588351..448e525aaf06d 100644 --- a/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlRequestParserTests.java +++ b/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlRequestParserTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.index.query.MatchQueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.List; @@ -25,7 +26,7 @@ public class EqlRequestParserTests extends ESTestCase { private static NamedXContentRegistry registry = - new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of()).getNamedXContents()); + new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of(), new UsageService()).getNamedXContents()); public void testUnknownFieldParsingErrors() throws IOException { assertParsingErrorMessage("{\"key\" : \"value\"}", "unknown field [key]", EqlSearchRequest::fromXContent); } diff --git a/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlSearchRequestTests.java b/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlSearchRequestTests.java index 5cb576c9063b1..c105963ebc1f7 100644 --- a/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlSearchRequestTests.java +++ b/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlSearchRequestTests.java @@ -20,6 +20,7 @@ import org.elasticsearch.search.searchafter.SearchAfterBuilder; import org.elasticsearch.test.AbstractSerializingTestCase; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.io.IOException; @@ -46,13 +47,13 @@ public void setup() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/MlNativeIntegTestCase.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/MlNativeIntegTestCase.java index 2a3bd0f00c00a..4c48e042d2ad0 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/MlNativeIntegTestCase.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/MlNativeIntegTestCase.java @@ -35,6 +35,7 @@ import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.transport.Netty4Plugin; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.XPackSettings; import org.elasticsearch.xpack.core.ilm.DeleteAction; import org.elasticsearch.xpack.core.ilm.IndexLifecycleMetadata; @@ -96,7 +97,7 @@ abstract class MlNativeIntegTestCase extends ESIntegTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -229,7 +230,7 @@ protected PutFilterAction.Response putMlFilter(MlFilter filter) { protected void ensureClusterStateConsistency() throws IOException { if (cluster() != null && cluster().size() > 0) { List entries = new ArrayList<>(ClusterModule.getNamedWriteables()); - entries.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); + entries.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); entries.add(new NamedWriteableRegistry.Entry(Metadata.Custom.class, "ml", MlMetadata::new)); entries.add(new NamedWriteableRegistry.Entry(Metadata.Custom.class, IndexLifecycleMetadata.TYPE, IndexLifecycleMetadata::new)); entries.add(new NamedWriteableRegistry.Entry(LifecycleType.class, TimeseriesLifecycleType.TYPE, diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigrationEligibilityCheckTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigrationEligibilityCheckTests.java index d1ea483e78712..97fbf3a2bd371 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigrationEligibilityCheckTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigrationEligibilityCheckTests.java @@ -25,6 +25,7 @@ import org.elasticsearch.persistent.PersistentTasksCustomMetadata; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.MlMetadata; import org.elasticsearch.xpack.core.ml.MlTasks; import org.elasticsearch.xpack.core.ml.action.OpenJobAction; @@ -52,7 +53,7 @@ public void setUpTests() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java index 22e40a0c462b1..9ddfae60daac4 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java @@ -21,6 +21,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.VersionUtils; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.MlMetadata; import org.elasticsearch.xpack.core.ml.MlTasks; import org.elasticsearch.xpack.core.ml.action.OpenJobAction; @@ -53,7 +54,7 @@ public class MlConfigMigratorTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlMetadataTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlMetadataTests.java index 551f9eb87ff94..9ea601a331601 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlMetadataTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlMetadataTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.MlMetadata; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfigTests; @@ -70,13 +71,13 @@ protected MlMetadata doParseInstance(XContentParser parser) { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java index 3d08d8626b5ce..2c1edbb4c3d2c 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java @@ -14,6 +14,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESSingleNodeTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.XPackSettings; import org.elasticsearch.xpack.core.ilm.LifecycleSettings; import org.elasticsearch.xpack.core.ml.MachineLearningField; @@ -53,7 +54,7 @@ protected Settings nodeSettings() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedActionTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedActionTests.java index 3bf8ddd023b6c..8f6469975410b 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedActionTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedActionTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.tasks.TaskId; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.StartDatafeedAction; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.job.config.Job; @@ -38,7 +39,7 @@ public class TransportStartDatafeedActionTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/DatafeedJobValidatorTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/DatafeedJobValidatorTests.java index c50edd215d037..1aa7dbfdda8cf 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/DatafeedJobValidatorTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/DatafeedJobValidatorTests.java @@ -15,6 +15,7 @@ import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.MaxAggregationBuilder; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedJobValidator; import org.elasticsearch.xpack.core.ml.datafeed.DelayedDataCheckConfig; @@ -33,7 +34,7 @@ public class DatafeedJobValidatorTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/delayeddatacheck/DelayedDataDetectorFactoryTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/delayeddatacheck/DelayedDataDetectorFactoryTests.java index 5eef1cde7ac55..d5087d7b0442d 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/delayeddatacheck/DelayedDataDetectorFactoryTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/delayeddatacheck/DelayedDataDetectorFactoryTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.datafeed.DelayedDataCheckConfig; import org.elasticsearch.xpack.core.ml.job.config.AnalysisConfig; @@ -31,7 +32,7 @@ public class DelayedDataDetectorFactoryTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/DataExtractorFactoryTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/DataExtractorFactoryTests.java index 3c071df8c3b6f..c6243edbd4f50 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/DataExtractorFactoryTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/DataExtractorFactoryTests.java @@ -21,6 +21,7 @@ import org.elasticsearch.search.aggregations.metrics.MaxAggregationBuilder; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.ChunkingConfig; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.job.config.DataDescription; @@ -67,7 +68,7 @@ public class DataExtractorFactoryTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/aggregation/AggregationDataExtractorFactoryTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/aggregation/AggregationDataExtractorFactoryTests.java index eda96b0bcf866..4eb27f7a4253d 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/aggregation/AggregationDataExtractorFactoryTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/aggregation/AggregationDataExtractorFactoryTests.java @@ -12,6 +12,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.job.config.AnalysisConfig; import org.elasticsearch.xpack.core.ml.job.config.DataDescription; @@ -40,7 +41,7 @@ public void setUpMocks() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorFactoryTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorFactoryTests.java index d61142b6664ea..d6ddd96207762 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorFactoryTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorFactoryTests.java @@ -12,6 +12,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.ml.datafeed.DatafeedTimingStatsReporter; import org.elasticsearch.xpack.ml.datafeed.extractor.DataExtractorFactory; @@ -36,7 +37,7 @@ public class ChunkedDataExtractorFactoryTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/dataframe/process/results/AnalyticsResultTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/dataframe/process/results/AnalyticsResultTests.java index b2e644dda3032..ea6550c711f56 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/dataframe/process/results/AnalyticsResultTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/dataframe/process/results/AnalyticsResultTests.java @@ -11,6 +11,7 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.dataframe.stats.common.MemoryUsage; import org.elasticsearch.xpack.core.ml.dataframe.stats.common.MemoryUsageTests; import org.elasticsearch.xpack.core.ml.dataframe.stats.classification.ClassificationStats; @@ -35,7 +36,7 @@ public class AnalyticsResultTests extends AbstractXContentTestCase namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/ModelInferenceActionIT.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/ModelInferenceActionIT.java index 1ee6a2c392e29..8c8c3c499e33f 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/ModelInferenceActionIT.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/ModelInferenceActionIT.java @@ -11,6 +11,7 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.license.License; import org.elasticsearch.search.SearchModule; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.MlInferenceNamedXContentProvider; import org.elasticsearch.xpack.core.ml.inference.TrainedModelConfig; import org.elasticsearch.xpack.core.ml.inference.TrainedModelDefinition; @@ -417,7 +418,7 @@ public static TrainedModel buildMultiClassClassification() { public NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/TrainedModelProviderIT.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/TrainedModelProviderIT.java index a687124066d5c..0c8c922396e6c 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/TrainedModelProviderIT.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/TrainedModelProviderIT.java @@ -16,6 +16,7 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.license.License; import org.elasticsearch.search.SearchModule; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.MlInferenceNamedXContentProvider; import org.elasticsearch.xpack.core.ml.inference.TrainedModelConfig; import org.elasticsearch.xpack.core.ml.inference.TrainedModelDefinitionTests; @@ -216,7 +217,7 @@ private static TrainedModelConfig buildTrainedModelConfig(String modelId) { public NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/JobManagerTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/JobManagerTests.java index 146cbf02739d7..e44438e2d3a21 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/JobManagerTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/JobManagerTests.java @@ -41,6 +41,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.MachineLearningField; import org.elasticsearch.xpack.core.ml.MlMetadata; import org.elasticsearch.xpack.core.ml.action.PutJobAction; @@ -110,7 +111,7 @@ public class JobManagerTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java index 9bc7b2b391771..c81345c4feb31 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java @@ -25,6 +25,7 @@ import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.hamcrest.Matchers; import org.junit.Before; @@ -49,7 +50,7 @@ public class RollupRequestTranslationTests extends ESTestCase { @Before public void setUp() throws Exception { super.setUp(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); List entries = new ArrayList<>(); entries.addAll(searchModule.getNamedWriteables()); namedWriteableRegistry = new NamedWriteableRegistry(entries); diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java index ba93ad1e97ee7..8789efd1eed59 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java @@ -44,6 +44,7 @@ import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.suggest.SuggestBuilder; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.rollup.ConfigTestHelpers; import org.elasticsearch.xpack.core.rollup.RollupField; import org.elasticsearch.xpack.core.rollup.action.RollupJobCaps; @@ -84,7 +85,7 @@ public class SearchActionTests extends ESTestCase { @Before public void setUp() throws Exception { super.setUp(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java index 020d0c18d52ac..34a1215e6f24b 100644 --- a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java +++ b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java @@ -17,6 +17,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.sql.proto.Mode; import org.elasticsearch.xpack.sql.proto.Protocol; import org.elasticsearch.xpack.sql.proto.RequestInfo; @@ -47,13 +48,13 @@ public void setup() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -65,7 +66,7 @@ protected SqlQueryRequest createTestInstance() { randomBoolean(), randomBoolean() ); } - + @Override protected Writeable.Reader instanceReader() { return SqlQueryRequest::new; @@ -92,7 +93,7 @@ protected SqlQueryRequest mutateInstance(SqlQueryRequest instance) { mutator.accept(newRequest); return newRequest; } - + private AbstractSqlQueryRequest mutateRequestInfo(SqlQueryRequest oldRequest, SqlQueryRequest newRequest) { RequestInfo requestInfo = randomValueOtherThan(newRequest.requestInfo(), this::randomRequestInfo); newRequest.requestInfo(requestInfo); @@ -106,10 +107,10 @@ private AbstractSqlQueryRequest mutateRequestInfo(SqlQueryRequest oldRequest, Sq param.hasExplicitType(true); } } - + return newRequest; } - + public void testFromXContent() throws IOException { xContentTester(this::createParser, this::createTestInstance, SqlQueryRequestTests::toXContent, this::doParseInstance) .numberOfTestRuns(NUMBER_OF_TEST_RUNS) @@ -126,11 +127,11 @@ public void testTimeZoneNullException() { IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> sqlQueryRequest.zoneId(null)); assertEquals("time zone may not be null.", e.getMessage()); } - + private RequestInfo randomRequestInfo() { return new RequestInfo(randomFrom(Mode.values()), randomFrom(randomFrom(CLIENT_IDS), requestInfo.clientId())); } - + private TimeValue randomTV() { return TimeValue.parseTimeValue(randomTimeValue(), null, "test"); } diff --git a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlTranslateRequestTests.java b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlTranslateRequestTests.java index cd992dab530af..d0e3b692d7910 100644 --- a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlTranslateRequestTests.java +++ b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlTranslateRequestTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.sql.proto.Mode; import org.elasticsearch.xpack.sql.proto.RequestInfo; import org.junit.Before; @@ -51,13 +52,13 @@ private TimeValue randomTV() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformIntegTestCase.java b/x-pack/plugin/transform/qa/multi-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformIntegTestCase.java index c1d0fd5d5986a..34f27ad12c0e7 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformIntegTestCase.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformIntegTestCase.java @@ -61,6 +61,7 @@ import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.rest.ESRestTestCase; +import org.elasticsearch.usage.UsageService; import org.joda.time.Instant; import java.io.IOException; @@ -386,7 +387,7 @@ private void waitForPendingTasks() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -398,8 +399,8 @@ protected Settings restClientSettings() { } protected static class TestRestHighLevelClient extends RestHighLevelClient { - private static final List X_CONTENT_ENTRIES = new SearchModule(Settings.EMPTY, Collections.emptyList()) - .getNamedXContents(); + private static final List X_CONTENT_ENTRIES = + new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents(); TestRestHighLevelClient() { super(client(), restClient -> {}, X_CONTENT_ENTRIES); diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java index 1e29db2c88425..1f7f187c7db86 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java @@ -25,6 +25,7 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.rest.ESRestTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.transforms.TransformConfig; import org.elasticsearch.xpack.core.transform.transforms.persistence.TransformInternalIndexConstants; @@ -126,7 +127,8 @@ private void createSourceIndex(String index) throws IOException { private class TestRestHighLevelClient extends RestHighLevelClient { TestRestHighLevelClient() { - super(client(), restClient -> {}, new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + super(client(), restClient -> {}, + new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); } } } diff --git a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationsTests.java b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationsTests.java index e81c2b464d00e..a559331b7df8b 100644 --- a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationsTests.java +++ b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationsTests.java @@ -18,6 +18,7 @@ import org.elasticsearch.search.aggregations.metrics.MinAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.PercentilesAggregationBuilder; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.analytics.AnalyticsPlugin; import java.util.Arrays; @@ -96,7 +97,8 @@ public void testResolveTargetMapping() { public void testAggregationsVsTransforms() { // Note: if a new plugin is added, it must be added here - SearchModule searchModule = new SearchModule(Settings.EMPTY, Arrays.asList((new AnalyticsPlugin()), new MatrixAggregationPlugin())); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Arrays.asList((new AnalyticsPlugin()), new MatrixAggregationPlugin()), + new UsageService()); List namedWriteables = searchModule.getNamedWriteables(); List aggregationNames = namedWriteables.stream() diff --git a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java index 4f361c5e9d0d9..020a9d58efff5 100644 --- a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java +++ b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.client.NoOpClient; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.transforms.QueryConfig; import org.elasticsearch.xpack.core.transform.transforms.SourceConfig; import org.elasticsearch.xpack.core.transform.transforms.pivot.AggregationConfig; @@ -65,7 +66,7 @@ public class PivotTests extends ESTestCase { @Before public void registerAggregationNamedObjects() throws Exception { // register aggregations as NamedWriteable - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); namedXContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/test/integration/SearchInputTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/test/integration/SearchInputTests.java index e45b1a7b91ee1..34e57effbfeb2 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/test/integration/SearchInputTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/test/integration/SearchInputTests.java @@ -32,6 +32,7 @@ import org.elasticsearch.search.internal.InternalSearchResponse; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.watcher.execution.WatchExecutionContext; import org.elasticsearch.xpack.core.watcher.input.Input; import org.elasticsearch.xpack.core.watcher.watch.Payload; @@ -188,7 +189,7 @@ public void testThatEmptyRequestBodyWorks() throws Exception { } private WatcherSearchTemplateService watcherSearchTemplateService() { - SearchModule module = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule module = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new WatcherSearchTemplateService(scriptService, new NamedXContentRegistry(module.getNamedXContents())); } } From b8e7051068bb1fef089abdaae593fe683c7d032d Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Mon, 27 Apr 2020 10:56:19 -0400 Subject: [PATCH 05/16] Fix subtype in TTest and IPRanges --- .../bucket/range/BinaryRangeAggregatorFactory.java | 8 ++++++++ .../main/java/org/elasticsearch/usage/UsageService.java | 7 ++++++- .../xpack/analytics/ttest/TTestAggregatorFactory.java | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java index 06585389446fa..668e2a006f62b 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java @@ -26,12 +26,15 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceType; import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; import java.util.Map; +import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; + public class BinaryRangeAggregatorFactory extends ValuesSourceAggregatorFactory { @@ -68,4 +71,9 @@ protected Aggregator doCreateInternal(ValuesSource valuesSource, ranges, keyed, searchContext, parent, metadata); } + @Override + public String getStatsSubtype() { + // IPRange doesn't register itself correctly + return OTHER_SUBTYPE; + } } diff --git a/server/src/main/java/org/elasticsearch/usage/UsageService.java b/server/src/main/java/org/elasticsearch/usage/UsageService.java index 7f531581ca9d6..3e43c06a04934 100644 --- a/server/src/main/java/org/elasticsearch/usage/UsageService.java +++ b/server/src/main/java/org/elasticsearch/usage/UsageService.java @@ -110,7 +110,12 @@ public void incAggregationUsage(String aggregationName, String valuesSourceType) Map valuesSourceMap = aggs.get(aggregationName); // Not all aggs register their usage at the moment we also don't register them in test context if (valuesSourceMap != null) { - valuesSourceMap.get(valuesSourceType).increment(); + LongAdder adder = valuesSourceMap.get(valuesSourceType); + if (adder != null) { + adder.increment(); + } else { + throw new IllegalArgumentException("Unknown subtype [" + aggregationName + "][" + valuesSourceType + "]"); + } } } diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorFactory.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorFactory.java index 2c91d5a2475e6..5247554a9c2bf 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorFactory.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorFactory.java @@ -123,6 +123,6 @@ public Weight getWeight(Query filter) { @Override public String getStatsSubtype() { - return configs.get(A_FIELD.getPreferredName()).scriptValueType().name(); + return configs.get(A_FIELD.getPreferredName()).valueSourceType().typeName(); } } From 530a5dde5decf7357fb15aa3fee0751c045e30ca Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Mon, 27 Apr 2020 11:20:00 -0400 Subject: [PATCH 06/16] Fix more subtypes in aggs that don't register themselves --- .../histogram/AutoDateHistogramAggregatorFactory.java | 8 ++++++++ .../bucket/range/GeoDistanceRangeAggregatorFactory.java | 7 +++++++ .../bucket/sampler/DiversifiedAggregatorFactory.java | 7 +++++++ 3 files changed, 22 insertions(+) diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java index 758bec06c44d9..87f996a957645 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java @@ -34,6 +34,8 @@ import java.io.IOException; import java.util.Map; +import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; + public final class AutoDateHistogramAggregatorFactory extends ValuesSourceAggregatorFactory { @@ -83,4 +85,10 @@ protected Aggregator createUnmapped(SearchContext searchContext, Map metadata) throws IOException { return createAggregator(null, searchContext, parent, metadata); } + + @Override + public String getStatsSubtype() { + // AutoDateHistogramAggregatorFactory doesn't register itself with ValuesSourceRegistry + return OTHER_SUBTYPE; + } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceRangeAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceRangeAggregatorFactory.java index 329d47d1d834b..5a3892f4e070e 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceRangeAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceRangeAggregatorFactory.java @@ -42,6 +42,8 @@ import java.io.IOException; import java.util.Map; +import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; + public class GeoDistanceRangeAggregatorFactory extends ValuesSourceAggregatorFactory { @@ -128,4 +130,9 @@ public SortedBinaryDocValues bytesValues(LeafReaderContext ctx) { } + @Override + public String getStatsSubtype() { + // GeoDistanceRangeAggregatorFactory doesn't register itself with ValuesSourceRegistry + return OTHER_SUBTYPE; + } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java index 5fef17ebd857d..709417edb5f11 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java @@ -36,6 +36,8 @@ import java.io.IOException; import java.util.Map; +import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; + public class DiversifiedAggregatorFactory extends ValuesSourceAggregatorFactory { private final int shardSize; @@ -98,4 +100,9 @@ public InternalAggregation buildEmptyAggregation() { }; } + @Override + public String getStatsSubtype() { + // DiversifiedAggregatorFactory doesn't register itself with ValuesSourceRegistry + return OTHER_SUBTYPE; + } } From 39a9bb320ecddf39313bbb07248172f5abd9e0a2 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Mon, 27 Apr 2020 12:28:23 -0400 Subject: [PATCH 07/16] Fix doc tests --- docs/reference/cluster/nodes-usage.asciidoc | 8 ++------ .../bucket/range/BinaryRangeAggregatorFactory.java | 1 - 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/docs/reference/cluster/nodes-usage.asciidoc b/docs/reference/cluster/nodes-usage.asciidoc index 5f7b089a1bca6..368289d3bdcf0 100644 --- a/docs/reference/cluster/nodes-usage.asciidoc +++ b/docs/reference/cluster/nodes-usage.asciidoc @@ -85,12 +85,8 @@ The API returns the following response: "search_action": 19, <3> "nodes_info_action": 36 }, - "aggregations" : { - "terms" : { - "bytes" : 1, <4> - "ip" : 3, - "numeric" : 5 <5> - } + "aggregations": { + ... } } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java index 668e2a006f62b..6a878c3c44e48 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java @@ -26,7 +26,6 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; From 980ca3322af3543f55eeecc9a664b09c99539dea Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Mon, 27 Apr 2020 12:44:04 -0400 Subject: [PATCH 08/16] Fix docs --- docs/reference/cluster/nodes-usage.asciidoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/reference/cluster/nodes-usage.asciidoc b/docs/reference/cluster/nodes-usage.asciidoc index 368289d3bdcf0..923e0ae944350 100644 --- a/docs/reference/cluster/nodes-usage.asciidoc +++ b/docs/reference/cluster/nodes-usage.asciidoc @@ -102,5 +102,4 @@ The API returns the following response: <2> Timestamp for when the usage information recording was started. This is equivalent to the time that the node was started. <3> Search action has been called 19 times for this node. -<4> Terms aggregation on a keyword field has been called 1 time on this node. -<5> Terms aggregation on a numeric field has been called 5 time on this node. + From 2eae8097268f12fcef10560e334c6c36981f99f9 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Mon, 27 Apr 2020 13:20:09 -0400 Subject: [PATCH 09/16] Fix ScriptedMetricAggregatorTests --- .../metrics/ScriptedMetricAggregatorTests.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java index 56206f268e1c0..4adbc1179b7b1 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java @@ -39,6 +39,8 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.script.ScriptType; import org.elasticsearch.search.aggregations.AggregatorTestCase; +import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; +import org.elasticsearch.usage.UsageService; import org.junit.BeforeClass; import java.io.IOException; @@ -50,6 +52,8 @@ import java.util.function.Function; import static java.util.Collections.singleton; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class ScriptedMetricAggregatorTests extends AggregatorTestCase { @@ -426,8 +430,11 @@ protected QueryShardContext queryShardContextMock(IndexSearcher searcher, MockScriptEngine scriptEngine = new MockScriptEngine(MockScriptEngine.NAME, SCRIPTS, Collections.emptyMap()); Map engines = Collections.singletonMap(scriptEngine.getType(), scriptEngine); ScriptService scriptService = new ScriptService(Settings.EMPTY, engines, ScriptModule.CORE_CONTEXTS); + ValuesSourceRegistry valuesSourceRegistry = mock(ValuesSourceRegistry.class); + UsageService usageService = new UsageService(); + when(valuesSourceRegistry.getUsageService()).thenReturn(usageService); return new QueryShardContext(0, indexSettings, BigArrays.NON_RECYCLING_INSTANCE, null, null, mapperService, null, scriptService, xContentRegistry(), writableRegistry(), - null, null, System::currentTimeMillis, null, null, () -> true, null); + null, null, System::currentTimeMillis, null, null, () -> true, valuesSourceRegistry); } } From 4c6b4dd16cb8214d47cf4f8fdc94946404e1c716 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Tue, 28 Apr 2020 10:57:56 -0400 Subject: [PATCH 10/16] Fix compilation issues after merge --- .../bucket/range/BinaryRangeAggregatorFactory.java | 2 -- .../org/elasticsearch/xpack/spatial/SpatialPluginTests.java | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java index 1b1fe54b031be..84f2b8def051a 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java @@ -35,8 +35,6 @@ import java.util.List; import java.util.Map; -import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; - public class BinaryRangeAggregatorFactory extends ValuesSourceAggregatorFactory { public static void registerAggregators(ValuesSourceRegistry.Builder builder) { diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialPluginTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialPluginTests.java index 85c377c421427..164a4b7d1ad9a 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialPluginTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialPluginTests.java @@ -14,6 +14,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.VersionUtils; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.spatial.search.aggregations.support.GeoShapeValuesSourceType; import java.util.List; @@ -26,7 +27,7 @@ public class SpatialPluginTests extends ESTestCase { public void testGeoCentroidLicenseCheck() { for (License.OperationMode operationMode : License.OperationMode.values()) { SpatialPlugin plugin = getPluginWithOperationMode(operationMode); - ValuesSourceRegistry.Builder registryBuilder = new ValuesSourceRegistry.Builder(); + ValuesSourceRegistry.Builder registryBuilder = new ValuesSourceRegistry.Builder(new UsageService()); List> registrar = plugin.getAggregationExtentions(); registrar.forEach(c -> c.accept(registryBuilder)); ValuesSourceRegistry registry = registryBuilder.build(); From 4a76f01a3598974a59e613343c64b5529e6a5cfd Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Tue, 28 Apr 2020 11:09:20 -0400 Subject: [PATCH 11/16] Fix merge fallout --- .../search/aggregations/support/ValuesSourceRegistry.java | 1 - 1 file changed, 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java index a71fd794a622d..2cdcd0e8b04a1 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java @@ -81,7 +81,6 @@ public void register(String aggregationName, ValuesSourceType valuesSourceType, public void register(String aggregationName, List valuesSourceTypes, AggregatorSupplier aggregatorSupplier) { for (ValuesSourceType valuesSourceType : valuesSourceTypes) { register(aggregationName, valuesSourceType, aggregatorSupplier); - registerUsage(aggregationName, valuesSourceType); } } From 424884a4bf37001f1072f32283d7d04f49baac69 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Tue, 28 Apr 2020 12:37:55 -0400 Subject: [PATCH 12/16] This gets stale quickly... --- .../core/ml/datafeed/AggProviderWireSerializationTests.java | 5 +++-- .../xpack/ml/integration/MlAutoUpdateServiceIT.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderWireSerializationTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderWireSerializationTests.java index 303f61e6ca294..b70f39f7c3007 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderWireSerializationTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderWireSerializationTests.java @@ -13,6 +13,7 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.AggregatorFactories; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.AbstractBWCWireSerializationTestCase; import org.elasticsearch.xpack.core.ml.utils.XContentObjectTransformer; @@ -24,7 +25,7 @@ public class AggProviderWireSerializationTests extends AbstractBWCWireSerializat @Override protected NamedWriteableRegistry writableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @@ -47,7 +48,7 @@ public static AggProvider createRandomValidAggProvider() { Map agg = Collections.singletonMap(randomAlphaOfLengthBetween(1, 10), Collections.singletonMap("avg", Collections.singletonMap("field", randomAlphaOfLengthBetween(1, 10)))); try { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); AggregatorFactories.Builder aggs = XContentObjectTransformer.aggregatorTransformer(new NamedXContentRegistry(searchModule.getNamedXContents())) .fromMap(agg); diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlAutoUpdateServiceIT.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlAutoUpdateServiceIT.java index e8bc9012b5b49..150ac624591a1 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlAutoUpdateServiceIT.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlAutoUpdateServiceIT.java @@ -18,6 +18,7 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.search.SearchModule; +import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.job.persistence.AnomalyDetectorsIndex; import org.elasticsearch.xpack.ml.MlAutoUpdateService; @@ -118,7 +119,7 @@ public void testAutomaticModelUpdate() throws Exception { @Override public NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); } } From ca2fb259678cc6e48830fc1a3954d413391d3101 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Tue, 28 Apr 2020 15:16:31 -0400 Subject: [PATCH 13/16] Address review comments --- .../org/elasticsearch/test/rest/NodeRestUsageIT.java | 10 ++++------ .../java/org/elasticsearch/search/SearchModule.java | 2 ++ .../search/aggregations/AggregatorFactory.java | 6 ++++++ .../java/org/elasticsearch/usage/UsageService.java | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java b/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java index c5787a460348d..ff327d554d1d1 100644 --- a/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java +++ b/distribution/archives/integ-test-zip/src/test/java/org/elasticsearch/test/rest/NodeRestUsageIT.java @@ -148,12 +148,10 @@ public void testAggregationUsage() throws IOException { Map> beforeCombinedAggsUsage = getTotalUsage(beforeNodesMap); // Do some requests to get some rest usage stats - client().performRequest(new Request("PUT", "/test")); - for (int i = 0; i < 3; i++) { - final Request index = new Request("POST", "/test/_doc/" + i); - index.setJsonEntity("{\"str\": \"val\", \"foo\":\"bar\", \"num\": 5, \"start\": \"2020-03-15\"}"); - client().performRequest(index); - } + Request create = new Request("PUT", "/test"); + create.setJsonEntity("{\"mappings\": {\"properties\": { \"str\": {\"type\": \"keyword\"}, " + + "\"foo\": {\"type\": \"keyword\"}, \"num\": {\"type\": \"long\"}, \"start\": {\"type\": \"date\"} } }}"); + client().performRequest(create); Request searchRequest = new Request("GET", "/test/_search"); SearchSourceBuilder searchSource = new SearchSourceBuilder() diff --git a/server/src/main/java/org/elasticsearch/search/SearchModule.java b/server/src/main/java/org/elasticsearch/search/SearchModule.java index 1f0a1622a476c..0247c7794885c 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/server/src/main/java/org/elasticsearch/search/SearchModule.java @@ -489,6 +489,8 @@ private void registerAggregation(AggregationSpec spec, ValuesSourceRegistry.Buil if (register != null) { register.accept(builder); } else { + // Register is typically handling usage registration, but for the older aggregations that don't use register, we + // have to register usage explicitly here. usageService.registerAggregationUsage(spec.getName().getPreferredName()); } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java index c6101c022a895..3d8729b5c8abb 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java @@ -240,6 +240,12 @@ protected static Aggregator asMultiBucketAggregator(final AggregatorFactory fact return new MultiBucketAggregatorWrapper(bigArrays, searchContext, parent, factory, first); } + /** + * Returns the aggregation subtype for nodes usage stats. + *

+ * It should match the types registered by calling {@linkplain org.elasticsearch.usage.UsageService#registerAggregationUsage}. In other + * words, it should be ValueSourcesType for the VST aggregations OTHER_SUBTYPE for all other aggregations. + */ public String getStatsSubtype() { return OTHER_SUBTYPE; } diff --git a/server/src/main/java/org/elasticsearch/usage/UsageService.java b/server/src/main/java/org/elasticsearch/usage/UsageService.java index 3e43c06a04934..9e2b67d3ad67e 100644 --- a/server/src/main/java/org/elasticsearch/usage/UsageService.java +++ b/server/src/main/java/org/elasticsearch/usage/UsageService.java @@ -113,10 +113,10 @@ public void incAggregationUsage(String aggregationName, String valuesSourceType) LongAdder adder = valuesSourceMap.get(valuesSourceType); if (adder != null) { adder.increment(); - } else { - throw new IllegalArgumentException("Unknown subtype [" + aggregationName + "][" + valuesSourceType + "]"); } + assert adder != null : "Unknown subtype [" + aggregationName + "][" + valuesSourceType + "]"; } + assert valuesSourceMap != null : "Unknown aggregation [" + aggregationName + "][" + valuesSourceType + "]"; } /** From 68a2eb525eedf344b17cab9cce3556dd9794cd83 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Tue, 28 Apr 2020 15:47:11 -0400 Subject: [PATCH 14/16] Fix tests that were missing proper agg registration in the search module --- .../matrix/stats/MatrixStatsAggregatorTests.java | 7 +++++++ .../aggregations/ChildrenToParentAggregatorTests.java | 7 +++++++ .../aggregations/ParentToChildrenAggregatorTests.java | 7 +++++++ .../topmetrics/TopMetricsAggregatorTests.java | 10 +++++++++- .../xpack/analytics/ttest/TTestAggregatorTests.java | 7 +++++++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/modules/aggs-matrix-stats/src/test/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregatorTests.java b/modules/aggs-matrix-stats/src/test/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregatorTests.java index 44082b16defb6..f7c1e06ab6899 100644 --- a/modules/aggs-matrix-stats/src/test/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregatorTests.java +++ b/modules/aggs-matrix-stats/src/test/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregatorTests.java @@ -30,10 +30,13 @@ import org.apache.lucene.util.NumericUtils; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.NumberFieldMapper; +import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.aggregations.AggregatorTestCase; +import org.elasticsearch.search.aggregations.matrix.MatrixAggregationPlugin; import java.util.Arrays; import java.util.Collections; +import java.util.List; public class MatrixStatsAggregatorTests extends AggregatorTestCase { @@ -136,4 +139,8 @@ public void testTwoFieldsReduce() throws Exception { } } + @Override + protected List getSearchPlugins() { + return Collections.singletonList(new MatrixAggregationPlugin()); + } } diff --git a/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ChildrenToParentAggregatorTests.java b/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ChildrenToParentAggregatorTests.java index 3f2fed591b3d0..7a7bc4e92ed9f 100644 --- a/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ChildrenToParentAggregatorTests.java +++ b/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ChildrenToParentAggregatorTests.java @@ -46,8 +46,10 @@ import org.elasticsearch.index.mapper.NumberFieldMapper; import org.elasticsearch.index.mapper.Uid; import org.elasticsearch.index.shard.ShardId; +import org.elasticsearch.join.ParentJoinPlugin; import org.elasticsearch.join.mapper.MetaJoinFieldMapper; import org.elasticsearch.join.mapper.ParentJoinFieldMapper; +import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorTestCase; @@ -328,4 +330,9 @@ private void testCaseTermsParentTerms(Query query, IndexSearcher indexSearcher, LongTerms result = search(indexSearcher, query, aggregationBuilder, fieldType, subFieldType); verify.accept(result); } + + @Override + protected List getSearchPlugins() { + return Collections.singletonList(new ParentJoinPlugin()); + } } diff --git a/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ParentToChildrenAggregatorTests.java b/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ParentToChildrenAggregatorTests.java index 34ad85aedeac1..cc302955234e5 100644 --- a/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ParentToChildrenAggregatorTests.java +++ b/modules/parent-join/src/test/java/org/elasticsearch/join/aggregations/ParentToChildrenAggregatorTests.java @@ -46,8 +46,10 @@ import org.elasticsearch.index.mapper.NumberFieldMapper; import org.elasticsearch.index.mapper.Uid; import org.elasticsearch.index.shard.ShardId; +import org.elasticsearch.join.ParentJoinPlugin; import org.elasticsearch.join.mapper.MetaJoinFieldMapper; import org.elasticsearch.join.mapper.ParentJoinFieldMapper; +import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.aggregations.AggregatorTestCase; import org.elasticsearch.search.aggregations.metrics.InternalMin; import org.elasticsearch.search.aggregations.metrics.MinAggregationBuilder; @@ -187,4 +189,9 @@ private void testCase(Query query, IndexSearcher indexSearcher, Consumer getSearchPlugins() { + return Collections.singletonList(new ParentJoinPlugin()); + } } diff --git a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/topmetrics/TopMetricsAggregatorTests.java b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/topmetrics/TopMetricsAggregatorTests.java index c13b4a94ade54..55a8ffdf4a559 100644 --- a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/topmetrics/TopMetricsAggregatorTests.java +++ b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/topmetrics/TopMetricsAggregatorTests.java @@ -39,6 +39,7 @@ import org.elasticsearch.index.mapper.NumberFieldMapper.NumberType; import org.elasticsearch.index.mapper.TextFieldMapper; import org.elasticsearch.indices.breaker.CircuitBreakerService; +import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.script.MockScriptEngine; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptEngine; @@ -64,9 +65,11 @@ import org.elasticsearch.search.sort.SortBuilder; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.search.sort.SortValue; +import org.elasticsearch.xpack.analytics.AnalyticsPlugin; import java.io.IOException; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -377,7 +380,7 @@ public long addWithoutBreaking(long bytes) { * BigArrays allocates the new array before freeing the old one. * That causes us to trip when we're about 2/3 of the way to the * limit. And 2/3 of 190 is 126. Which is pretty much what we - * expect. Sort of. + * expect. Sort of. */ int bucketThatBreaks = 646; for (int b = 0; b < bucketThatBreaks; b++) { @@ -584,4 +587,9 @@ protected ScriptService getMockScriptService() { Map engines = singletonMap(scriptEngine.getType(), scriptEngine); return new ScriptService(Settings.EMPTY, engines, ScriptModule.CORE_CONTEXTS); } + + @Override + protected List getSearchPlugins() { + return Collections.singletonList(new AnalyticsPlugin()); + } } diff --git a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorTests.java b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorTests.java index d0d844fd30d09..caf4731cf6e44 100644 --- a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorTests.java +++ b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregatorTests.java @@ -23,6 +23,7 @@ import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.NumberFieldMapper; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.script.MockScriptEngine; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptEngine; @@ -42,6 +43,7 @@ import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import org.elasticsearch.search.lookup.LeafDocLookup; +import org.elasticsearch.xpack.analytics.AnalyticsPlugin; import java.io.IOException; import java.util.Collections; @@ -683,4 +685,9 @@ private void testC } } } + + @Override + protected List getSearchPlugins() { + return Collections.singletonList(new AnalyticsPlugin()); + } } From c9bed396d6e5ad2a10c107287a0efe86bd59e9b4 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Tue, 28 Apr 2020 16:14:29 -0400 Subject: [PATCH 15/16] Fix ScriptedMetricAggregatorTests --- .../aggregations/metrics/ScriptedMetricAggregatorTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java index 4adbc1179b7b1..f044eb7d96e25 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java @@ -432,6 +432,7 @@ protected QueryShardContext queryShardContextMock(IndexSearcher searcher, ScriptService scriptService = new ScriptService(Settings.EMPTY, engines, ScriptModule.CORE_CONTEXTS); ValuesSourceRegistry valuesSourceRegistry = mock(ValuesSourceRegistry.class); UsageService usageService = new UsageService(); + usageService.registerAggregationUsage(ScriptedMetricAggregationBuilder.NAME); when(valuesSourceRegistry.getUsageService()).thenReturn(usageService); return new QueryShardContext(0, indexSettings, BigArrays.NON_RECYCLING_INSTANCE, null, null, mapperService, null, scriptService, xContentRegistry(), writableRegistry(), From 6f0c4fd297bad870a2bec9acd3106c89e02c1b25 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Wed, 29 Apr 2020 17:38:22 -0400 Subject: [PATCH 16/16] Address review comments --- .../client/ESRestHighLevelClientTestCase.java | 4 +- .../client/MLRequestConvertersTests.java | 3 +- .../TransformRequestConvertersTests.java | 3 +- .../client/core/CountRequestTests.java | 3 +- .../client/eql/EqlSearchRequestTests.java | 3 +- .../ml/EvaluateDataFrameRequestTests.java | 3 +- .../ml/PutDataFrameAnalyticsRequestTests.java | 3 +- .../DataFrameAnalyticsConfigTests.java | 3 +- .../DataFrameAnalyticsSourceTests.java | 3 +- .../client/ml/dataframe/QueryConfigTests.java | 3 +- .../NamedXContentObjectHelperTests.java | 3 +- .../ml/inference/TrainedModelConfigTests.java | 3 +- .../TrainedModelDefinitionTests.java | 3 +- .../trainedmodel/ensemble/EnsembleTests.java | 3 +- .../ml/job/config/AnalysisConfigTests.java | 3 +- .../client/ml/job/config/JobTests.java | 3 +- .../transform/GetTransformResponseTests.java | 3 +- .../PreviewTransformRequestTests.java | 3 +- .../transform/PutTransformRequestTests.java | 3 +- ...UpdateDataFrameTransformResponseTests.java | 3 +- .../UpdateTransformRequestTests.java | 3 +- .../transforms/QueryConfigTests.java | 3 +- .../transforms/SourceConfigTests.java | 3 +- .../transforms/TransformConfigTests.java | 3 +- .../TransformConfigUpdateTests.java | 3 +- .../pivot/AggregationConfigTests.java | 3 +- .../transforms/pivot/PivotConfigTests.java | 3 +- .../action/PainlessExecuteRequestTests.java | 7 +- .../ChildrenAggregatorFactory.java | 2 +- .../aggregations/ParentAggregatorFactory.java | 2 +- .../percolator/QueryBuilderStoreTests.java | 5 +- .../index/rankeval/RatedRequestsTests.java | 3 +- .../upgrades/QueryBuilderBWCIT.java | 3 +- .../node/usage/TransportNodesUsageAction.java | 17 +++- .../index/query/QueryShardContext.java | 4 +- .../java/org/elasticsearch/node/Node.java | 4 +- .../elasticsearch/search/SearchModule.java | 10 +-- .../aggregations/AggregatorFactory.java | 6 +- .../GeoDistanceRangeAggregatorFactory.java | 2 +- .../sampler/DiversifiedAggregatorFactory.java | 2 +- .../support/AggregationUsageService.java | 88 +++++++++++++++++++ .../support/ValuesSourceRegistry.java | 21 +++-- .../org/elasticsearch/usage/UsageService.java | 83 +++-------------- .../ShardValidateQueryRequestTests.java | 3 +- .../ClusterSearchShardsResponseTests.java | 3 +- .../action/explain/ExplainRequestTests.java | 3 +- .../search/SearchPhaseControllerTests.java | 3 +- .../action/search/SearchResponseTests.java | 3 +- .../query/AbstractQueryBuilderTests.java | 3 +- .../index/query/InnerHitBuilderTests.java | 3 +- .../index/reindex/ReindexRequestTests.java | 5 +- .../rest/action/RestActionsTests.java | 3 +- .../search/AbstractSearchTestCase.java | 3 +- .../search/SearchModuleTests.java | 15 ++-- .../SearchSortValuesAndFormatsTests.java | 3 +- .../AggregatorFactoriesBuilderTests.java | 3 +- .../AggregatorFactoriesTests.java | 3 +- .../InternalAggregationsTests.java | 3 +- .../SignificanceHeuristicTests.java | 5 +- .../ScriptedMetricAggregatorTests.java | 8 +- .../WeightedAvgAggregationBuilderTests.java | 3 +- .../MultiValuesSourceFieldConfigTests.java | 5 +- .../search/collapse/CollapseBuilderTests.java | 3 +- .../highlight/HighlightBuilderTests.java | 3 +- .../search/query/QuerySearchResultTests.java | 3 +- .../rescore/QueryRescorerBuilderTests.java | 3 +- .../search/sort/AbstractSortTestCase.java | 3 +- .../search/sort/NestedSortBuilderTests.java | 3 +- .../search/sort/SortBuilderTests.java | 3 +- .../AbstractSuggestionBuilderTestCase.java | 3 +- .../search/suggest/SuggestBuilderTests.java | 3 +- .../search/suggest/SuggestTests.java | 3 +- .../usage/UsageServiceTests.java | 49 +++-------- .../aggregations/AggregatorTestCase.java | 3 +- .../BasePipelineAggregationTestCase.java | 3 +- .../test/AbstractBuilderTestCase.java | 3 +- .../test/InternalAggregationTestCase.java | 3 +- .../ttest/TTestAggregationBuilderTests.java | 5 +- .../search/AsyncSearchResponseTests.java | 3 +- .../EvaluateDataFrameActionRequestTests.java | 5 +- ...DataFrameAnalyticsActionResponseTests.java | 5 +- .../GetDatafeedsActionResponseTests.java | 3 +- ...tDataFrameAnalyticsActionRequestTests.java | 5 +- ...DataFrameAnalyticsActionResponseTests.java | 3 +- .../action/PutDatafeedActionRequestTests.java | 5 +- .../PutDatafeedActionResponseTests.java | 3 +- .../UpdateDatafeedActionRequestTests.java | 5 +- .../core/ml/datafeed/AggProviderTests.java | 7 +- .../AggProviderWireSerializationTests.java | 5 +- .../core/ml/datafeed/DatafeedConfigTests.java | 9 +- .../core/ml/datafeed/DatafeedUpdateTests.java | 7 +- .../DataFrameAnalyticsConfigTests.java | 5 +- .../DataFrameAnalyticsSourceTests.java | 5 +- .../inference/NamedXContentObjectsTests.java | 3 +- .../ml/inference/TrainedModelConfigTests.java | 3 +- .../TrainedModelDefinitionTests.java | 3 +- .../LangIdentNeuralNetworkTests.java | 3 +- .../utils/NamedXContentObjectHelperTests.java | 3 +- .../core/ml/utils/QueryProviderTests.java | 5 +- .../utils/XContentObjectTransformerTests.java | 3 +- .../AbstractSerializingTransformTestCase.java | 3 +- ...tractWireSerializingTransformTestCase.java | 3 +- .../PutTransformActionRequestTests.java | 3 +- .../AbstractSerializingTransformTestCase.java | 3 +- .../deprecation/MlDeprecationChecksTests.java | 3 +- .../action/EnrichShardMultiSearchAction.java | 5 +- .../eql/action/EqlRequestParserTests.java | 3 +- .../eql/action/EqlSearchRequestTests.java | 5 +- .../ml/integration/MlNativeIntegTestCase.java | 5 +- ...lConfigMigrationEligibilityCheckTests.java | 3 +- .../xpack/ml/MlConfigMigratorTests.java | 3 +- .../xpack/ml/MlMetadataTests.java | 5 +- .../xpack/ml/MlSingleNodeTestCase.java | 3 +- .../TransportStartDatafeedActionTests.java | 3 +- .../datafeed/DatafeedJobValidatorTests.java | 3 +- .../DelayedDataDetectorFactoryTests.java | 3 +- .../extractor/DataExtractorFactoryTests.java | 3 +- .../AggregationDataExtractorFactoryTests.java | 3 +- .../ChunkedDataExtractorFactoryTests.java | 3 +- .../process/results/AnalyticsResultTests.java | 3 +- .../ml/integration/MlAutoUpdateServiceIT.java | 3 +- .../integration/ModelInferenceActionIT.java | 3 +- .../integration/TrainedModelProviderIT.java | 3 +- .../xpack/ml/job/JobManagerTests.java | 3 +- .../rollup/RollupRequestTranslationTests.java | 3 +- .../rollup/action/SearchActionTests.java | 3 +- .../xpack/spatial/SpatialPluginTests.java | 3 +- .../sql/action/SqlQueryRequestTests.java | 5 +- .../sql/action/SqlTranslateRequestTests.java | 5 +- .../integration/TransformIntegTestCase.java | 5 +- .../integration/TransformInternalIndexIT.java | 3 +- .../transforms/pivot/AggregationsTests.java | 4 +- .../transforms/pivot/PivotTests.java | 3 +- .../test/integration/SearchInputTests.java | 3 +- 134 files changed, 312 insertions(+), 420 deletions(-) create mode 100644 server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationUsageService.java diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java index f4c484bb8f0dc..174c98f3642df 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java @@ -43,7 +43,6 @@ import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.rest.ESRestTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.Before; @@ -145,8 +144,7 @@ protected interface AsyncMethodNoRequest { private static class HighLevelClient extends RestHighLevelClient { private HighLevelClient(RestClient restClient) { - super(restClient, (client) -> {}, new SearchModule(Settings.EMPTY, Collections.emptyList(), - new UsageService()).getNamedXContents()); + super(restClient, (client) -> {}, new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java index b3d5025cf65f4..86b14a7e8a745 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/MLRequestConvertersTests.java @@ -115,7 +115,6 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -1086,7 +1085,7 @@ public void testSetUpgradeMode() { @Override protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); namedXContent.addAll(new MlEvaluationNamedXContentProvider().getNamedXContentParsers()); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/TransformRequestConvertersTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/TransformRequestConvertersTests.java index 853c2d54d5093..9d25f302b8c41 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/TransformRequestConvertersTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/TransformRequestConvertersTests.java @@ -44,7 +44,6 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -61,7 +60,7 @@ public class TransformRequestConvertersTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java index d60177f766af4..de6eea6b00354 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java @@ -31,7 +31,6 @@ import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.builder.SearchSourceBuilder; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -68,7 +67,7 @@ protected void assertInstances(QueryBuilder serverInstance, CountRequest clientT @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of(), new UsageService()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of()).getNamedXContents()); } public void testIllegalArguments() { diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java index 46d5b5e4cf99a..66b8b334d2dcb 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.List; @@ -86,6 +85,6 @@ protected void assertInstances(org.elasticsearch.xpack.eql.action.EqlSearchReque @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of(), new UsageService()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of()).getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/EvaluateDataFrameRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/EvaluateDataFrameRequestTests.java index beb59be19222e..8cdeaf68ed648 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/EvaluateDataFrameRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/EvaluateDataFrameRequestTests.java @@ -29,7 +29,6 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -78,7 +77,7 @@ protected Predicate getRandomFieldsExcludeFilter() { @Override protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); namedXContent.addAll(new MlEvaluationNamedXContentProvider().getNamedXContentParsers()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/PutDataFrameAnalyticsRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/PutDataFrameAnalyticsRequestTests.java index cdbb210431208..7387ba8ddeb65 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/PutDataFrameAnalyticsRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/PutDataFrameAnalyticsRequestTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -68,7 +67,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfigTests.java index f4d8182af1cdf..1e59aac7af293 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsConfigTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.time.Instant; @@ -97,7 +96,7 @@ protected Predicate getRandomFieldsExcludeFilter() { @Override protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsSourceTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsSourceTests.java index 6c1fc93a41fd6..3fae44aad9060 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsSourceTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/DataFrameAnalyticsSourceTests.java @@ -25,7 +25,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.function.Predicate; @@ -74,7 +73,7 @@ protected DataFrameAnalyticsSource createTestInstance() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/QueryConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/QueryConfigTests.java index 6093963cb241e..7413bc936a215 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/QueryConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/dataframe/QueryConfigTests.java @@ -27,7 +27,6 @@ import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; @@ -57,7 +56,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/NamedXContentObjectHelperTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/NamedXContentObjectHelperTests.java index c74ca93b1e0e1..9eca65e529928 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/NamedXContentObjectHelperTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/NamedXContentObjectHelperTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -106,7 +105,7 @@ protected NamedXContentRegistry xContentRegistry() { namedXContent.addAll(Collections.singletonList(new NamedXContentRegistry.Entry(NamedXContentObject.class, new ParseField("my_named_object"), (p, c) -> NamedTestObject.PARSER.apply(p, null)))); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelConfigTests.java index 8aeda1ac0536d..3fabed1619990 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelConfigTests.java @@ -27,7 +27,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.time.Instant; @@ -92,7 +91,7 @@ protected TrainedModelConfig createTestInstance() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelDefinitionTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelDefinitionTests.java index a5eb86b8aaea8..39bfe62af0099 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelDefinitionTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/TrainedModelDefinitionTests.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -85,7 +84,7 @@ protected TrainedModelDefinition createTestInstance() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/trainedmodel/ensemble/EnsembleTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/trainedmodel/ensemble/EnsembleTests.java index 9715bdc05ffbe..520b1c3af90a0 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/trainedmodel/ensemble/EnsembleTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/inference/trainedmodel/ensemble/EnsembleTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -104,7 +103,7 @@ protected Ensemble createTestInstance() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/AnalysisConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/AnalysisConfigTests.java index 27e48a925153e..a72de967d86b7 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/AnalysisConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/AnalysisConfigTests.java @@ -24,7 +24,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.util.ArrayList; import java.util.Arrays; @@ -257,7 +256,7 @@ private static AnalysisConfig.Builder createValidCategorizationConfig() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/JobTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/JobTests.java index 4b0e1a297bc79..5af87c477c31e 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/JobTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ml/job/config/JobTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -172,7 +171,7 @@ public static Job createRandomizedJob() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/GetTransformResponseTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/GetTransformResponseTests.java index 7bc1e3e5f6285..30453f98948f4 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/GetTransformResponseTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/GetTransformResponseTests.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -79,7 +78,7 @@ private static void toXContent(GetTransformResponse response, XContentBuilder bu @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PreviewTransformRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PreviewTransformRequestTests.java index b118336694f24..039f5de152bc7 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PreviewTransformRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PreviewTransformRequestTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -56,7 +55,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PutTransformRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PutTransformRequestTests.java index f49fadeb5046c..52c4770fb9fd4 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PutTransformRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/PutTransformRequestTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -72,7 +71,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateDataFrameTransformResponseTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateDataFrameTransformResponseTests.java index 692c1afcf9105..7dd1313d14a0b 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateDataFrameTransformResponseTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateDataFrameTransformResponseTests.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -55,7 +54,7 @@ private static void toXContent(UpdateTransformResponse response, XContentBuilder @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateTransformRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateTransformRequestTests.java index e240888b09b59..df622cc1a47fa 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateTransformRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/UpdateTransformRequestTests.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -70,7 +69,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/QueryConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/QueryConfigTests.java index 4946f49602219..a5834c0ce5918 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/QueryConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/QueryConfigTests.java @@ -27,7 +27,6 @@ import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; @@ -57,7 +56,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/SourceConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/SourceConfigTests.java index 8dce27eabb949..eb28db9a6ef34 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/SourceConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/SourceConfigTests.java @@ -24,7 +24,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.function.Predicate; @@ -63,7 +62,7 @@ protected SourceConfig createTestInstance() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigTests.java index 3e96fb9b5a0fd..e202a72c431eb 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.time.Instant; @@ -80,7 +79,7 @@ protected Predicate getRandomFieldsExcludeFilter() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigUpdateTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigUpdateTests.java index c29647b5e34ae..fe8261d7ba1af 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigUpdateTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/TransformConfigUpdateTests.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -67,7 +66,7 @@ protected TransformConfigUpdate createTestInstance() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List namedXContents = searchModule.getNamedXContents(); namedXContents.addAll(new TransformNamedXContentProvider().getNamedXContentParsers()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/AggregationConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/AggregationConfigTests.java index 892b8ce44bdab..f568290d93bfc 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/AggregationConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/AggregationConfigTests.java @@ -27,7 +27,6 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.HashSet; @@ -67,7 +66,7 @@ protected boolean supportsUnknownFields() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/PivotConfigTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/PivotConfigTests.java index 10a15a9dac031..66fec4747427f 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/PivotConfigTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/transform/transforms/pivot/PivotConfigTests.java @@ -24,7 +24,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -61,7 +60,7 @@ protected Predicate getRandomFieldsExcludeFilter() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/modules/lang-painless/src/test/java/org/elasticsearch/painless/action/PainlessExecuteRequestTests.java b/modules/lang-painless/src/test/java/org/elasticsearch/painless/action/PainlessExecuteRequestTests.java index af27087a6d320..79d37cc0e5bc7 100644 --- a/modules/lang-painless/src/test/java/org/elasticsearch/painless/action/PainlessExecuteRequestTests.java +++ b/modules/lang-painless/src/test/java/org/elasticsearch/painless/action/PainlessExecuteRequestTests.java @@ -37,7 +37,6 @@ import org.elasticsearch.script.ScriptType; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.io.UncheckedIOException; @@ -74,13 +73,13 @@ public final void testFromXContent() throws Exception { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), - new UsageService()).getNamedWriteables()); + return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList() + ).getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); } @Override diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregatorFactory.java b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregatorFactory.java index c453a67861634..349d74daa9d51 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregatorFactory.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ChildrenAggregatorFactory.java @@ -36,7 +36,7 @@ import java.io.IOException; import java.util.Map; -import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; +import static org.elasticsearch.search.aggregations.support.AggregationUsageService.OTHER_SUBTYPE; public class ChildrenAggregatorFactory extends ValuesSourceAggregatorFactory { diff --git a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregatorFactory.java b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregatorFactory.java index 99841510f1560..82b332a0ec334 100644 --- a/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregatorFactory.java +++ b/modules/parent-join/src/main/java/org/elasticsearch/join/aggregations/ParentAggregatorFactory.java @@ -36,7 +36,7 @@ import java.io.IOException; import java.util.Map; -import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; +import static org.elasticsearch.search.aggregations.support.AggregationUsageService.OTHER_SUBTYPE; public class ParentAggregatorFactory extends ValuesSourceAggregatorFactory { diff --git a/modules/percolator/src/test/java/org/elasticsearch/percolator/QueryBuilderStoreTests.java b/modules/percolator/src/test/java/org/elasticsearch/percolator/QueryBuilderStoreTests.java index 09a25f94ee5c7..e08f49fe8cdc0 100644 --- a/modules/percolator/src/test/java/org/elasticsearch/percolator/QueryBuilderStoreTests.java +++ b/modules/percolator/src/test/java/org/elasticsearch/percolator/QueryBuilderStoreTests.java @@ -46,7 +46,6 @@ import org.elasticsearch.mock.orig.Mockito; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -58,13 +57,13 @@ public class QueryBuilderStoreTests extends ESTestCase { @Override protected NamedWriteableRegistry writableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RatedRequestsTests.java b/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RatedRequestsTests.java index 861f9258f3c84..89d16715e62e6 100644 --- a/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RatedRequestsTests.java +++ b/modules/rank-eval/src/test/java/org/elasticsearch/index/rankeval/RatedRequestsTests.java @@ -39,7 +39,6 @@ import org.elasticsearch.search.suggest.SuggestBuilder; import org.elasticsearch.search.suggest.SuggestBuilders; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -65,7 +64,7 @@ public class RatedRequestsTests extends ESTestCase { @BeforeClass public static void init() { xContentRegistry = new NamedXContentRegistry( - Stream.of(new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedXContents().stream()) + Stream.of(new SearchModule(Settings.EMPTY, emptyList()).getNamedXContents().stream()) .flatMap(Function.identity()).collect(toList())); } diff --git a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java index 348082a1b224c..ee655657ee6a0 100644 --- a/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java +++ b/qa/full-cluster-restart/src/test/java/org/elasticsearch/upgrades/QueryBuilderBWCIT.java @@ -46,7 +46,6 @@ import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; import org.elasticsearch.index.query.functionscore.RandomScoreFunctionBuilder; import org.elasticsearch.search.SearchModule; -import org.elasticsearch.usage.UsageService; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -189,7 +188,7 @@ public void testQueryBuilderBWC() throws Exception { } } else { NamedWriteableRegistry registry = new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, - Collections.emptyList(), new UsageService()).getNamedWriteables()); + Collections.emptyList()).getNamedWriteables()); for (int i = 0; i < CANDIDATES.size(); i++) { QueryBuilder expectedQueryBuilder = (QueryBuilder) CANDIDATES.get(i)[1]; diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/TransportNodesUsageAction.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/TransportNodesUsageAction.java index 7b84cdd472313..7a1a1c89b10b0 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/TransportNodesUsageAction.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/usage/TransportNodesUsageAction.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.search.aggregations.support.AggregationUsageService; import org.elasticsearch.tasks.Task; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.TransportRequest; @@ -34,18 +35,24 @@ import java.io.IOException; import java.util.List; +import java.util.Map; public class TransportNodesUsageAction extends TransportNodesAction { - private UsageService usageService; + private final UsageService restUsageService; + private final AggregationUsageService aggregationUsageService; + private final long sinceTime; @Inject public TransportNodesUsageAction(ThreadPool threadPool, ClusterService clusterService, TransportService transportService, - ActionFilters actionFilters, UsageService usageService) { + ActionFilters actionFilters, UsageService restUsageService, + AggregationUsageService aggregationUsageService) { super(NodesUsageAction.NAME, threadPool, clusterService, transportService, actionFilters, NodesUsageRequest::new, NodeUsageRequest::new, ThreadPool.Names.MANAGEMENT, NodeUsage.class); - this.usageService = usageService; + this.restUsageService = restUsageService; + this.aggregationUsageService = aggregationUsageService; + this.sinceTime = System.currentTimeMillis(); } @Override @@ -66,7 +73,9 @@ protected NodeUsage newNodeResponse(StreamInput in) throws IOException { @Override protected NodeUsage nodeOperation(NodeUsageRequest nodeUsageRequest, Task task) { NodesUsageRequest request = nodeUsageRequest.request; - return usageService.getUsageStats(clusterService.localNode(), request.restActions(), request.aggregations()); + Map restUsage = request.restActions() ? restUsageService.getRestUsageStats() : null; + Map aggsUsage = request.aggregations() ? aggregationUsageService.getUsageStats() : null; + return new NodeUsage(clusterService.localNode(), System.currentTimeMillis(), sinceTime, restUsage, aggsUsage); } public static class NodeUsageRequest extends TransportRequest { diff --git a/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java b/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java index 990c62f303468..a9386d3b09c98 100644 --- a/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java +++ b/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java @@ -56,10 +56,10 @@ import org.elasticsearch.script.ScriptContext; import org.elasticsearch.script.ScriptFactory; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.search.aggregations.support.AggregationUsageService; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.transport.RemoteClusterAware; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.HashMap; @@ -472,7 +472,7 @@ public BitsetFilterCache getBitsetFilterCache() { return bitsetFilterCache; } - public UsageService getUsageService() { + public AggregationUsageService getUsageService() { return valuesSourceRegistry.getUsageService(); } } diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index 6c1f5986e5fb8..1f415cab376ef 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -147,6 +147,7 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.SearchService; +import org.elasticsearch.search.aggregations.support.AggregationUsageService; import org.elasticsearch.search.fetch.FetchPhase; import org.elasticsearch.snapshots.RestoreService; import org.elasticsearch.snapshots.SnapshotShardsService; @@ -383,7 +384,7 @@ protected Node(final Environment initialEnvironment, IndicesModule indicesModule = new IndicesModule(pluginsService.filterPlugins(MapperPlugin.class)); modules.add(indicesModule); - SearchModule searchModule = new SearchModule(settings, pluginsService.filterPlugins(SearchPlugin.class), usageService); + SearchModule searchModule = new SearchModule(settings, pluginsService.filterPlugins(SearchPlugin.class)); CircuitBreakerService circuitBreakerService = createCircuitBreakerService(settingsModule.getSettings(), settingsModule.getClusterSettings()); resourcesToClose.add(circuitBreakerService); @@ -566,6 +567,7 @@ protected Node(final Environment initialEnvironment, b.bind(AnalysisRegistry.class).toInstance(analysisModule.getAnalysisRegistry()); b.bind(IngestService.class).toInstance(ingestService); b.bind(UsageService.class).toInstance(usageService); + b.bind(AggregationUsageService.class).toInstance(searchModule.getValuesSourceRegistry().getUsageService()); b.bind(NamedWriteableRegistry.class).toInstance(namedWriteableRegistry); b.bind(MetadataUpgrader.class).toInstance(metadataUpgrader); b.bind(MetaStateService.class).toInstance(metaStateService); diff --git a/server/src/main/java/org/elasticsearch/search/SearchModule.java b/server/src/main/java/org/elasticsearch/search/SearchModule.java index 0247c7794885c..ed6637d8431cf 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/server/src/main/java/org/elasticsearch/search/SearchModule.java @@ -249,7 +249,6 @@ import org.elasticsearch.search.suggest.phrase.StupidBackoff; import org.elasticsearch.search.suggest.term.TermSuggestion; import org.elasticsearch.search.suggest.term.TermSuggestionBuilder; -import org.elasticsearch.usage.UsageService; import java.util.ArrayList; import java.util.List; @@ -275,7 +274,6 @@ public class SearchModule { private final List namedWriteables = new ArrayList<>(); private final List namedXContents = new ArrayList<>(); private final ValuesSourceRegistry valuesSourceRegistry; - private final UsageService usageService; /** * Constructs a new SearchModule object @@ -284,11 +282,9 @@ public class SearchModule { * When constructed, a static flag is set in Lucene {@link BooleanQuery#setMaxClauseCount} according to the settings. * @param settings Current settings * @param plugins List of included {@link SearchPlugin} objects. - * @param usageService usage service for gathering aggregetion stats */ - public SearchModule(Settings settings, List plugins, UsageService usageService) { + public SearchModule(Settings settings, List plugins) { this.settings = settings; - this.usageService = usageService; registerSuggesters(plugins); highlighters = setupHighlighters(settings, plugins); registerScoreFunctions(plugins); @@ -326,7 +322,7 @@ public Map getHighlighters() { } private ValuesSourceRegistry registerAggregations(List plugins) { - ValuesSourceRegistry.Builder builder = new ValuesSourceRegistry.Builder(usageService); + ValuesSourceRegistry.Builder builder = new ValuesSourceRegistry.Builder(); registerAggregation(new AggregationSpec(AvgAggregationBuilder.NAME, AvgAggregationBuilder::new, AvgAggregationBuilder.PARSER) .addResultReader(InternalAvg::new) @@ -491,7 +487,7 @@ private void registerAggregation(AggregationSpec spec, ValuesSourceRegistry.Buil } else { // Register is typically handling usage registration, but for the older aggregations that don't use register, we // have to register usage explicitly here. - usageService.registerAggregationUsage(spec.getName().getPreferredName()); + builder.registerUsage(spec.getName().getPreferredName()); } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java index 3d8729b5c8abb..a3546c431077c 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java @@ -32,7 +32,7 @@ import java.io.IOException; import java.util.Map; -import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; +import static org.elasticsearch.search.aggregations.support.AggregationUsageService.OTHER_SUBTYPE; public abstract class AggregatorFactory { @@ -243,8 +243,8 @@ protected static Aggregator asMultiBucketAggregator(final AggregatorFactory fact /** * Returns the aggregation subtype for nodes usage stats. *

- * It should match the types registered by calling {@linkplain org.elasticsearch.usage.UsageService#registerAggregationUsage}. In other - * words, it should be ValueSourcesType for the VST aggregations OTHER_SUBTYPE for all other aggregations. + * It should match the types registered by calling {@linkplain org.elasticsearch.search.aggregations.support.AggregationUsageService}. + * In other words, it should be ValueSourcesType for the VST aggregations OTHER_SUBTYPE for all other aggregations. */ public String getStatsSubtype() { return OTHER_SUBTYPE; diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceRangeAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceRangeAggregatorFactory.java index 5a3892f4e070e..809fb8fd57d2a 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceRangeAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/GeoDistanceRangeAggregatorFactory.java @@ -42,7 +42,7 @@ import java.io.IOException; import java.util.Map; -import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; +import static org.elasticsearch.search.aggregations.support.AggregationUsageService.OTHER_SUBTYPE; public class GeoDistanceRangeAggregatorFactory extends ValuesSourceAggregatorFactory { diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java index 709417edb5f11..88eea6733165f 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java @@ -36,7 +36,7 @@ import java.io.IOException; import java.util.Map; -import static org.elasticsearch.usage.UsageService.OTHER_SUBTYPE; +import static org.elasticsearch.search.aggregations.support.AggregationUsageService.OTHER_SUBTYPE; public class DiversifiedAggregatorFactory extends ValuesSourceAggregatorFactory { diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationUsageService.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationUsageService.java new file mode 100644 index 0000000000000..e0486208942d4 --- /dev/null +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationUsageService.java @@ -0,0 +1,88 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.search.aggregations.support; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.atomic.LongAdder; + +public class AggregationUsageService { + private final Map> aggs; + + public static final String OTHER_SUBTYPE = "other"; + + public static class Builder { + private final Map> aggs; + + public Builder() { + aggs = new HashMap<>(); + } + + public void registerAggregationUsage(String aggregationName) { + registerAggregationUsage(aggregationName, OTHER_SUBTYPE); + } + + public void registerAggregationUsage(String aggregationName, String valuesSourceType) { + Map subAgg = aggs.computeIfAbsent(aggregationName, k -> new HashMap<>()); + if (subAgg.put(valuesSourceType, new LongAdder()) != null) { + throw new IllegalArgumentException("stats for aggregation [" + aggregationName + "][" + valuesSourceType + + "] already registered"); + } + } + + public AggregationUsageService build() { + return new AggregationUsageService(this); + } + } + + private AggregationUsageService(Builder builder) { + this.aggs = builder.aggs; + } + + public void incAggregationUsage(String aggregationName, String valuesSourceType) { + Map valuesSourceMap = aggs.get(aggregationName); + // Not all aggs register their usage at the moment we also don't register them in test context + if (valuesSourceMap != null) { + LongAdder adder = valuesSourceMap.get(valuesSourceType); + if (adder != null) { + adder.increment(); + } + assert adder != null : "Unknown subtype [" + aggregationName + "][" + valuesSourceType + "]"; + } + assert valuesSourceMap != null : "Unknown aggregation [" + aggregationName + "][" + valuesSourceType + "]"; + } + + public Map getUsageStats() { + Map aggsUsageMap = new HashMap<>(); + aggs.forEach((name, agg) -> { + Map aggUsageMap = new HashMap<>(); + agg.forEach((k, v) -> { + long val = v.longValue(); + if (val > 0) { + aggUsageMap.put(k, val); + } + }); + if (aggUsageMap.isEmpty() == false) { + aggsUsageMap.put(name, aggUsageMap); + } + }); + return aggsUsageMap; + } +} diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java index 2cdcd0e8b04a1..6be2f97f9f749 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceRegistry.java @@ -26,7 +26,6 @@ import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.AggregationExecutionException; -import org.elasticsearch.usage.UsageService; import java.util.AbstractMap; import java.util.ArrayList; @@ -43,10 +42,10 @@ public class ValuesSourceRegistry { public static class Builder { - private final UsageService usageService; + private final AggregationUsageService.Builder usageServiceBuilder; - public Builder(UsageService usageService) { - this.usageService = usageService; + public Builder() { + this.usageServiceBuilder = new AggregationUsageService.Builder(); } private Map>> aggregatorRegistry = new HashMap<>(); @@ -85,19 +84,23 @@ public void register(String aggregationName, List valuesSource } public void registerUsage(String aggregationName, ValuesSourceType valuesSourceType) { - usageService.registerAggregationUsage(aggregationName, valuesSourceType.typeName()); + usageServiceBuilder.registerAggregationUsage(aggregationName, valuesSourceType.typeName()); + } + + public void registerUsage(String aggregationName) { + usageServiceBuilder.registerAggregationUsage(aggregationName); } public ValuesSourceRegistry build() { - return new ValuesSourceRegistry(aggregatorRegistry, usageService); + return new ValuesSourceRegistry(aggregatorRegistry, usageServiceBuilder.build()); } } /** Maps Aggregation names to (ValuesSourceType, Supplier) pairs, keyed by ValuesSourceType */ - private final UsageService usageService; + private final AggregationUsageService usageService; private Map>> aggregatorRegistry; public ValuesSourceRegistry(Map>> aggregatorRegistry, - UsageService usageService) { + AggregationUsageService usageService) { /* Make an immutatble copy of our input map. Since this is write once, read many, we'll spend a bit of extra time to shape this into a Map.of(), which is more read optimized than just using a hash map. @@ -169,7 +172,7 @@ && findMatchingSuppier(valuesSourceType, aggregatorRegistry.get(aggregationName) } } - public UsageService getUsageService() { + public AggregationUsageService getUsageService() { return usageService; } } diff --git a/server/src/main/java/org/elasticsearch/usage/UsageService.java b/server/src/main/java/org/elasticsearch/usage/UsageService.java index 9e2b67d3ad67e..a0a55a8b93406 100644 --- a/server/src/main/java/org/elasticsearch/usage/UsageService.java +++ b/server/src/main/java/org/elasticsearch/usage/UsageService.java @@ -39,14 +39,12 @@ package org.elasticsearch.usage; import org.elasticsearch.action.admin.cluster.node.usage.NodeUsage; -import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.rest.BaseRestHandler; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Objects; -import java.util.concurrent.atomic.LongAdder; /** * A service to monitor usage of Elasticsearch features. @@ -54,20 +52,15 @@ public class UsageService { private final Map handlers; - private final Map> aggs; - private final long sinceTime; public UsageService() { this.handlers = new HashMap<>(); - this.aggs = new HashMap<>(); - this.sinceTime = System.currentTimeMillis(); } /** * Add a REST handler to this service. * - * @param handler - * the {@link BaseRestHandler} to add to the usage service. + * @param handler the {@link BaseRestHandler} to add to the usage service. */ public void addRestHandler(BaseRestHandler handler) { Objects.requireNonNull(handler); @@ -92,76 +85,22 @@ public void addRestHandler(BaseRestHandler handler) { } } - public static final String OTHER_SUBTYPE = "other"; - - public void registerAggregationUsage(String aggregationName) { - registerAggregationUsage(aggregationName, OTHER_SUBTYPE); - } - - public void registerAggregationUsage(String aggregationName, String valuesSourceType) { - Map subAgg = aggs.computeIfAbsent(aggregationName, k -> new HashMap<>()); - if ( subAgg.put(valuesSourceType, new LongAdder()) != null) { - throw new IllegalArgumentException("stats for aggregation [" + aggregationName + "][" + valuesSourceType + - "] already registered"); - } - } - - public void incAggregationUsage(String aggregationName, String valuesSourceType) { - Map valuesSourceMap = aggs.get(aggregationName); - // Not all aggs register their usage at the moment we also don't register them in test context - if (valuesSourceMap != null) { - LongAdder adder = valuesSourceMap.get(valuesSourceType); - if (adder != null) { - adder.increment(); - } - assert adder != null : "Unknown subtype [" + aggregationName + "][" + valuesSourceType + "]"; - } - assert valuesSourceMap != null : "Unknown aggregation [" + aggregationName + "][" + valuesSourceType + "]"; - } - /** * Get the current usage statistics for this node. * - * @param localNode - * the {@link DiscoveryNode} for this node - * @param restActions - * whether to include rest action usage in the returned - * statistics * @return the {@link NodeUsage} representing the usage statistics for this - * node + * node */ - public NodeUsage getUsageStats(DiscoveryNode localNode, boolean restActions, boolean aggregations) { + public Map getRestUsageStats() { Map restUsageMap; - Map aggsUsageMap; - if (restActions) { - restUsageMap = new HashMap<>(); - handlers.values().forEach(handler -> { - long usageCount = handler.getUsageCount(); - if (usageCount > 0) { - restUsageMap.put(handler.getName(), usageCount); - } - }); - } else { - restUsageMap = null; - } - if (aggregations) { - aggsUsageMap = new HashMap<>(); - aggs.forEach((name, agg) -> { - Map aggUsageMap = new HashMap<>(); - agg.forEach((k, v) -> { - long val = v.longValue(); - if (val > 0) { - aggUsageMap.put(k, val); - } - }); - if (aggUsageMap.isEmpty() == false) { - aggsUsageMap.put(name, aggUsageMap); - } - }); - } else { - aggsUsageMap = null; - } - return new NodeUsage(localNode, System.currentTimeMillis(), sinceTime, restUsageMap, aggsUsageMap); + restUsageMap = new HashMap<>(); + handlers.values().forEach(handler -> { + long usageCount = handler.getUsageCount(); + if (usageCount > 0) { + restUsageMap.put(handler.getName(), usageCount); + } + }); + return restUsageMap; } } diff --git a/server/src/test/java/org/elasticsearch/action/ShardValidateQueryRequestTests.java b/server/src/test/java/org/elasticsearch/action/ShardValidateQueryRequestTests.java index e81605e26f503..d537bdabece3d 100644 --- a/server/src/test/java/org/elasticsearch/action/ShardValidateQueryRequestTests.java +++ b/server/src/test/java/org/elasticsearch/action/ShardValidateQueryRequestTests.java @@ -31,7 +31,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.internal.AliasFilter; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -43,7 +42,7 @@ public class ShardValidateQueryRequestTests extends ESTestCase { public void setUp() throws Exception { super.setUp(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/server/src/test/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsResponseTests.java b/server/src/test/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsResponseTests.java index 22a006412ac74..c83caae49a72f 100644 --- a/server/src/test/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsResponseTests.java +++ b/server/src/test/java/org/elasticsearch/action/admin/cluster/shards/ClusterSearchShardsResponseTests.java @@ -37,7 +37,6 @@ import org.elasticsearch.search.internal.AliasFilter; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.VersionUtils; -import org.elasticsearch.usage.UsageService; import java.util.ArrayList; import java.util.Collections; @@ -74,7 +73,7 @@ public void testSerialization() throws Exception { ClusterSearchShardsResponse clusterSearchShardsResponse = new ClusterSearchShardsResponse(clusterSearchShardsGroups, nodes.toArray(new DiscoveryNode[nodes.size()]), indicesAndFilters); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List entries = new ArrayList<>(); entries.addAll(searchModule.getNamedWriteables()); NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(entries); diff --git a/server/src/test/java/org/elasticsearch/action/explain/ExplainRequestTests.java b/server/src/test/java/org/elasticsearch/action/explain/ExplainRequestTests.java index 6880b98d84fba..b279bf9485133 100644 --- a/server/src/test/java/org/elasticsearch/action/explain/ExplainRequestTests.java +++ b/server/src/test/java/org/elasticsearch/action/explain/ExplainRequestTests.java @@ -30,7 +30,6 @@ import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.internal.AliasFilter; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -46,7 +45,7 @@ public class ExplainRequestTests extends ESTestCase { public void setUp() throws Exception { super.setUp(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java b/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java index 1af026efb75cd..094b6365ab812 100644 --- a/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java +++ b/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java @@ -66,7 +66,6 @@ import org.elasticsearch.search.suggest.term.TermSuggestion; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.util.ArrayList; @@ -99,7 +98,7 @@ public class SearchPhaseControllerTests extends ESTestCase { @Override protected NamedWriteableRegistry writableRegistry() { - return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedWriteables()); + return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, emptyList()).getNamedWriteables()); } @Before diff --git a/server/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java b/server/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java index abe3bb01b51d2..414f165864dcd 100644 --- a/server/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java +++ b/server/src/test/java/org/elasticsearch/action/search/SearchResponseTests.java @@ -46,7 +46,6 @@ import org.elasticsearch.search.suggest.SuggestTests; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.After; import org.junit.Before; @@ -70,7 +69,7 @@ public class SearchResponseTests extends ESTestCase { } private final NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry( - new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedWriteables()); + new SearchModule(Settings.EMPTY, emptyList()).getNamedWriteables()); private AggregationsTests aggregationsTests = new AggregationsTests(); @Before diff --git a/server/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java index 005791827c263..6bf2ed8acf6e3 100644 --- a/server/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -41,7 +40,7 @@ public class AbstractQueryBuilderTests extends ESTestCase { @BeforeClass public static void init() { - xContentRegistry = new NamedXContentRegistry(new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedXContents()); + xContentRegistry = new NamedXContentRegistry(new SearchModule(Settings.EMPTY, emptyList()).getNamedXContents()); } @AfterClass diff --git a/server/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java index 12897a99bceb8..bc2b303a8e817 100644 --- a/server/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java @@ -40,7 +40,6 @@ import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -68,7 +67,7 @@ public class InnerHitBuilderTests extends ESTestCase { @BeforeClass public static void init() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/server/src/test/java/org/elasticsearch/index/reindex/ReindexRequestTests.java b/server/src/test/java/org/elasticsearch/index/reindex/ReindexRequestTests.java index ad417f5eba144..1cabb051cc94e 100644 --- a/server/src/test/java/org/elasticsearch/index/reindex/ReindexRequestTests.java +++ b/server/src/test/java/org/elasticsearch/index/reindex/ReindexRequestTests.java @@ -32,7 +32,6 @@ import org.elasticsearch.index.query.TermQueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.slice.SliceBuilder; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.Collections; @@ -54,13 +53,13 @@ public class ReindexRequestTests extends AbstractBulkByScrollRequestTestCase entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java b/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java index 2ad80f0fe9a70..99d6ada524e3c 100644 --- a/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java +++ b/server/src/test/java/org/elasticsearch/search/SearchModuleTests.java @@ -70,7 +70,6 @@ import org.elasticsearch.search.suggest.term.TermSuggestion; import org.elasticsearch.search.suggest.term.TermSuggestionBuilder; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -173,7 +172,7 @@ public List> getRescorers() { } private ThrowingRunnable registryForPlugin(SearchPlugin plugin) { - return () -> new NamedXContentRegistry(new SearchModule(Settings.EMPTY, singletonList(plugin), new UsageService()) + return () -> new NamedXContentRegistry(new SearchModule(Settings.EMPTY, singletonList(plugin)) .getNamedXContents()); } @@ -188,7 +187,7 @@ public List> getSuggesters() { TestSuggestionBuilder::fromXContent, TestSuggestion::new)); } - }), new UsageService()); + })); assertEquals(1, module.getNamedXContents().stream() .filter(e -> e.categoryClass.equals(SuggestionBuilder.class) && @@ -229,7 +228,7 @@ public void testRegisterHighlighter() { public Map getHighlighters() { return singletonMap("custom", customHighlighter); } - }), new UsageService()); + })); Map highlighters = module.getHighlighters(); assertEquals(FastVectorHighlighter.class, highlighters.get("fvh").getClass()); @@ -242,7 +241,7 @@ public void testRegisteredQueries() { List allSupportedQueries = new ArrayList<>(); Collections.addAll(allSupportedQueries, NON_DEPRECATED_QUERIES); Collections.addAll(allSupportedQueries, DEPRECATED_QUERIES); - SearchModule module = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule module = new SearchModule(Settings.EMPTY, emptyList()); Set registeredNonDeprecated = module.getNamedXContents().stream() .filter(e -> e.categoryClass.equals(QueryBuilder.class)) @@ -264,7 +263,7 @@ public void testRegisterAggregation() { public List getAggregations() { return singletonList(new AggregationSpec("test", TestAggregationBuilder::new, TestAggregationBuilder::fromXContent)); } - }), new UsageService()); + })); assertThat( module.getNamedXContents().stream() @@ -281,7 +280,7 @@ public List getPipelineAggregations() { return singletonList(new PipelineAggregationSpec("test", TestPipelineAggregationBuilder::new, TestPipelineAggregationBuilder::fromXContent)); } - }), new UsageService()); + })); assertThat( module.getNamedXContents().stream() @@ -297,7 +296,7 @@ public void testRegisterRescorer() { public List> getRescorers() { return singletonList(new RescorerSpec<>("test", TestRescorerBuilder::new, TestRescorerBuilder::fromXContent)); } - }), new UsageService()); + })); assertThat( module.getNamedXContents().stream() .filter(entry -> entry.categoryClass.equals(RescorerBuilder.class) && diff --git a/server/src/test/java/org/elasticsearch/search/SearchSortValuesAndFormatsTests.java b/server/src/test/java/org/elasticsearch/search/SearchSortValuesAndFormatsTests.java index b11650a221289..2273ab3af0db7 100644 --- a/server/src/test/java/org/elasticsearch/search/SearchSortValuesAndFormatsTests.java +++ b/server/src/test/java/org/elasticsearch/search/SearchSortValuesAndFormatsTests.java @@ -24,7 +24,6 @@ import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.util.ArrayList; @@ -37,7 +36,7 @@ public class SearchSortValuesAndFormatsTests extends AbstractWireSerializingTest @Before public void initRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); List entries = new ArrayList<>(); entries.addAll(searchModule.getNamedWriteables()); namedWriteableRegistry = new NamedWriteableRegistry(entries); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesBuilderTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesBuilderTests.java index a903c8a94d427..6d686ebeef189 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesBuilderTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.pipeline.CumulativeSumPipelineAggregationBuilder; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.io.IOException; @@ -50,7 +49,7 @@ public void setUp() throws Exception { super.setUp(); // register aggregations as NamedWriteable - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); namedXContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java index 26128b43a4c4e..cff1e7c874b5c 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java @@ -40,7 +40,6 @@ import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree; import org.elasticsearch.test.AbstractQueryTestCase; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.util.Collection; import java.util.List; @@ -72,7 +71,7 @@ public void setUp() throws Exception { String type = randomAlphaOfLengthBetween(1, 10); currentTypes[i] = type; } - xContentRegistry = new NamedXContentRegistry(new SearchModule(settings, emptyList(), new UsageService()).getNamedXContents()); + xContentRegistry = new NamedXContentRegistry(new SearchModule(settings, emptyList()).getNamedXContents()); } public void testGetAggregatorFactories_returnsUnmodifiableList() { diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java index 58a5e1227ffca..a2e99a9ed1d9a 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java @@ -35,7 +35,6 @@ import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; import org.elasticsearch.test.VersionUtils; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -48,7 +47,7 @@ public class InternalAggregationsTests extends ESTestCase { private final NamedWriteableRegistry registry = new NamedWriteableRegistry( - new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); + new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); public void testReduceEmptyAggs() { List aggs = Collections.emptyList(); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java index b4b918c8a66bb..ce0a92485a07a 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java @@ -49,7 +49,6 @@ import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; import org.elasticsearch.test.TestSearchContext; -import org.elasticsearch.usage.UsageService; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -108,7 +107,7 @@ public void testStreamResponse() throws Exception { ByteArrayInputStream inBuffer = new ByteArrayInputStream(outBuffer.toByteArray()); StreamInput in = new InputStreamStreamInput(inBuffer); // populates the registry through side effects - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); NamedWriteableRegistry registry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); in = new NamedWriteableAwareStreamInput(in, registry); in.setVersion(version); @@ -476,6 +475,6 @@ public void testGNDCornerCases() throws Exception { @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, emptyList(), new UsageService()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, emptyList()).getNamedXContents()); } } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java index f044eb7d96e25..7f79a267f797c 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricAggregatorTests.java @@ -39,8 +39,8 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.script.ScriptType; import org.elasticsearch.search.aggregations.AggregatorTestCase; +import org.elasticsearch.search.aggregations.support.AggregationUsageService; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; -import org.elasticsearch.usage.UsageService; import org.junit.BeforeClass; import java.io.IOException; @@ -431,9 +431,9 @@ protected QueryShardContext queryShardContextMock(IndexSearcher searcher, Map engines = Collections.singletonMap(scriptEngine.getType(), scriptEngine); ScriptService scriptService = new ScriptService(Settings.EMPTY, engines, ScriptModule.CORE_CONTEXTS); ValuesSourceRegistry valuesSourceRegistry = mock(ValuesSourceRegistry.class); - UsageService usageService = new UsageService(); - usageService.registerAggregationUsage(ScriptedMetricAggregationBuilder.NAME); - when(valuesSourceRegistry.getUsageService()).thenReturn(usageService); + AggregationUsageService.Builder builder = new AggregationUsageService.Builder(); + builder.registerAggregationUsage(ScriptedMetricAggregationBuilder.NAME); + when(valuesSourceRegistry.getUsageService()).thenReturn(builder.build()); return new QueryShardContext(0, indexSettings, BigArrays.NON_RECYCLING_INSTANCE, null, null, mapperService, null, scriptService, xContentRegistry(), writableRegistry(), null, null, System::currentTimeMillis, null, null, () -> true, valuesSourceRegistry); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java index b8d3c9190947e..5bc4eb7be9e37 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/weighted_avg/WeightedAvgAggregationBuilderTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.aggregations.metrics.WeightedAvgAggregationBuilder; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.io.IOException; @@ -46,7 +45,7 @@ public void setupName() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceFieldConfigTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceFieldConfigTests.java index c938e854274da..488773da1aa92 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceFieldConfigTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceFieldConfigTests.java @@ -29,7 +29,6 @@ import org.elasticsearch.script.Script; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.time.ZoneId; @@ -72,13 +71,13 @@ public void testBothFieldScript() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()) + return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()) .getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()) + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()) .getNamedXContents()); } } diff --git a/server/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java b/server/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java index d19217fc46ed8..5956306fcad75 100644 --- a/server/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java @@ -39,7 +39,6 @@ import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -57,7 +56,7 @@ public class CollapseBuilderTests extends AbstractSerializingTestCase restUsage = usage.getRestUsage(); + Map restUsage = usageService.getRestUsageStats(); assertThat(restUsage, notNullValue()); assertThat(restUsage.size(), equalTo(6)); assertThat(restUsage.get("a"), equalTo(4L)); @@ -138,25 +127,20 @@ public void testRestUsage() throws Exception { assertThat(restUsage.get("d"), equalTo(2L)); assertThat(restUsage.get("e"), equalTo(1L)); assertThat(restUsage.get("f"), equalTo(1L)); - - usage = usageService.getUsageStats(discoveryNode, false, false); - assertThat(usage.getNode(), sameInstance(discoveryNode)); - assertThat(usage.getRestUsage(), nullValue()); - assertThat(usage.getAggregationUsage(), nullValue()); } @SuppressWarnings("unchecked") public void testAggsUsage() throws Exception { - DiscoveryNode discoveryNode = new DiscoveryNode("foo", new TransportAddress(InetAddress.getByName("localhost"), 12345), - Version.CURRENT); - UsageService usageService = new UsageService(); + AggregationUsageService.Builder builder = new AggregationUsageService.Builder(); + + builder.registerAggregationUsage("a", "x"); + builder.registerAggregationUsage("a", "y"); + builder.registerAggregationUsage("b", "x"); + builder.registerAggregationUsage("c"); + builder.registerAggregationUsage("b", "y"); + builder.registerAggregationUsage("a", "z"); - usageService.registerAggregationUsage("a", "x"); - usageService.registerAggregationUsage("a", "y"); - usageService.registerAggregationUsage("b", "x"); - usageService.registerAggregationUsage("c"); - usageService.registerAggregationUsage("b", "y"); - usageService.registerAggregationUsage("a", "z"); + AggregationUsageService usageService = builder.build(); usageService.incAggregationUsage("a", "x"); for (int i = 0; i < 2; i++) { @@ -175,9 +159,8 @@ public void testAggsUsage() throws Exception { usageService.incAggregationUsage("c", OTHER_SUBTYPE); } - NodeUsage usage = usageService.getUsageStats(discoveryNode, false, true); - assertThat(usage.getNode(), sameInstance(discoveryNode)); - Map aggsUsage = usage.getAggregationUsage(); + + Map aggsUsage = usageService.getUsageStats(); assertThat(aggsUsage, notNullValue()); assertThat(aggsUsage.size(), equalTo(3)); assertThat(((Map) aggsUsage.get("a")).get("x"), equalTo(1L)); @@ -186,10 +169,6 @@ public void testAggsUsage() throws Exception { assertThat(((Map) aggsUsage.get("b")).get("x"), equalTo(4L)); assertThat(((Map) aggsUsage.get("b")).get("y"), equalTo(5L)); assertThat(((Map) aggsUsage.get("c")).get(OTHER_SUBTYPE), equalTo(6L)); - - usage = usageService.getUsageStats(discoveryNode, false, false); - assertThat(usage.getNode(), sameInstance(discoveryNode)); - assertThat(usage.getRestUsage(), nullValue()); } private class MockRestHandler extends BaseRestHandler { diff --git a/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java b/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java index f056d2981efa2..9989088878e6b 100644 --- a/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/search/aggregations/AggregatorTestCase.java @@ -114,7 +114,6 @@ import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.After; import org.junit.Before; @@ -183,7 +182,7 @@ private static void registerFieldTypes(SearchContext searchContext, MapperServic // Make this @Before instead of @BeforeClass so it can call the non-static getSearchPlugins method @Before public void initValuesSourceRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, this.getSearchPlugins(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, this.getSearchPlugins()); valuesSourceRegistry = searchModule.getValuesSourceRegistry(); } diff --git a/test/framework/src/main/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java b/test/framework/src/main/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java index 8168e36f24d47..5ec7cfdcc977f 100644 --- a/test/framework/src/main/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java @@ -39,7 +39,6 @@ import org.elasticsearch.search.aggregations.pipeline.AbstractPipelineAggregationBuilder; import org.elasticsearch.test.AbstractQueryTestCase; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -79,7 +78,7 @@ public void setUp() throws Exception { .put("node.name", AbstractQueryTestCase.class.toString()) .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()) .build(); - SearchModule searchModule = new SearchModule(settings, plugins(), new UsageService()); + SearchModule searchModule = new SearchModule(settings, plugins()); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java index fd0d3c6e9c26a..aa41bcad47c32 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/AbstractBuilderTestCase.java @@ -76,7 +76,6 @@ import org.elasticsearch.script.ScriptModule; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.SearchModule; -import org.elasticsearch.usage.UsageService; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; @@ -343,7 +342,7 @@ private static class ServiceHolder implements Closeable { List> additionalSettings = pluginsService.getPluginSettings(); SettingsModule settingsModule = new SettingsModule(nodeSettings, additionalSettings, pluginsService.getPluginSettingsFilter(), Collections.emptySet()); - searchModule = new SearchModule(nodeSettings, pluginsService.filterPlugins(SearchPlugin.class), new UsageService()); + searchModule = new SearchModule(nodeSettings, pluginsService.filterPlugins(SearchPlugin.class)); IndicesModule indicesModule = new IndicesModule(pluginsService.filterPlugins(MapperPlugin.class)); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); diff --git a/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java index 758cdb7d6816f..eabd5088f99b3 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java @@ -142,7 +142,6 @@ import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.PipelineTree; import org.elasticsearch.search.aggregations.pipeline.StatsBucketPipelineAggregationBuilder; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -296,7 +295,7 @@ protected final NamedWriteableRegistry getNamedWriteableRegistry() { */ protected List getNamedWriteables() { SearchPlugin plugin = registerPlugin(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, plugin == null ? emptyList() : List.of(plugin), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, plugin == null ? emptyList() : List.of(plugin)); List entries = new ArrayList<>(searchModule.getNamedWriteables()); // Modules/plugins may have extra namedwriteables that are not added by agg specs diff --git a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilderTests.java b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilderTests.java index e980cdc1857a5..4afd77d2cbeb9 100644 --- a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilderTests.java +++ b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/ttest/TTestAggregationBuilderTests.java @@ -19,7 +19,6 @@ import org.elasticsearch.search.aggregations.BaseAggregationBuilder; import org.elasticsearch.search.aggregations.support.MultiValuesSourceFieldConfig; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.io.IOException; @@ -89,7 +88,7 @@ protected Writeable.Reader instanceReader() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()) + return new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()) .getNamedWriteables()); } @@ -100,7 +99,7 @@ protected NamedXContentRegistry xContentRegistry() { BaseAggregationBuilder.class, new ParseField(TTestAggregationBuilder.NAME), (p, n) -> TTestAggregationBuilder.PARSER.apply(p, (String) n))); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } } diff --git a/x-pack/plugin/async-search/src/test/java/org/elasticsearch/xpack/search/AsyncSearchResponseTests.java b/x-pack/plugin/async-search/src/test/java/org/elasticsearch/xpack/search/AsyncSearchResponseTests.java index 4848acbbf1585..52eeb309b90e6 100644 --- a/x-pack/plugin/async-search/src/test/java/org/elasticsearch/xpack/search/AsyncSearchResponseTests.java +++ b/x-pack/plugin/async-search/src/test/java/org/elasticsearch/xpack/search/AsyncSearchResponseTests.java @@ -22,7 +22,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.internal.InternalSearchResponse; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.search.action.AsyncSearchResponse; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.TransformNamedXContentProvider; @@ -45,7 +44,7 @@ public class AsyncSearchResponseTests extends ESTestCase { @Before public void registerNamedObjects() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); List namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add(new NamedWriteableRegistry.Entry(SyncConfig.class, TransformField.TIME_BASED_SYNC.getPreferredName(), diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameActionRequestTests.java index fb6839f10c6b1..dd485341cb7fd 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/EvaluateDataFrameActionRequestTests.java @@ -13,7 +13,6 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.EvaluateDataFrameAction.Request; import org.elasticsearch.xpack.core.ml.dataframe.evaluation.Evaluation; import org.elasticsearch.xpack.core.ml.dataframe.evaluation.MlEvaluationNamedXContentProvider; @@ -33,7 +32,7 @@ public class EvaluateDataFrameActionRequestTests extends AbstractSerializingTest protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(MlEvaluationNamedXContentProvider.getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } @@ -41,7 +40,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlEvaluationNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDataFrameAnalyticsActionResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDataFrameAnalyticsActionResponseTests.java index 20b9dc5e4882d..a82c3e6b957a2 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDataFrameAnalyticsActionResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDataFrameAnalyticsActionResponseTests.java @@ -11,7 +11,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.action.util.QueryPage; import org.elasticsearch.xpack.core.ml.action.GetDataFrameAnalyticsAction.Response; import org.elasticsearch.xpack.core.ml.dataframe.DataFrameAnalyticsConfig; @@ -28,7 +27,7 @@ public class GetDataFrameAnalyticsActionResponseTests extends AbstractWireSerial protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } @@ -36,7 +35,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDatafeedsActionResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDatafeedsActionResponseTests.java index 37f0c8c3f7b3f..645ea73320389 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDatafeedsActionResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/GetDatafeedsActionResponseTests.java @@ -10,7 +10,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.GetDatafeedsAction.Response; import org.elasticsearch.xpack.core.action.util.QueryPage; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; @@ -39,7 +38,7 @@ protected Writeable.Reader instanceReader() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionRequestTests.java index b4cbca57a4967..038c35fdd2930 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionRequestTests.java @@ -13,7 +13,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.PutDataFrameAnalyticsAction.Request; import org.elasticsearch.xpack.core.ml.dataframe.DataFrameAnalyticsConfig; import org.elasticsearch.xpack.core.ml.dataframe.DataFrameAnalyticsConfigTests; @@ -44,7 +43,7 @@ public void setUpId() { protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } @@ -52,7 +51,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionResponseTests.java index 8739f45f3e246..6338e031070b5 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDataFrameAnalyticsActionResponseTests.java @@ -10,7 +10,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.PutDataFrameAnalyticsAction.Response; import org.elasticsearch.xpack.core.ml.dataframe.DataFrameAnalyticsConfigTests; import org.elasticsearch.xpack.core.ml.dataframe.analyses.MlDataFrameAnalysisNamedXContentProvider; @@ -25,7 +24,7 @@ public class PutDataFrameAnalyticsActionResponseTests extends AbstractWireSerial protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionRequestTests.java index cc250402f1a09..31b7f3394ef06 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionRequestTests.java @@ -13,7 +13,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.PutDatafeedAction.Request; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfigTests; import org.junit.Before; @@ -51,13 +50,13 @@ protected Request doParseInstance(XContentParser parser) { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionResponseTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionResponseTests.java index 2b2cba5b0ec28..f61c0dfdac89d 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionResponseTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/PutDatafeedActionResponseTests.java @@ -10,7 +10,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.PutDatafeedAction.Response; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfigTests; @@ -35,7 +34,7 @@ protected Writeable.Reader instanceReader() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/UpdateDatafeedActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/UpdateDatafeedActionRequestTests.java index c4ea6fc3f5bf1..c3570e16efc5c 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/UpdateDatafeedActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/action/UpdateDatafeedActionRequestTests.java @@ -12,7 +12,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.UpdateDatafeedAction.Request; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfigTests; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedUpdateTests; @@ -51,13 +50,13 @@ protected Request doParseInstance(XContentParser parser) { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderTests.java index 22df9c6151ef9..5f503f9d18ce4 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderTests.java @@ -18,7 +18,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.utils.XContentObjectTransformer; import java.io.IOException; @@ -33,13 +32,13 @@ public class AggProviderTests extends AbstractSerializingTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @Override protected NamedWriteableRegistry writableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @@ -71,7 +70,7 @@ public static AggProvider createRandomValidAggProvider(String name, String field Map agg = Collections.singletonMap(name, Collections.singletonMap("avg", Collections.singletonMap("field", field))); try { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); AggregatorFactories.Builder aggs = XContentObjectTransformer.aggregatorTransformer(new NamedXContentRegistry(searchModule.getNamedXContents())) .fromMap(agg); diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderWireSerializationTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderWireSerializationTests.java index b70f39f7c3007..303f61e6ca294 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderWireSerializationTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/AggProviderWireSerializationTests.java @@ -13,7 +13,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.AggregatorFactories; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.AbstractBWCWireSerializationTestCase; import org.elasticsearch.xpack.core.ml.utils.XContentObjectTransformer; @@ -25,7 +24,7 @@ public class AggProviderWireSerializationTests extends AbstractBWCWireSerializat @Override protected NamedWriteableRegistry writableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @@ -48,7 +47,7 @@ public static AggProvider createRandomValidAggProvider() { Map agg = Collections.singletonMap(randomAlphaOfLengthBetween(1, 10), Collections.singletonMap("avg", Collections.singletonMap("field", randomAlphaOfLengthBetween(1, 10)))); try { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); AggregatorFactories.Builder aggs = XContentObjectTransformer.aggregatorTransformer(new NamedXContentRegistry(searchModule.getNamedXContents())) .fromMap(agg); diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfigTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfigTests.java index ff1650b0ab015..a709df1ab5c79 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfigTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedConfigTests.java @@ -47,7 +47,6 @@ import org.elasticsearch.search.builder.SearchSourceBuilder.ScriptField; import org.elasticsearch.test.AbstractSerializingTestCase; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.ChunkingConfig.Mode; import org.elasticsearch.xpack.core.ml.job.messages.Messages; import org.elasticsearch.xpack.core.ml.utils.QueryProvider; @@ -157,13 +156,13 @@ private static DatafeedConfig.Builder createRandomizedDatafeedConfigBuilder(Stri @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -769,7 +768,7 @@ public void testSerializationOfComplexAggs() throws IOException { assertEquals(aggBuilder, parsedDatafeedConfig.getParsedAggregations(xContentRegistry())); assertEquals(datafeedConfig.getQuery(), parsedDatafeedConfig.getQuery()); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); try(BytesStreamOutput output = new BytesStreamOutput()) { datafeedConfig.writeTo(output); @@ -810,7 +809,7 @@ public void testSerializationOfComplexAggsBetweenVersions() throws IOException { .filter(QueryBuilders.termQuery(randomAlphaOfLengthBetween(1, 10), randomAlphaOfLengthBetween(1, 10))))); DatafeedConfig datafeedConfig = datafeedConfigBuilder.build(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); try (BytesStreamOutput output = new BytesStreamOutput()) { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdateTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdateTests.java index e7dbef7680c71..bd23a545456bb 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdateTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdateTests.java @@ -41,7 +41,6 @@ import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder.ScriptField; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.ChunkingConfig.Mode; import org.elasticsearch.xpack.core.ml.job.config.JobTests; import org.elasticsearch.xpack.core.ml.utils.QueryProvider; @@ -135,13 +134,13 @@ protected DatafeedUpdate doParseInstance(XContentParser parser) { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -348,7 +347,7 @@ public void testSerializationOfComplexAggsBetweenVersions() throws IOException { .filter(QueryBuilders.termQuery(randomAlphaOfLengthBetween(1, 10), randomAlphaOfLengthBetween(1, 10))))); DatafeedUpdate datafeedUpdate = datafeedUpdateBuilder.build(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); try (BytesStreamOutput output = new BytesStreamOutput()) { diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsConfigTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsConfigTests.java index d3b2e7e42b766..2ad341df35c7d 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsConfigTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsConfigTests.java @@ -31,7 +31,6 @@ import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.AbstractBWCSerializationTestCase; import org.elasticsearch.xpack.core.ml.AbstractBWCWireSerializationTestCase; import org.elasticsearch.xpack.core.ml.dataframe.analyses.Classification; @@ -78,7 +77,7 @@ protected DataFrameAnalyticsConfig doParseInstance(XContentParser parser) throws protected NamedWriteableRegistry getNamedWriteableRegistry() { List namedWriteables = new ArrayList<>(); namedWriteables.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedWriteables()); - namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); + namedWriteables.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); return new NamedWriteableRegistry(namedWriteables); } @@ -86,7 +85,7 @@ protected NamedWriteableRegistry getNamedWriteableRegistry() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlDataFrameAnalysisNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsSourceTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsSourceTests.java index 050bc58091222..fdfb34edf8e0c 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsSourceTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/dataframe/DataFrameAnalyticsSourceTests.java @@ -14,7 +14,6 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.AbstractBWCSerializationTestCase; import org.elasticsearch.xpack.core.ml.utils.QueryProvider; @@ -31,13 +30,13 @@ public class DataFrameAnalyticsSourceTests extends AbstractBWCSerializationTestC @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/NamedXContentObjectsTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/NamedXContentObjectsTests.java index 58a30d578e820..2db86e64e3502 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/NamedXContentObjectsTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/NamedXContentObjectsTests.java @@ -14,7 +14,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.LenientlyParsedTrainedModel; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.TrainedModel; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.StrictlyParsedTrainedModel; @@ -188,7 +187,7 @@ protected Predicate getRandomFieldsExcludeFilter() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelConfigTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelConfigTests.java index 8f3bf5e05cafa..0479263162a00 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelConfigTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelConfigTests.java @@ -21,7 +21,6 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.license.License; import org.elasticsearch.search.SearchModule; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.AbstractBWCSerializationTestCase; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.ClassificationConfigTests; import org.elasticsearch.xpack.core.ml.inference.trainedmodel.RegressionConfigTests; @@ -108,7 +107,7 @@ protected Writeable.Reader instanceReader() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelDefinitionTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelDefinitionTests.java index 299166d86618d..47cf8b3f5d487 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelDefinitionTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/TrainedModelDefinitionTests.java @@ -15,7 +15,6 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.preprocessing.FrequencyEncodingTests; import org.elasticsearch.xpack.core.ml.inference.preprocessing.OneHotEncodingTests; import org.elasticsearch.xpack.core.ml.inference.preprocessing.TargetMeanEncodingTests; @@ -296,7 +295,7 @@ protected Writeable.Reader instanceReader() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/trainedmodel/langident/LangIdentNeuralNetworkTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/trainedmodel/langident/LangIdentNeuralNetworkTests.java index f7f1fab2b7685..118c2f5d62751 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/trainedmodel/langident/LangIdentNeuralNetworkTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/inference/trainedmodel/langident/LangIdentNeuralNetworkTests.java @@ -11,7 +11,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.MlInferenceNamedXContentProvider; import org.junit.Before; @@ -60,7 +59,7 @@ protected Writeable.Reader instanceReader() { protected NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/NamedXContentObjectHelperTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/NamedXContentObjectHelperTests.java index ac70f11be64b0..a9a30d68c0e6f 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/NamedXContentObjectHelperTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/NamedXContentObjectHelperTests.java @@ -17,7 +17,6 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.ArrayList; @@ -95,7 +94,7 @@ protected NamedXContentRegistry xContentRegistry() { namedXContent.addAll(Collections.singletonList(new NamedXContentRegistry.Entry(NamedXContentObject.class, new ParseField("my_named_object"), (p, c) -> NamedTestObject.PARSER.apply(p, null)))); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/QueryProviderTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/QueryProviderTests.java index e653f04641262..9a9331e9543a1 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/QueryProviderTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/utils/QueryProviderTests.java @@ -21,7 +21,6 @@ import org.elasticsearch.rest.RestStatus; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.job.messages.Messages; import java.io.IOException; @@ -35,13 +34,13 @@ public class QueryProviderTests extends AbstractSerializingTestCase namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add(new NamedWriteableRegistry.Entry(SyncConfig.class, TransformField.TIME_BASED_SYNC.getPreferredName(), diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/AbstractWireSerializingTransformTestCase.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/AbstractWireSerializingTransformTestCase.java index 93ddf5c388199..fc51286a89901 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/AbstractWireSerializingTransformTestCase.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/AbstractWireSerializingTransformTestCase.java @@ -12,7 +12,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.TransformNamedXContentProvider; import org.elasticsearch.xpack.core.transform.transforms.SyncConfig; @@ -32,7 +31,7 @@ public abstract class AbstractWireSerializingTransformTestCase namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add(new NamedWriteableRegistry.Entry(SyncConfig.class, TransformField.TIME_BASED_SYNC.getPreferredName(), diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PutTransformActionRequestTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PutTransformActionRequestTests.java index 2edf627b35d3e..9a4babfbb57a7 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PutTransformActionRequestTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/action/PutTransformActionRequestTests.java @@ -11,7 +11,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.action.PutTransformAction.Request; import org.elasticsearch.xpack.core.transform.transforms.TransformConfig; @@ -45,7 +44,7 @@ protected Request createTestInstance() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); List namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add( diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/AbstractSerializingTransformTestCase.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/AbstractSerializingTransformTestCase.java index 3d6806112171a..c7a9136c76971 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/AbstractSerializingTransformTestCase.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/transform/transforms/AbstractSerializingTransformTestCase.java @@ -18,7 +18,6 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BaseAggregationBuilder; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.TransformNamedXContentProvider; import org.junit.Before; @@ -43,7 +42,7 @@ public abstract class AbstractSerializingTransformTestCase namedWriteables = searchModule.getNamedWriteables(); namedWriteables.add(new NamedWriteableRegistry.Entry(QueryBuilder.class, MockDeprecatedQueryBuilder.NAME, diff --git a/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/MlDeprecationChecksTests.java b/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/MlDeprecationChecksTests.java index 77798f4b03c9f..3d1d521e753db 100644 --- a/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/MlDeprecationChecksTests.java +++ b/x-pack/plugin/deprecation/src/test/java/org/elasticsearch/xpack/deprecation/MlDeprecationChecksTests.java @@ -11,7 +11,6 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import java.util.Collections; @@ -20,7 +19,7 @@ public class MlDeprecationChecksTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java index f47fd59bb568a..907fa1266ca72 100644 --- a/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java +++ b/x-pack/plugin/enrich/src/main/java/org/elasticsearch/xpack/enrich/action/EnrichShardMultiSearchAction.java @@ -62,7 +62,6 @@ import org.elasticsearch.search.internal.InternalSearchResponse; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.TransportService; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.enrich.EnrichPolicy; import java.io.IOException; @@ -158,9 +157,7 @@ private boolean assertSearchSource() { } private SearchSourceBuilder copy(SearchSourceBuilder source) { - NamedWriteableRegistry registry = new NamedWriteableRegistry( - new SearchModule(Settings.EMPTY, List.of(), new UsageService()).getNamedWriteables() - ); + NamedWriteableRegistry registry = new NamedWriteableRegistry(new SearchModule(Settings.EMPTY, List.of()).getNamedWriteables()); try (BytesStreamOutput output = new BytesStreamOutput()) { source.writeTo(output); try (StreamInput in = new NamedWriteableAwareStreamInput(output.bytes().streamInput(), registry)) { diff --git a/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlRequestParserTests.java b/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlRequestParserTests.java index 448e525aaf06d..bdaddb8588351 100644 --- a/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlRequestParserTests.java +++ b/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlRequestParserTests.java @@ -14,7 +14,6 @@ import org.elasticsearch.index.query.MatchQueryBuilder; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import java.io.IOException; import java.util.List; @@ -26,7 +25,7 @@ public class EqlRequestParserTests extends ESTestCase { private static NamedXContentRegistry registry = - new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of(), new UsageService()).getNamedXContents()); + new NamedXContentRegistry(new SearchModule(Settings.EMPTY, List.of()).getNamedXContents()); public void testUnknownFieldParsingErrors() throws IOException { assertParsingErrorMessage("{\"key\" : \"value\"}", "unknown field [key]", EqlSearchRequest::fromXContent); } diff --git a/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlSearchRequestTests.java b/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlSearchRequestTests.java index c105963ebc1f7..5cb576c9063b1 100644 --- a/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlSearchRequestTests.java +++ b/x-pack/plugin/eql/src/test/java/org/elasticsearch/xpack/eql/action/EqlSearchRequestTests.java @@ -20,7 +20,6 @@ import org.elasticsearch.search.searchafter.SearchAfterBuilder; import org.elasticsearch.test.AbstractSerializingTestCase; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.junit.Before; import java.io.IOException; @@ -47,13 +46,13 @@ public void setup() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/MlNativeIntegTestCase.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/MlNativeIntegTestCase.java index 4c48e042d2ad0..2a3bd0f00c00a 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/MlNativeIntegTestCase.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/MlNativeIntegTestCase.java @@ -35,7 +35,6 @@ import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.SecuritySettingsSourceField; import org.elasticsearch.transport.Netty4Plugin; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.XPackSettings; import org.elasticsearch.xpack.core.ilm.DeleteAction; import org.elasticsearch.xpack.core.ilm.IndexLifecycleMetadata; @@ -97,7 +96,7 @@ abstract class MlNativeIntegTestCase extends ESIntegTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -230,7 +229,7 @@ protected PutFilterAction.Response putMlFilter(MlFilter filter) { protected void ensureClusterStateConsistency() throws IOException { if (cluster() != null && cluster().size() > 0) { List entries = new ArrayList<>(ClusterModule.getNamedWriteables()); - entries.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedWriteables()); + entries.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedWriteables()); entries.add(new NamedWriteableRegistry.Entry(Metadata.Custom.class, "ml", MlMetadata::new)); entries.add(new NamedWriteableRegistry.Entry(Metadata.Custom.class, IndexLifecycleMetadata.TYPE, IndexLifecycleMetadata::new)); entries.add(new NamedWriteableRegistry.Entry(LifecycleType.class, TimeseriesLifecycleType.TYPE, diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigrationEligibilityCheckTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigrationEligibilityCheckTests.java index 97fbf3a2bd371..d1ea483e78712 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigrationEligibilityCheckTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigrationEligibilityCheckTests.java @@ -25,7 +25,6 @@ import org.elasticsearch.persistent.PersistentTasksCustomMetadata; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.MlMetadata; import org.elasticsearch.xpack.core.ml.MlTasks; import org.elasticsearch.xpack.core.ml.action.OpenJobAction; @@ -53,7 +52,7 @@ public void setUpTests() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java index 9ddfae60daac4..22e40a0c462b1 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlConfigMigratorTests.java @@ -21,7 +21,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.VersionUtils; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.MlMetadata; import org.elasticsearch.xpack.core.ml.MlTasks; import org.elasticsearch.xpack.core.ml.action.OpenJobAction; @@ -54,7 +53,7 @@ public class MlConfigMigratorTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlMetadataTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlMetadataTests.java index 9ea601a331601..551f9eb87ff94 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlMetadataTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlMetadataTests.java @@ -13,7 +13,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.MlMetadata; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfigTests; @@ -71,13 +70,13 @@ protected MlMetadata doParseInstance(XContentParser parser) { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java index 2c1edbb4c3d2c..3d08d8626b5ce 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/MlSingleNodeTestCase.java @@ -14,7 +14,6 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESSingleNodeTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.XPackSettings; import org.elasticsearch.xpack.core.ilm.LifecycleSettings; import org.elasticsearch.xpack.core.ml.MachineLearningField; @@ -54,7 +53,7 @@ protected Settings nodeSettings() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedActionTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedActionTests.java index 8f6469975410b..3bf8ddd023b6c 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedActionTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/action/TransportStartDatafeedActionTests.java @@ -13,7 +13,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.tasks.TaskId; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.action.StartDatafeedAction; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.job.config.Job; @@ -39,7 +38,7 @@ public class TransportStartDatafeedActionTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/DatafeedJobValidatorTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/DatafeedJobValidatorTests.java index 1aa7dbfdda8cf..c50edd215d037 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/DatafeedJobValidatorTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/DatafeedJobValidatorTests.java @@ -15,7 +15,6 @@ import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.MaxAggregationBuilder; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedJobValidator; import org.elasticsearch.xpack.core.ml.datafeed.DelayedDataCheckConfig; @@ -34,7 +33,7 @@ public class DatafeedJobValidatorTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/delayeddatacheck/DelayedDataDetectorFactoryTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/delayeddatacheck/DelayedDataDetectorFactoryTests.java index d5087d7b0442d..5eef1cde7ac55 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/delayeddatacheck/DelayedDataDetectorFactoryTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/delayeddatacheck/DelayedDataDetectorFactoryTests.java @@ -11,7 +11,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.datafeed.DelayedDataCheckConfig; import org.elasticsearch.xpack.core.ml.job.config.AnalysisConfig; @@ -32,7 +31,7 @@ public class DelayedDataDetectorFactoryTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/DataExtractorFactoryTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/DataExtractorFactoryTests.java index c6243edbd4f50..3c071df8c3b6f 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/DataExtractorFactoryTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/DataExtractorFactoryTests.java @@ -21,7 +21,6 @@ import org.elasticsearch.search.aggregations.metrics.MaxAggregationBuilder; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.ChunkingConfig; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.job.config.DataDescription; @@ -68,7 +67,7 @@ public class DataExtractorFactoryTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/aggregation/AggregationDataExtractorFactoryTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/aggregation/AggregationDataExtractorFactoryTests.java index 4eb27f7a4253d..eda96b0bcf866 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/aggregation/AggregationDataExtractorFactoryTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/aggregation/AggregationDataExtractorFactoryTests.java @@ -12,7 +12,6 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.job.config.AnalysisConfig; import org.elasticsearch.xpack.core.ml.job.config.DataDescription; @@ -41,7 +40,7 @@ public void setUpMocks() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorFactoryTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorFactoryTests.java index d6ddd96207762..d61142b6664ea 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorFactoryTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorFactoryTests.java @@ -12,7 +12,6 @@ import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.ml.datafeed.DatafeedTimingStatsReporter; import org.elasticsearch.xpack.ml.datafeed.extractor.DataExtractorFactory; @@ -37,7 +36,7 @@ public class ChunkedDataExtractorFactoryTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/dataframe/process/results/AnalyticsResultTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/dataframe/process/results/AnalyticsResultTests.java index ea6550c711f56..b2e644dda3032 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/dataframe/process/results/AnalyticsResultTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/dataframe/process/results/AnalyticsResultTests.java @@ -11,7 +11,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractXContentTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.dataframe.stats.common.MemoryUsage; import org.elasticsearch.xpack.core.ml.dataframe.stats.common.MemoryUsageTests; import org.elasticsearch.xpack.core.ml.dataframe.stats.classification.ClassificationStats; @@ -36,7 +35,7 @@ public class AnalyticsResultTests extends AbstractXContentTestCase namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlAutoUpdateServiceIT.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlAutoUpdateServiceIT.java index 150ac624591a1..e8bc9012b5b49 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlAutoUpdateServiceIT.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/MlAutoUpdateServiceIT.java @@ -18,7 +18,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.search.SearchModule; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.datafeed.DatafeedConfig; import org.elasticsearch.xpack.core.ml.job.persistence.AnomalyDetectorsIndex; import org.elasticsearch.xpack.ml.MlAutoUpdateService; @@ -119,7 +118,7 @@ public void testAutomaticModelUpdate() throws Exception { @Override public NamedXContentRegistry xContentRegistry() { - return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + return new NamedXContentRegistry(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); } } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/ModelInferenceActionIT.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/ModelInferenceActionIT.java index 8c8c3c499e33f..1ee6a2c392e29 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/ModelInferenceActionIT.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/ModelInferenceActionIT.java @@ -11,7 +11,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.license.License; import org.elasticsearch.search.SearchModule; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.MlInferenceNamedXContentProvider; import org.elasticsearch.xpack.core.ml.inference.TrainedModelConfig; import org.elasticsearch.xpack.core.ml.inference.TrainedModelDefinition; @@ -418,7 +417,7 @@ public static TrainedModel buildMultiClassClassification() { public NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/TrainedModelProviderIT.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/TrainedModelProviderIT.java index 0c8c922396e6c..a687124066d5c 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/TrainedModelProviderIT.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/integration/TrainedModelProviderIT.java @@ -16,7 +16,6 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.license.License; import org.elasticsearch.search.SearchModule; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.inference.MlInferenceNamedXContentProvider; import org.elasticsearch.xpack.core.ml.inference.TrainedModelConfig; import org.elasticsearch.xpack.core.ml.inference.TrainedModelDefinitionTests; @@ -217,7 +216,7 @@ private static TrainedModelConfig buildTrainedModelConfig(String modelId) { public NamedXContentRegistry xContentRegistry() { List namedXContent = new ArrayList<>(); namedXContent.addAll(new MlInferenceNamedXContentProvider().getNamedXContentParsers()); - namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + namedXContent.addAll(new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); return new NamedXContentRegistry(namedXContent); } diff --git a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/JobManagerTests.java b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/JobManagerTests.java index e44438e2d3a21..146cbf02739d7 100644 --- a/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/JobManagerTests.java +++ b/x-pack/plugin/ml/src/test/java/org/elasticsearch/xpack/ml/job/JobManagerTests.java @@ -41,7 +41,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.ml.MachineLearningField; import org.elasticsearch.xpack.core.ml.MlMetadata; import org.elasticsearch.xpack.core.ml.action.PutJobAction; @@ -111,7 +110,7 @@ public class JobManagerTests extends ESTestCase { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java index c81345c4feb31..9bc7b2b391771 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupRequestTranslationTests.java @@ -25,7 +25,6 @@ import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.hamcrest.Matchers; import org.junit.Before; @@ -50,7 +49,7 @@ public class RollupRequestTranslationTests extends ESTestCase { @Before public void setUp() throws Exception { super.setUp(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); List entries = new ArrayList<>(); entries.addAll(searchModule.getNamedWriteables()); namedWriteableRegistry = new NamedWriteableRegistry(entries); diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java index 8789efd1eed59..ba93ad1e97ee7 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java @@ -44,7 +44,6 @@ import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.suggest.SuggestBuilder; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.rollup.ConfigTestHelpers; import org.elasticsearch.xpack.core.rollup.RollupField; import org.elasticsearch.xpack.core.rollup.action.RollupJobCaps; @@ -85,7 +84,7 @@ public class SearchActionTests extends ESTestCase { @Before public void setUp() throws Exception { super.setUp(); - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); List entries = new ArrayList<>(); entries.addAll(IndicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); diff --git a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialPluginTests.java b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialPluginTests.java index 164a4b7d1ad9a..85c377c421427 100644 --- a/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialPluginTests.java +++ b/x-pack/plugin/spatial/src/test/java/org/elasticsearch/xpack/spatial/SpatialPluginTests.java @@ -14,7 +14,6 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.VersionUtils; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.spatial.search.aggregations.support.GeoShapeValuesSourceType; import java.util.List; @@ -27,7 +26,7 @@ public class SpatialPluginTests extends ESTestCase { public void testGeoCentroidLicenseCheck() { for (License.OperationMode operationMode : License.OperationMode.values()) { SpatialPlugin plugin = getPluginWithOperationMode(operationMode); - ValuesSourceRegistry.Builder registryBuilder = new ValuesSourceRegistry.Builder(new UsageService()); + ValuesSourceRegistry.Builder registryBuilder = new ValuesSourceRegistry.Builder(); List> registrar = plugin.getAggregationExtentions(); registrar.forEach(c -> c.accept(registryBuilder)); ValuesSourceRegistry registry = registryBuilder.build(); diff --git a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java index 34a1215e6f24b..faf6db9f510af 100644 --- a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java +++ b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlQueryRequestTests.java @@ -17,7 +17,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractWireSerializingTestCase; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.sql.proto.Mode; import org.elasticsearch.xpack.sql.proto.Protocol; import org.elasticsearch.xpack.sql.proto.RequestInfo; @@ -48,13 +47,13 @@ public void setup() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlTranslateRequestTests.java b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlTranslateRequestTests.java index d0e3b692d7910..cd992dab530af 100644 --- a/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlTranslateRequestTests.java +++ b/x-pack/plugin/sql/sql-action/src/test/java/org/elasticsearch/xpack/sql/action/SqlTranslateRequestTests.java @@ -14,7 +14,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractSerializingTestCase; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.sql.proto.Mode; import org.elasticsearch.xpack.sql.proto.RequestInfo; import org.junit.Before; @@ -52,13 +51,13 @@ private TimeValue randomTV() { @Override protected NamedWriteableRegistry getNamedWriteableRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedWriteableRegistry(searchModule.getNamedWriteables()); } @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/transform/qa/multi-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformIntegTestCase.java b/x-pack/plugin/transform/qa/multi-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformIntegTestCase.java index 34f27ad12c0e7..c3d877073193f 100644 --- a/x-pack/plugin/transform/qa/multi-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformIntegTestCase.java +++ b/x-pack/plugin/transform/qa/multi-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformIntegTestCase.java @@ -61,7 +61,6 @@ import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.rest.ESRestTestCase; -import org.elasticsearch.usage.UsageService; import org.joda.time.Instant; import java.io.IOException; @@ -387,7 +386,7 @@ private void waitForPendingTasks() { @Override protected NamedXContentRegistry xContentRegistry() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new NamedXContentRegistry(searchModule.getNamedXContents()); } @@ -400,7 +399,7 @@ protected Settings restClientSettings() { protected static class TestRestHighLevelClient extends RestHighLevelClient { private static final List X_CONTENT_ENTRIES = - new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents(); + new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents(); TestRestHighLevelClient() { super(client(), restClient -> {}, X_CONTENT_ENTRIES); diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java index 1f7f187c7db86..82bed7ac0ea78 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/test/java/org/elasticsearch/xpack/transform/integration/TransformInternalIndexIT.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.rest.ESRestTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.TransformField; import org.elasticsearch.xpack.core.transform.transforms.TransformConfig; import org.elasticsearch.xpack.core.transform.transforms.persistence.TransformInternalIndexConstants; @@ -128,7 +127,7 @@ private void createSourceIndex(String index) throws IOException { private class TestRestHighLevelClient extends RestHighLevelClient { TestRestHighLevelClient() { super(client(), restClient -> {}, - new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()).getNamedXContents()); + new SearchModule(Settings.EMPTY, Collections.emptyList()).getNamedXContents()); } } } diff --git a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationsTests.java b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationsTests.java index a559331b7df8b..e81c2b464d00e 100644 --- a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationsTests.java +++ b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/AggregationsTests.java @@ -18,7 +18,6 @@ import org.elasticsearch.search.aggregations.metrics.MinAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.PercentilesAggregationBuilder; import org.elasticsearch.test.ESTestCase; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.analytics.AnalyticsPlugin; import java.util.Arrays; @@ -97,8 +96,7 @@ public void testResolveTargetMapping() { public void testAggregationsVsTransforms() { // Note: if a new plugin is added, it must be added here - SearchModule searchModule = new SearchModule(Settings.EMPTY, Arrays.asList((new AnalyticsPlugin()), new MatrixAggregationPlugin()), - new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, Arrays.asList((new AnalyticsPlugin()), new MatrixAggregationPlugin())); List namedWriteables = searchModule.getNamedWriteables(); List aggregationNames = namedWriteables.stream() diff --git a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java index 020a9d58efff5..4f361c5e9d0d9 100644 --- a/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java +++ b/x-pack/plugin/transform/src/test/java/org/elasticsearch/xpack/transform/transforms/pivot/PivotTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.client.NoOpClient; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.transform.transforms.QueryConfig; import org.elasticsearch.xpack.core.transform.transforms.SourceConfig; import org.elasticsearch.xpack.core.transform.transforms.pivot.AggregationConfig; @@ -66,7 +65,7 @@ public class PivotTests extends ESTestCase { @Before public void registerAggregationNamedObjects() throws Exception { // register aggregations as NamedWriteable - SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList(), new UsageService()); + SearchModule searchModule = new SearchModule(Settings.EMPTY, emptyList()); namedXContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/test/integration/SearchInputTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/test/integration/SearchInputTests.java index 34e57effbfeb2..e45b1a7b91ee1 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/test/integration/SearchInputTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/test/integration/SearchInputTests.java @@ -32,7 +32,6 @@ import org.elasticsearch.search.internal.InternalSearchResponse; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.usage.UsageService; import org.elasticsearch.xpack.core.watcher.execution.WatchExecutionContext; import org.elasticsearch.xpack.core.watcher.input.Input; import org.elasticsearch.xpack.core.watcher.watch.Payload; @@ -189,7 +188,7 @@ public void testThatEmptyRequestBodyWorks() throws Exception { } private WatcherSearchTemplateService watcherSearchTemplateService() { - SearchModule module = new SearchModule(Settings.EMPTY, Collections.emptyList(), new UsageService()); + SearchModule module = new SearchModule(Settings.EMPTY, Collections.emptyList()); return new WatcherSearchTemplateService(scriptService, new NamedXContentRegistry(module.getNamedXContents())); } }