Skip to content

Commit 78480c6

Browse files
committed
add query current, fix version
Signed-off-by: Sandesh Kumar <sandeshkr419@gmail.com>
1 parent aa8d4e4 commit 78480c6

File tree

8 files changed

+73
-24
lines changed

8 files changed

+73
-24
lines changed

rest-api-spec/src/main/resources/rest-api-spec/test/cat.shards/10_basic.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
"Help":
22
- skip:
3-
version: " - 3.0.99"
4-
reason: star-tree search stats is only added in 3.1.0
3+
version: " - 3.1.99"
4+
reason: star-tree search stats is only added in 3.2.0
55
features: node_selector
66
- do:
77
cat.shards:
88
help: true
99
node_selector:
10-
version: "3.1.0 - "
10+
version: "3.2.0 - "
1111

1212
- match:
1313
$body: |
@@ -70,8 +70,9 @@
7070
search.concurrent_query_time .+ \n
7171
search.concurrent_query_total .+ \n
7272
search.concurrent_avg_slice_count .+ \n
73-
search.startree_query_total .+ \n
73+
search.startree_query_current .+ \n
7474
search.startree_query_time .+ \n
75+
search.startree_query_total .+ \n
7576
search.scroll_current .+ \n
7677
search.scroll_time .+ \n
7778
search.scroll_total .+ \n
@@ -104,7 +105,7 @@
104105
cat.shards:
105106
help: true
106107
node_selector:
107-
version: "2.14.0 - 3.0.99"
108+
version: "2.14.0 - 3.1.99"
108109

109110
- match:
110111
$body: |

