3535import org .graylog .plugins .usagestatistics .dto .NodeStats ;
3636import org .graylog .plugins .usagestatistics .dto .Os ;
3737import org .graylog .plugins .usagestatistics .dto .PluginInfo ;
38+ import org .graylog .plugins .usagestatistics .dto .SearchStats ;
3839import org .graylog .plugins .usagestatistics .dto .SessionStats ;
3940import org .graylog .plugins .usagestatistics .dto .ThroughputStats ;
4041import org .graylog .plugins .usagestatistics .util .MetricUtils ;
42+ import org .graylog2 .indexer .elasticsearch .GlobalTimeoutClient ;
4143import org .graylog2 .inputs .Input ;
4244import org .graylog2 .inputs .InputService ;
4345import org .graylog2 .plugin .PluginMetaData ;
4648import org .graylog2 .plugin .cluster .ClusterConfigService ;
4749import org .graylog2 .plugin .cluster .ClusterId ;
4850import org .graylog2 .plugin .system .NodeId ;
51+ import org .graylog2 .rest .resources .search .AbsoluteSearchResource ;
52+ import org .graylog2 .rest .resources .search .KeywordSearchResource ;
53+ import org .graylog2 .rest .resources .search .RelativeSearchResource ;
54+ import org .graylog2 .rest .resources .search .SearchResource ;
4955import org .graylog2 .rest .resources .system .SessionsResource ;
5056import org .graylog2 .security .realm .SessionAuthenticator ;
5157import org .graylog2 .shared .system .stats .StatsService ;
6571import static com .google .common .base .Strings .isNullOrEmpty ;
6672import static org .graylog .plugins .usagestatistics .util .MetricUtils .safeGetCounter ;
6773import static org .graylog .plugins .usagestatistics .util .MetricUtils .safeGetMeter ;
74+ import static org .graylog .plugins .usagestatistics .util .MetricUtils .safeGetTimer ;
6875
6976@ Singleton
7077public class NodeCollector {
@@ -274,6 +281,14 @@ private NodeStats buildNodeStats() {
274281 safeGetMeter (metricRegistry , name (SessionsResource .class , "terminateSession" )).getCount ()
275282 );
276283
284+ final SearchStats searchStats = SearchStats .create (
285+ safeGetCounter (metricRegistry , name (SearchResource .class , "empty-search-results" )).getCount (),
286+ safeGetTimer (metricRegistry , name (AbsoluteSearchResource .class , "searchAbsolute" )).getCount (),
287+ safeGetTimer (metricRegistry , name (KeywordSearchResource .class , "searchKeyword" )).getCount (),
288+ safeGetTimer (metricRegistry , name (RelativeSearchResource .class , "searchRelative" )).getCount (),
289+ safeGetCounter (metricRegistry , name (GlobalTimeoutClient .class , "search-requests" )).getCount ()
290+ );
291+
277292 return NodeStats .create (
278293 uptime ,
279294 inputService .totalCountForNode (nodeId .toString ()),
@@ -282,6 +297,7 @@ private NodeStats buildNodeStats() {
282297 journalStats ,
283298 searchTimings ,
284299 searchRanges ,
300+ searchStats ,
285301 sessionStats
286302 );
287303 }
0 commit comments