26
26
import org .opensearch .env .Environment ;
27
27
import org .opensearch .env .NodeEnvironment ;
28
28
import org .opensearch .plugin .insights .core .listener .QueryInsightsListener ;
29
+ import org .opensearch .plugin .insights .core .listener .ResourceTrackingListener ;
29
30
import org .opensearch .plugin .insights .core .service .QueryInsightsService ;
31
+ import org .opensearch .plugin .insights .rules .action .top_queries .SearchMetadataAction ;
30
32
import org .opensearch .plugin .insights .rules .action .top_queries .TopQueriesAction ;
31
33
import org .opensearch .plugin .insights .rules .resthandler .top_queries .RestTopQueriesAction ;
34
+ import org .opensearch .plugin .insights .rules .transport .top_queries .TransportSearchMetadataAction ;
32
35
import org .opensearch .plugin .insights .rules .transport .top_queries .TransportTopQueriesAction ;
33
36
import org .opensearch .plugin .insights .settings .QueryInsightsSettings ;
34
37
import org .opensearch .plugins .ActionPlugin ;
37
40
import org .opensearch .rest .RestController ;
38
41
import org .opensearch .rest .RestHandler ;
39
42
import org .opensearch .script .ScriptService ;
43
+ import org .opensearch .tasks .TaskResourceTrackingService ;
40
44
import org .opensearch .threadpool .ExecutorBuilder ;
41
45
import org .opensearch .threadpool .ScalingExecutorBuilder ;
42
46
import org .opensearch .threadpool .ThreadPool ;
@@ -67,11 +71,16 @@ public Collection<Object> createComponents(
67
71
final NodeEnvironment nodeEnvironment ,
68
72
final NamedWriteableRegistry namedWriteableRegistry ,
69
73
final IndexNameExpressionResolver indexNameExpressionResolver ,
70
- final Supplier <RepositoriesService > repositoriesServiceSupplier
74
+ final Supplier <RepositoriesService > repositoriesServiceSupplier ,
75
+ final TaskResourceTrackingService taskResourceTrackingService
71
76
) {
72
77
// create top n queries service
73
- final QueryInsightsService queryInsightsService = new QueryInsightsService (threadPool );
74
- return List .of (queryInsightsService , new QueryInsightsListener (clusterService , queryInsightsService ));
78
+ final QueryInsightsService queryInsightsService = new QueryInsightsService (threadPool , client , clusterService );
79
+ return List .of (
80
+ queryInsightsService ,
81
+ new QueryInsightsListener (clusterService , queryInsightsService ),
82
+ new ResourceTrackingListener (queryInsightsService , taskResourceTrackingService )
83
+ );
75
84
}
76
85
77
86
@ Override
@@ -96,12 +105,15 @@ public List<RestHandler> getRestHandlers(
96
105
final IndexNameExpressionResolver indexNameExpressionResolver ,
97
106
final Supplier <DiscoveryNodes > nodesInCluster
98
107
) {
99
- return List .of (new RestTopQueriesAction ());
108
+ return List .of (new RestTopQueriesAction (nodesInCluster ));
100
109
}
101
110
102
111
@ Override
103
112
public List <ActionHandler <? extends ActionRequest , ? extends ActionResponse >> getActions () {
104
- return List .of (new ActionPlugin .ActionHandler <>(TopQueriesAction .INSTANCE , TransportTopQueriesAction .class ));
113
+ return List .of (
114
+ new ActionPlugin .ActionHandler <>(TopQueriesAction .INSTANCE , TransportTopQueriesAction .class ),
115
+ new ActionPlugin .ActionHandler <>(SearchMetadataAction .INSTANCE , TransportSearchMetadataAction .class )
116
+ );
105
117
}
106
118
107
119
@ Override
0 commit comments