server/src/main/java/org/opensearch/index/search/stats/SearchStats.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ public static class Stats implements Writeable, ToXContentFragment {
168168

169169
private long starTreeQueryCount;
170170
private long starTreeQueryTimeInMillis;
171+
public long starTreeQueryCurrent;
171172

172173
@Nullable
173174
private RequestStatsLongHolder requestStatsLongHolder;
@@ -216,6 +217,7 @@ private Stats(Builder builder) {
216217

217218
this.starTreeQueryCount = builder.starTreeQueryCount;
218219
this.starTreeQueryTimeInMillis = builder.starTreeQueryTimeInMillis;
220+
this.starTreeQueryCurrent = builder.starTreeQueryCurrent;
219221
}
220222

221223
/**
@@ -312,9 +314,10 @@ private Stats(StreamInput in) throws IOException {
312314
searchIdleReactivateCount = in.readVLong();
313315
}
314316

315-
if (in.getVersion().onOrAfter(Version.V_3_1_0)) {
317+
if (in.getVersion().onOrAfter(Version.V_3_2_0)) {
316318
starTreeQueryCount = in.readVLong();
317319
starTreeQueryTimeInMillis = in.readVLong();
320+
starTreeQueryCurrent = in.readVLong();
318321
}
319322
}
320323

@@ -348,6 +351,7 @@ public void add(Stats stats) {
348351

349352
starTreeQueryCount += stats.starTreeQueryCount;
350353
starTreeQueryTimeInMillis += stats.starTreeQueryTimeInMillis;
354+
starTreeQueryCurrent += stats.starTreeQueryCurrent;
351355
}
352356

353357
public void addForClosingShard(Stats stats) {
@@ -499,6 +503,10 @@ public long getStarTreeQueryTimeInMillis() {
499503
return starTreeQueryTimeInMillis;
500504
}
501505

506+
public long getStarTreeQueryCurrent() {
507+
return starTreeQueryCurrent;
508+
}
509+
502510
public static Stats readStats(StreamInput in) throws IOException {
503511
return new Stats(in);
504512
}
@@ -549,9 +557,10 @@ public void writeTo(StreamOutput out) throws IOException {
549557
out.writeVLong(searchIdleReactivateCount);
550558
}
551559

552-
if (out.getVersion().onOrAfter(Version.V_3_1_0)) {
560+
if (out.getVersion().onOrAfter(Version.V_3_2_0)) {
553561
out.writeVLong(starTreeQueryCount);
554562
out.writeVLong(starTreeQueryTimeInMillis);
563+
out.writeVLong(starTreeQueryCurrent);
555564
}
556565
}
557566

@@ -568,6 +577,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
568577

569578
builder.field(Fields.STARTREE_QUERY_TOTAL, starTreeQueryCount);
570579
builder.humanReadableField(Fields.STARTREE_QUERY_TIME_IN_MILLIS, Fields.STARTREE_QUERY_TIME, getStarTreeQueryTime());
580+
builder.field(Fields.STARTREE_QUERY_CURRENT, getStarTreeQueryCurrent());
571581

572582
builder.field(Fields.FETCH_TOTAL, fetchCount);
573583
builder.humanReadableField(Fields.FETCH_TIME_IN_MILLIS, Fields.FETCH_TIME, getFetchTime());
@@ -642,6 +652,7 @@ public static class Builder {
642652
private long searchIdleReactivateCount = 0;
643653
private long starTreeQueryCount = 0;
644654
private long starTreeQueryTimeInMillis = 0;
655+
private long starTreeQueryCurrent = 0;
645656
@Nullable
646657
private RequestStatsLongHolder requestStatsLongHolder = null;
647658

@@ -757,8 +768,8 @@ public Builder starTreeQueryTimeInMillis(long time) {
757768
return this;
758769
}
759770

760-
public Builder requestStatsLongHolder(RequestStatsLongHolder holder) {
761-
this.requestStatsLongHolder = holder;
771+
public Builder starTreeQueryCurrent(long current) {
772+
this.starTreeQueryCurrent = current;
762773
return this;
763774
}
764775

@@ -913,6 +924,7 @@ static final class Fields {
913924
static final String STARTREE_QUERY_TOTAL = "startree_query_total";
914925
static final String STARTREE_QUERY_TIME = "startree_query_time";
915926
static final String STARTREE_QUERY_TIME_IN_MILLIS = "startree_query_time_in_millis";
927+
static final String STARTREE_QUERY_CURRENT = "startree_query_current";
916928
static final String FETCH_TOTAL = "fetch_total";
917929
static final String FETCH_TIME = "fetch_time";
918930
static final String FETCH_TIME_IN_MILLIS = "fetch_time_in_millis";

server/src/main/java/org/opensearch/index/search/stats/ShardSearchStats.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ public void onPreQueryPhase(SearchContext searchContext) {
9494
if (searchContext.shouldUseConcurrentSearch()) {
9595
statsHolder.concurrentQueryCurrent.inc();
9696
}
97+
if (searchContext.getQueryShardContext().getStarTreeQueryContext() != null) {
98+
statsHolder.starTreeCurrent.inc();
99+
}
97100
}
98101
});
99102
}
@@ -111,6 +114,10 @@ public void onFailedQueryPhase(SearchContext searchContext) {
111114
statsHolder.concurrentQueryCurrent.dec();
112115
assert statsHolder.concurrentQueryCurrent.count() >= 0;
113116
}
117+
if (searchContext.getQueryShardContext().getStarTreeQueryContext() != null) {
118+
statsHolder.starTreeCurrent.dec();
119+
assert statsHolder.starTreeCurrent.count() >= 0;
120+
}
114121
}
115122
});
116123
}
@@ -135,6 +142,8 @@ public void onQueryPhase(SearchContext searchContext, long tookInNanos) {
135142
}
136143
if (searchContext.getQueryShardContext().getStarTreeQueryContext() != null) {
137144
statsHolder.starTreeQueryMetric.inc(tookInNanos);
145+
statsHolder.starTreeCurrent.dec();
146+
assert statsHolder.starTreeCurrent.count() >= 0;
138147
}
139148
}
140149
});
@@ -249,6 +258,7 @@ static final class StatsHolder {
249258
final CounterMetric suggestCurrent = new CounterMetric();
250259
final CounterMetric searchIdleMetric = new CounterMetric();
251260
final MeanMetric starTreeQueryMetric = new MeanMetric();
261+
final CounterMetric starTreeCurrent = new CounterMetric();
252262

253263
SearchStats.Stats stats() {
254264
return new SearchStats.Stats.Builder().queryCount(queryMetric.count())
@@ -273,6 +283,7 @@ SearchStats.Stats stats() {
273283
.searchIdleReactivateCount(searchIdleMetric.count())
274284
.starTreeQueryCount(starTreeQueryMetric.count())
275285
.starTreeQueryTimeInMillis(TimeUnit.NANOSECONDS.toMillis(starTreeQueryMetric.sum()))
286+
.starTreeQueryCurrent(starTreeCurrent.count())
276287
.build();
277288
}
278289
}

server/src/main/java/org/opensearch/rest/action/cat/RestIndicesAction.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -677,15 +677,21 @@ protected Table getTableWithHeader(final RestRequest request, final PageToken pa
677677
);
678678
table.addCell("pri.search.concurrent_avg_slice_count", "default:false;text-align:right;desc:average query concurrency");
679679

680+
table.addCell(
681+
"search.startree_query_current",
682+
"sibling:pri;alias:stqc,startreeQueryCurrent;default:false;text-align:right;desc:current star tree query ops"
683+
);
684+
table.addCell("pri.startree.query_current", "default:false;text-align:right;desc:current star tree query ops");
685+
680686
table.addCell(
681687
"search.startree_query_total",
682-
"sibling:pri;alias:stqc,startreeQueryTotal;default:false;text-align:right;desc:total star tree resolved queries"
688+
"sibling:pri;alias:stqto,startreeQueryCurrent;default:false;text-align:right;desc:total star tree resolved queries"
683689
);
684690
table.addCell("pri.startree.query_total", "default:false;text-align:right;desc:total star tree resolved queries");
685691

686692
table.addCell(
687693
"search.startree_query_time",
688-
"sibling:pri;alias:stqt,startreeQueryTime;default:false;text-align:right;desc:time spent in star tree queries"
694+
"sibling:pri;alias:stqti,startreeQueryTime;default:false;text-align:right;desc:time spent in star tree queries"
689695
);
690696
table.addCell("pri.startree.query_time", "default:false;text-align:right;desc:time spent in star tree queries");
691697

@@ -1029,6 +1035,9 @@ protected Table buildTable(
10291035
table.addCell(totalStats.getSearch() == null ? null : totalStats.getSearch().getTotal().getStarTreeQueryTime());
10301036
table.addCell(primaryStats.getSearch() == null ? null : primaryStats.getSearch().getTotal().getStarTreeQueryTime());
10311037

1038+
table.addCell(totalStats.getSearch() == null ? null : totalStats.getSearch().getTotal().getStarTreeQueryCurrent());
1039+
table.addCell(primaryStats.getSearch() == null ? null : primaryStats.getSearch().getTotal().getStarTreeQueryCurrent());
1040+
10321041
table.addCell(totalStats.getSearch() == null ? null : totalStats.getSearch().getTotal().getScrollCurrent());
10331042
table.addCell(primaryStats.getSearch() == null ? null : primaryStats.getSearch().getTotal().getScrollCurrent());
10341043

server/src/main/java/org/opensearch/rest/action/cat/RestNodesAction.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,18 @@ protected Table getTableWithHeader(final RestRequest request) {
341341
);
342342

343343
table.addCell(
344-
"search.startree_query_total",
345-
"alias:stqc,startreeQueryTotal;default:false;text-align:right;desc:total star tree resolved queries"
344+
"search.startree_query_current",
345+
"alias:stqc,startreeQueryCurrent;default:false;text-align:right;desc:current star tree query ops"
346346
);
347+
347348
table.addCell(
348349
"search.startree_query_time",
349-
"alias:stqt,startreeQueryTime;default:false;text-align:right;desc:time spent in star tree queries"
350+
"alias:stqti,startreeQueryTime;default:false;text-align:right;desc:time spent in star tree queries"
351+
);
352+
353+
table.addCell(
354+
"search.startree_query_total",
355+
"alias:stqto,startreeQueryTotal;default:false;text-align:right;desc:total star tree resolved queries"
350356
);
351357

352358
table.addCell("segments.count", "alias:sc,segmentsCount;default:false;text-align:right;desc:number of segments");
@@ -565,8 +571,9 @@ Table buildTable(
565571
table.addCell(searchStats == null ? null : searchStats.getTotal().getPitCurrent());
566572
table.addCell(searchStats == null ? null : searchStats.getTotal().getPitTime());
567573
table.addCell(searchStats == null ? null : searchStats.getTotal().getPitCount());
568-
table.addCell(searchStats == null ? null : searchStats.getTotal().getStarTreeQueryCount());
574+
table.addCell(searchStats == null ? null : searchStats.getTotal().getStarTreeQueryCurrent());
569575
table.addCell(searchStats == null ? null : searchStats.getTotal().getStarTreeQueryTime());
576+
table.addCell(searchStats == null ? null : searchStats.getTotal().getStarTreeQueryCount());
570577

571578
SegmentsStats segmentsStats = indicesStats == null ? null : indicesStats.getSegments();
572579
table.addCell(segmentsStats == null ? null : segmentsStats.getCount());

server/src/main/java/org/opensearch/rest/action/cat/RestShardsAction.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -249,13 +249,18 @@ protected Table getTableWithHeader(final RestRequest request, final PageToken pa
249249
"search.concurrent_avg_slice_count",
250250
"alias:casc,searchConcurrentAvgSliceCount;default:false;text-align:right;desc:average query concurrency"
251251
);
252+
252253
table.addCell(
253-
"search.startree_query_total",
254-
"alias:stqc,startreeQueryTotal;default:false;text-align:right;desc:total star tree resolved queries"
254+
"search.startree_query_current",
255+
"alias:stqc,startreeQueryCurrent;default:false;text-align:right;desc:current star tree query ops"
255256
);
256257
table.addCell(
257258
"search.startree_query_time",
258-
"alias:stqt,startreeQueryTime;default:false;text-align:right;desc:time spent in star tree queries"
259+
"alias:stqti,startreeQueryTime;default:false;text-align:right;desc:time spent in star tree queries"
260+
);
261+
table.addCell(
262+
"search.startree_query_total",
263+
"alias:stqto,startreeQueryTotal;default:false;text-align:right;desc:total star tree resolved queries"
259264
);
260265

261266
table.addCell("search.scroll_current", "alias:scc,searchScrollCurrent;default:false;text-align:right;desc:open scroll contexts");
@@ -458,8 +463,9 @@ Table buildTable(
458463
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getConcurrentQueryCount()));
459464
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getConcurrentAvgSliceCount()));
460465

461-
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getStarTreeQueryCount()));
466+
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getStarTreeQueryCurrent()));
462467
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getStarTreeQueryTime()));
468+
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getStarTreeQueryCount()));
463469

464470
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getScrollCurrent()));
465471
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getScrollTime()));

server/src/test/java/org/opensearch/index/search/stats/SearchStatsTests.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ public void testShardLevelSearchGroupStats() {
7878
.pitCurrent(1)
7979
.searchIdleReactivateCount(1)
8080
.starTreeQueryCount(1)
81-
.starTreeQueryTimeInMillis(1);
81+
.starTreeQueryTimeInMillis(1)
82+
.starTreeQueryCurrent(1)
83+
.starTreeQueryCurrent(1);
8284
groupStats2.put("group1", defaultStats.build());
8385
SearchStats searchStats1 = new SearchStats(defaultStats.build(), 0, groupStats1);
8486
SearchStats searchStats2 = new SearchStats(defaultStats.build(), 0, groupStats2);
@@ -140,6 +142,7 @@ private static void assertStats(Stats stats, long equalTo) {
140142
assertEquals(equalTo, stats.getConcurrentQueryCurrent());
141143
assertEquals(equalTo, stats.getStarTreeQueryCount());
142144
assertEquals(equalTo, stats.getStarTreeQueryTimeInMillis());
145+
assertEquals(equalTo, stats.getStarTreeQueryCurrent());
143146
assertEquals(equalTo, stats.getFetchCount());
144147
assertEquals(equalTo, stats.getFetchTimeInMillis());
145148
assertEquals(equalTo, stats.getFetchCurrent());

server/src/test/java/org/opensearch/rest/action/cat/RestShardsActionTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ private void assertTable(Table table) {
158158
assertThat(headers.get(6).value, equalTo("ip"));
159159
assertThat(headers.get(7).value, equalTo("id"));
160160
assertThat(headers.get(8).value, equalTo("node"));
161-
assertThat(headers.get(81).value, equalTo("docs.deleted"));
161+
assertThat(headers.get(82).value, equalTo("docs.deleted"));
162162

163163
final List<List<Table.Cell>> rows = table.getRows();
164164
assertThat(rows.size(), equalTo(shardRoutings.size()));
@@ -174,9 +174,9 @@ private void assertTable(Table table) {
174174
assertThat(row.get(4).value, equalTo(shardStats.getStats().getDocs().getCount()));
175175
assertThat(row.get(6).value, equalTo(localNode.getHostAddress()));
176176
assertThat(row.get(7).value, equalTo(localNode.getId()));
177-
assertThat(row.get(79).value, equalTo(shardStats.getDataPath()));
178-
assertThat(row.get(80).value, equalTo(shardStats.getStatePath()));
179-
assertThat(row.get(81).value, equalTo(shardStats.getStats().getDocs().getDeleted()));
177+
assertThat(row.get(80).value, equalTo(shardStats.getDataPath()));
178+
assertThat(row.get(81).value, equalTo(shardStats.getStatePath()));
179+
assertThat(row.get(82).value, equalTo(shardStats.getStats().getDocs().getDeleted()));
180180
}
181181
}
182182
}

0 commit comments

Comments
 (0)