Browse Source

Set includeShardsStats = false in NodesStatsRequest where the caller does not use shards-level statistics (#100938)

Relates #100466
Jaime Pan 1 năm trước cách đây
mục cha
commit
6cf4c8050b

+ 5 - 0
docs/changelog/100938.yaml

@@ -0,0 +1,5 @@
+pr: 100938
+summary: "Set includeShardsStats = false in NodesStatsRequest where the caller does not use shards-level statistics"
+area: Stats
+type: enhancement
+issues: []

+ 1 - 0
server/src/main/java/org/elasticsearch/cluster/InternalClusterInfoService.java

@@ -284,6 +284,7 @@ public class InternalClusterInfoService implements ClusterInfoService, ClusterSt
 
         private void fetchNodeStats() {
             final NodesStatsRequest nodesStatsRequest = new NodesStatsRequest("data:true");
+            nodesStatsRequest.setIncludeShardsStats(false);
             nodesStatsRequest.clear();
             nodesStatsRequest.addMetric(NodesStatsRequest.Metric.FS.metricName());
             nodesStatsRequest.timeout(fetchTimeout);

+ 1 - 0
server/src/main/java/org/elasticsearch/rest/action/cat/RestAllocationAction.java

@@ -63,6 +63,7 @@ public class RestAllocationAction extends AbstractCatAction {
             @Override
             public void processResponse(final ClusterStateResponse state) {
                 NodesStatsRequest statsRequest = new NodesStatsRequest(nodes);
+                statsRequest.setIncludeShardsStats(false);
                 statsRequest.clear()
                     .addMetric(NodesStatsRequest.Metric.FS.metricName())
                     .indices(new CommonStatsFlags(CommonStatsFlags.Flag.Store));

+ 1 - 0
server/src/main/java/org/elasticsearch/rest/action/cat/RestFielddataAction.java

@@ -43,6 +43,7 @@ public class RestFielddataAction extends AbstractCatAction {
     @Override
     protected RestChannelConsumer doCatRequest(final RestRequest request, final NodeClient client) {
         final NodesStatsRequest nodesStatsRequest = new NodesStatsRequest("data:true");
+        nodesStatsRequest.setIncludeShardsStats(false);
         nodesStatsRequest.clear();
         nodesStatsRequest.indices(true);
         String[] fields = request.paramAsStringArray("fields", null);

+ 1 - 0
server/src/main/java/org/elasticsearch/rest/action/cat/RestNodesAction.java

@@ -98,6 +98,7 @@ public class RestNodesAction extends AbstractCatAction {
             );
 
         final NodesStatsRequest nodesStatsRequest = new NodesStatsRequest();
+        nodesStatsRequest.setIncludeShardsStats(false);
         nodesStatsRequest.clear()
             .indices(true)
             .addMetrics(

+ 1 - 0
server/src/main/java/org/elasticsearch/rest/action/cat/RestThreadPoolAction.java

@@ -83,6 +83,7 @@ public class RestThreadPoolAction extends AbstractCatAction {
                     @Override
                     public void processResponse(final NodesInfoResponse nodesInfoResponse) {
                         NodesStatsRequest nodesStatsRequest = new NodesStatsRequest();
+                        nodesStatsRequest.setIncludeShardsStats(false);
                         nodesStatsRequest.clear().addMetric(NodesStatsRequest.Metric.THREAD_POOL.metricName());
                         client.admin().cluster().nodesStats(nodesStatsRequest, new RestResponseListener<NodesStatsResponse>(channel) {
                             @Override

+ 1 - 0
server/src/main/java/org/elasticsearch/rest/action/info/RestClusterInfoAction.java

@@ -86,6 +86,7 @@ public class RestClusterInfoAction extends BaseRestHandler {
     @Override
     public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException {
         var nodesStatsRequest = new NodesStatsRequest().clear();
+        nodesStatsRequest.setIncludeShardsStats(false);
         var targets = Strings.tokenizeByCommaToSet(request.param("target"));
 
         if (targets.size() == 1 && targets.contains("_all")) {

+ 5 - 3
x-pack/plugin/autoscaling/src/main/java/org/elasticsearch/xpack/autoscaling/capacity/nodeinfo/AutoscalingNodeInfoService.java

@@ -122,12 +122,14 @@ public class AutoscalingNodeInfoService {
                 nodeToMemory = Collections.unmodifiableMap(builder);
             }
         };
+        final NodesStatsRequest nodesStatsRequest = new NodesStatsRequest(
+            missingNodes.stream().map(DiscoveryNode::getId).toArray(String[]::new)
+        ).clear().addMetric(NodesStatsRequest.Metric.OS.metricName()).timeout(fetchTimeout);
+        nodesStatsRequest.setIncludeShardsStats(false);
         client.admin()
             .cluster()
             .nodesStats(
-                new NodesStatsRequest(missingNodes.stream().map(DiscoveryNode::getId).toArray(String[]::new)).clear()
-                    .addMetric(NodesStatsRequest.Metric.OS.metricName())
-                    .timeout(fetchTimeout),
+                nodesStatsRequest,
                 ActionListener.wrap(
                     nodesStatsResponse -> client.admin()
                         .cluster()

+ 1 - 0
x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportGetTrainedModelsStatsAction.java

@@ -390,6 +390,7 @@ public class TransportGetTrainedModelsStatsAction extends HandledTransportAction
         String[] ingestNodes = state.nodes().getIngestNodes().keySet().toArray(String[]::new);
         NodesStatsRequest nodesStatsRequest = new NodesStatsRequest(ingestNodes).clear()
             .addMetric(NodesStatsRequest.Metric.INGEST.metricName());
+        nodesStatsRequest.setIncludeShardsStats(false);
         nodesStatsRequest.setParentTask(parentTaskId);
         return nodesStatsRequest;
     }

+ 1 - 0
x-pack/plugin/monitoring/src/main/java/org/elasticsearch/xpack/monitoring/collector/node/NodeStatsCollector.java

@@ -67,6 +67,7 @@ public class NodeStatsCollector extends Collector {
     @Override
     protected Collection<MonitoringDoc> doCollect(final MonitoringDoc.Node node, final long interval, final ClusterState clusterState) {
         NodesStatsRequest request = new NodesStatsRequest("_local");
+        request.setIncludeShardsStats(false);
         request.indices(FLAGS);
         request.addMetrics(
             NodesStatsRequest.Metric.OS.metricName(),