Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 919e4e2

Browse files
committedMar 21, 2024·
add metric to cat api Signed-off-by: Ruirui Zhang <mariazrr@amazon.com>
1 parent 8533d40 commit 919e4e2

File tree

10 files changed

+60
-38
lines changed

10 files changed

+60
-38
lines changed
 

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

+11-11
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public static class Stats implements Writeable, ToXContentFragment {
163163
private long pitTimeInMillis;
164164
private long pitCurrent;
165165

166-
private long searchIdleWakenUpCount;
166+
private long searchIdleReactivateCount;
167167

168168
@Nullable
169169
private RequestStatsLongHolder requestStatsLongHolder;
@@ -196,7 +196,7 @@ public Stats(
196196
long suggestCount,
197197
long suggestTimeInMillis,
198198
long suggestCurrent,
199-
long searchIdleWakenUpCount
199+
long searchIdleReactivateCount
200200
) {
201201
this.requestStatsLongHolder = new RequestStatsLongHolder();
202202
this.queryCount = queryCount;
@@ -224,7 +224,7 @@ public Stats(
224224
this.pitTimeInMillis = pitTimeInMillis;
225225
this.pitCurrent = pitCurrent;
226226

227-
this.searchIdleWakenUpCount = searchIdleWakenUpCount;
227+
this.searchIdleReactivateCount = searchIdleReactivateCount;
228228
}
229229

230230
private Stats(StreamInput in) throws IOException {
@@ -262,7 +262,7 @@ private Stats(StreamInput in) throws IOException {
262262
}
263263

264264
if (in.getVersion().onOrAfter(Version.V_3_0_0)) {
265-
searchIdleWakenUpCount = in.readVLong();
265+
searchIdleReactivateCount = in.readVLong();
266266
}
267267
}
268268

@@ -292,7 +292,7 @@ public void add(Stats stats) {
292292
pitTimeInMillis += stats.pitTimeInMillis;
293293
pitCurrent += stats.pitCurrent;
294294

295-
searchIdleWakenUpCount += stats.searchIdleWakenUpCount;
295+
searchIdleReactivateCount += stats.searchIdleReactivateCount;
296296
}
297297

298298
public void addForClosingShard(Stats stats) {
@@ -318,7 +318,7 @@ public void addForClosingShard(Stats stats) {
318318
pitCurrent += stats.pitCurrent;
319319
queryConcurrency += stats.queryConcurrency;
320320

321-
searchIdleWakenUpCount += stats.searchIdleWakenUpCount;
321+
searchIdleReactivateCount += stats.searchIdleReactivateCount;
322322
}
323323

324324
public long getQueryCount() {
@@ -425,8 +425,8 @@ public long getSuggestCurrent() {
425425
return suggestCurrent;
426426
}
427427

428-
public long getSearchIdleWakenUpCount() {
429-
return searchIdleWakenUpCount;
428+
public long getSearchIdleReactivateCount() {
429+
return searchIdleReactivateCount;
430430
}
431431

432432
public static Stats readStats(StreamInput in) throws IOException {
@@ -476,7 +476,7 @@ public void writeTo(StreamOutput out) throws IOException {
476476
}
477477

478478
if (out.getVersion().onOrAfter(Version.V_3_0_0)) {
479-
out.writeVLong(searchIdleWakenUpCount);
479+
out.writeVLong(searchIdleReactivateCount);
480480
}
481481
}
482482

@@ -507,7 +507,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
507507
builder.humanReadableField(Fields.SUGGEST_TIME_IN_MILLIS, Fields.SUGGEST_TIME, getSuggestTime());
508508
builder.field(Fields.SUGGEST_CURRENT, suggestCurrent);
509509

510-
builder.field(Fields.SEARCH_IDLE_WAKEN_UP_TOTAL, searchIdleWakenUpCount);
510+
builder.field(Fields.SEARCH_IDLE_REACTIVATE_COUNT_TOTAL, searchIdleReactivateCount);
511511

512512
if (requestStatsLongHolder != null) {
513513
builder.startObject(Fields.REQUEST);
@@ -677,7 +677,7 @@ static final class Fields {
677677
static final String TIME = "time";
678678
static final String CURRENT = "current";
679679
static final String TOTAL = "total";
680-
static final String SEARCH_IDLE_WAKEN_UP_TOTAL = "search_idle_waken_up_total";
680+
static final String SEARCH_IDLE_REACTIVATE_COUNT_TOTAL = "search_idle_reactivate_count_total";
681681

682682
}
683683

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ public void onFreePitContext(ReaderContext readerContext) {
214214
}
215215

216216
@Override
217-
public void onNewSearchIdleWakenUp() {
217+
public void onSearchIdleReactivation() {
218218
totalStats.searchIdleMetric.inc();
219219
}
220220

‎server/src/main/java/org/opensearch/index/shard/IndexShard.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1861,7 +1861,7 @@ public Engine.Searcher acquireSearcher(String source) {
18611861
private void markSearcherAccessed() {
18621862
if (isSearchIdle()) {
18631863
SearchOperationListener searchOperationListener = getSearchOperationListener();
1864-
searchOperationListener.onNewSearchIdleWakenUp();
1864+
searchOperationListener.onSearchIdleReactivation();
18651865
}
18661866
lastSearcherAccess.lazySet(threadPool.relativeTimeInMillis());
18671867
}

‎server/src/main/java/org/opensearch/index/shard/SearchOperationListener.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ default void onFreePitContext(ReaderContext readerContext) {}
148148
/**
149149
* Executed when a shard goes from idle to non-idle state
150150
*/
151-
default void onNewSearchIdleWakenUp() {}
151+
default void onSearchIdleReactivation() {}
152152

153153
/**
154154
* A Composite listener that multiplexes calls to each of the listeners methods.
@@ -317,12 +317,12 @@ public void onFreePitContext(ReaderContext readerContext) {
317317
}
318318

319319
@Override
320-
public void onNewSearchIdleWakenUp() {
320+
public void onSearchIdleReactivation() {
321321
for (SearchOperationListener listener : listeners) {
322322
try {
323-
listener.onNewSearchIdleWakenUp();
323+
listener.onSearchIdleReactivation();
324324
} catch (Exception e) {
325-
logger.warn(() -> new ParameterizedMessage("onNewSearchIdleWakenUp listener [{}] failed", listener), e);
325+
logger.warn(() -> new ParameterizedMessage("onNewSearchIdleReactivation listener [{}] failed", listener), e);
326326
}
327327
}
328328
}

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

+12
Original file line numberDiff line numberDiff line change
@@ -641,6 +641,15 @@ protected Table getTableWithHeader(final RestRequest request) {
641641
);
642642
table.addCell("pri.search.point_in_time_total", "default:false;text-align:right;desc:completed point in time contexts");
643643

644+
table.addCell(
645+
"search.search_idle_reactivate_count_total",
646+
"sibling:pri;alias:ssirct,searchSearchIdleReactivateCountTotal;default:false;text-align:right;desc:number of times a shard reactivated"
647+
);
648+
table.addCell(
649+
"pri.search.search_idle_reactivate_count_total",
650+
"default:false;text-align:right;desc:number of times a shard reactivated"
651+
);
652+
644653
table.addCell("segments.count", "sibling:pri;alias:sc,segmentsCount;default:false;text-align:right;desc:number of segments");
645654
table.addCell("pri.segments.count", "default:false;text-align:right;desc:number of segments");
646655

@@ -943,6 +952,9 @@ Table buildTable(
943952
table.addCell(totalStats.getSearch() == null ? null : totalStats.getSearch().getTotal().getPitCount());
944953
table.addCell(primaryStats.getSearch() == null ? null : primaryStats.getSearch().getTotal().getPitCount());
945954

955+
table.addCell(totalStats.getSearch() == null ? null : totalStats.getSearch().getTotal().getSearchIdleReactivateCount());
956+
table.addCell(primaryStats.getSearch() == null ? null : primaryStats.getSearch().getTotal().getSearchIdleReactivateCount());
957+
946958
table.addCell(totalStats.getSegments() == null ? null : totalStats.getSegments().getCount());
947959
table.addCell(primaryStats.getSegments() == null ? null : primaryStats.getSegments().getCount());
948960

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

+5
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,10 @@ protected Table getTableWithHeader(final RestRequest request) {
338338
"search.point_in_time_total",
339339
"alias:scto,searchPointInTimeTotal;default:false;text-align:right;desc:completed point in time contexts"
340340
);
341+
table.addCell(
342+
"search.search_idle_reactivate_count_total",
343+
"alias:ssirct,searchSearchIdleReactivateCountTotal;default:false;text-align:right;desc:number of times a shard reactivated"
344+
);
341345

342346
table.addCell("segments.count", "alias:sc,segmentsCount;default:false;text-align:right;desc:number of segments");
343347
table.addCell("segments.memory", "alias:sm,segmentsMemory;default:false;text-align:right;desc:memory used by segments");
@@ -555,6 +559,7 @@ Table buildTable(
555559
table.addCell(searchStats == null ? null : searchStats.getTotal().getPitCurrent());
556560
table.addCell(searchStats == null ? null : searchStats.getTotal().getPitTime());
557561
table.addCell(searchStats == null ? null : searchStats.getTotal().getPitCount());
562+
table.addCell(searchStats == null ? null : searchStats.getTotal().getSearchIdleReactivateCount());
558563

559564
SegmentsStats segmentsStats = indicesStats == null ? null : indicesStats.getSegments();
560565
table.addCell(segmentsStats == null ? null : segmentsStats.getCount());

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

+5
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,10 @@ protected Table getTableWithHeader(final RestRequest request) {
253253
"search.point_in_time_total",
254254
"alias:spto,searchPointInTimeTotal;default:false;text-align:right;desc:completed point in time contexts"
255255
);
256+
table.addCell(
257+
"search.search_idle_reactivate_count_total",
258+
"alias:ssirct,searchSearchIdleReactivateCountTotal;default:false;text-align:right;desc:number of times a shard reactivated"
259+
);
256260

257261
table.addCell("segments.count", "alias:sc,segmentsCount;default:false;text-align:right;desc:number of segments");
258262
table.addCell("segments.memory", "alias:sm,segmentsMemory;default:false;text-align:right;desc:memory used by segments");
@@ -427,6 +431,7 @@ Table buildTable(RestRequest request, ClusterStateResponse state, IndicesStatsRe
427431
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getPitCurrent()));
428432
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getPitTime()));
429433
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getPitCount()));
434+
table.addCell(getOrNull(commonStats, CommonStats::getSearch, i -> i.getTotal().getSearchIdleReactivateCount()));
430435

431436
table.addCell(getOrNull(commonStats, CommonStats::getSegments, SegmentsStats::getCount));
432437
table.addCell(getOrNull(commonStats, CommonStats::getSegments, SegmentsStats::getZeroMemory));

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ private static void assertStats(Stats stats, long equalTo) {
128128
assertEquals(equalTo, stats.getSuggestCount());
129129
assertEquals(equalTo, stats.getSuggestTimeInMillis());
130130
assertEquals(equalTo, stats.getSuggestCurrent());
131-
assertEquals(equalTo, stats.getSearchIdleWakenUpCount());
131+
assertEquals(equalTo, stats.getSearchIdleReactivateCount());
132132
// avg_concurrency is not summed up across stats
133133
assertEquals(1, stats.getConcurrentAvgSliceCount(), 0);
134134
}

‎server/src/test/java/org/opensearch/index/shard/SearchOperationListenerTests.java

+16-16
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public void testListenersAreExecuted() {
6464
AtomicInteger newScrollContext = new AtomicInteger();
6565
AtomicInteger freeScrollContext = new AtomicInteger();
6666
AtomicInteger validateSearchContext = new AtomicInteger();
67-
AtomicInteger searchIdleWakenUp = new AtomicInteger();
67+
AtomicInteger searchIdleReactivateCount = new AtomicInteger();
6868
AtomicInteger timeInNanos = new AtomicInteger(randomIntBetween(0, 10));
6969
SearchOperationListener listener = new SearchOperationListener() {
7070
@Override
@@ -136,8 +136,8 @@ public void validateReaderContext(ReaderContext readerContext, TransportRequest
136136
}
137137

138138
@Override
139-
public void onNewSearchIdleWakenUp() {
140-
searchIdleWakenUp.incrementAndGet();
139+
public void onSearchIdleReactivation() {
140+
searchIdleReactivateCount.incrementAndGet();
141141
}
142142
};
143143

@@ -175,7 +175,7 @@ public void onNewSearchIdleWakenUp() {
175175
assertEquals(0, newScrollContext.get());
176176
assertEquals(0, freeContext.get());
177177
assertEquals(0, freeScrollContext.get());
178-
assertEquals(0, searchIdleWakenUp.get());
178+
assertEquals(0, searchIdleReactivateCount.get());
179179
assertEquals(0, validateSearchContext.get());
180180

181181
compositeListener.onFetchPhase(ctx, timeInNanos.get());
@@ -189,7 +189,7 @@ public void onNewSearchIdleWakenUp() {
189189
assertEquals(0, newScrollContext.get());
190190
assertEquals(0, freeContext.get());
191191
assertEquals(0, freeScrollContext.get());
192-
assertEquals(0, searchIdleWakenUp.get());
192+
assertEquals(0, searchIdleReactivateCount.get());
193193
assertEquals(0, validateSearchContext.get());
194194

195195
compositeListener.onPreQueryPhase(ctx);
@@ -203,7 +203,7 @@ public void onNewSearchIdleWakenUp() {
203203
assertEquals(0, newScrollContext.get());
204204
assertEquals(0, freeContext.get());
205205
assertEquals(0, freeScrollContext.get());
206-
assertEquals(0, searchIdleWakenUp.get());
206+
assertEquals(0, searchIdleReactivateCount.get());
207207
assertEquals(0, validateSearchContext.get());
208208

209209
compositeListener.onPreFetchPhase(ctx);
@@ -217,7 +217,7 @@ public void onNewSearchIdleWakenUp() {
217217
assertEquals(0, newScrollContext.get());
218218
assertEquals(0, freeContext.get());
219219
assertEquals(0, freeScrollContext.get());
220-
assertEquals(0, searchIdleWakenUp.get());
220+
assertEquals(0, searchIdleReactivateCount.get());
221221
assertEquals(0, validateSearchContext.get());
222222

223223
compositeListener.onFailedFetchPhase(ctx);
@@ -231,7 +231,7 @@ public void onNewSearchIdleWakenUp() {
231231
assertEquals(0, newScrollContext.get());
232232
assertEquals(0, freeContext.get());
233233
assertEquals(0, freeScrollContext.get());
234-
assertEquals(0, searchIdleWakenUp.get());
234+
assertEquals(0, searchIdleReactivateCount.get());
235235
assertEquals(0, validateSearchContext.get());
236236

237237
compositeListener.onFailedQueryPhase(ctx);
@@ -245,7 +245,7 @@ public void onNewSearchIdleWakenUp() {
245245
assertEquals(0, newScrollContext.get());
246246
assertEquals(0, freeContext.get());
247247
assertEquals(0, freeScrollContext.get());
248-
assertEquals(0, searchIdleWakenUp.get());
248+
assertEquals(0, searchIdleReactivateCount.get());
249249
assertEquals(0, validateSearchContext.get());
250250

251251
compositeListener.onNewReaderContext(mock(ReaderContext.class));
@@ -259,7 +259,7 @@ public void onNewSearchIdleWakenUp() {
259259
assertEquals(0, newScrollContext.get());
260260
assertEquals(0, freeContext.get());
261261
assertEquals(0, freeScrollContext.get());
262-
assertEquals(0, searchIdleWakenUp.get());
262+
assertEquals(0, searchIdleReactivateCount.get());
263263
assertEquals(0, validateSearchContext.get());
264264

265265
compositeListener.onNewScrollContext(mock(ReaderContext.class));
@@ -273,7 +273,7 @@ public void onNewSearchIdleWakenUp() {
273273
assertEquals(2, newScrollContext.get());
274274
assertEquals(0, freeContext.get());
275275
assertEquals(0, freeScrollContext.get());
276-
assertEquals(0, searchIdleWakenUp.get());
276+
assertEquals(0, searchIdleReactivateCount.get());
277277
assertEquals(0, validateSearchContext.get());
278278

279279
compositeListener.onFreeReaderContext(mock(ReaderContext.class));
@@ -287,7 +287,7 @@ public void onNewSearchIdleWakenUp() {
287287
assertEquals(2, newScrollContext.get());
288288
assertEquals(2, freeContext.get());
289289
assertEquals(0, freeScrollContext.get());
290-
assertEquals(0, searchIdleWakenUp.get());
290+
assertEquals(0, searchIdleReactivateCount.get());
291291
assertEquals(0, validateSearchContext.get());
292292

293293
compositeListener.onFreeScrollContext(mock(ReaderContext.class));
@@ -301,10 +301,10 @@ public void onNewSearchIdleWakenUp() {
301301
assertEquals(2, newScrollContext.get());
302302
assertEquals(2, freeContext.get());
303303
assertEquals(2, freeScrollContext.get());
304-
assertEquals(0, searchIdleWakenUp.get());
304+
assertEquals(0, searchIdleReactivateCount.get());
305305
assertEquals(0, validateSearchContext.get());
306306

307-
compositeListener.onNewSearchIdleWakenUp();
307+
compositeListener.onSearchIdleReactivation();
308308
assertEquals(2, preFetch.get());
309309
assertEquals(2, preQuery.get());
310310
assertEquals(2, failedFetch.get());
@@ -315,7 +315,7 @@ public void onNewSearchIdleWakenUp() {
315315
assertEquals(2, newScrollContext.get());
316316
assertEquals(2, freeContext.get());
317317
assertEquals(2, freeScrollContext.get());
318-
assertEquals(2, searchIdleWakenUp.get());
318+
assertEquals(2, searchIdleReactivateCount.get());
319319
assertEquals(0, validateSearchContext.get());
320320

321321
if (throwingListeners == 0) {
@@ -341,7 +341,7 @@ public void onNewSearchIdleWakenUp() {
341341
assertEquals(2, newScrollContext.get());
342342
assertEquals(2, freeContext.get());
343343
assertEquals(2, freeScrollContext.get());
344-
assertEquals(2, searchIdleWakenUp.get());
344+
assertEquals(2, searchIdleReactivateCount.get());
345345
assertEquals(2, validateSearchContext.get());
346346
}
347347
}

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public void testBuildTable() {
125125
assertThat(headers.get(6).value, equalTo("ip"));
126126
assertThat(headers.get(7).value, equalTo("id"));
127127
assertThat(headers.get(8).value, equalTo("node"));
128-
assertThat(headers.get(78).value, equalTo("docs.deleted"));
128+
assertThat(headers.get(79).value, equalTo("docs.deleted"));
129129

130130
final List<List<Table.Cell>> rows = table.getRows();
131131
assertThat(rows.size(), equalTo(numShards));
@@ -141,9 +141,9 @@ public void testBuildTable() {
141141
assertThat(row.get(4).value, equalTo(shardStats.getStats().getDocs().getCount()));
142142
assertThat(row.get(6).value, equalTo(localNode.getHostAddress()));
143143
assertThat(row.get(7).value, equalTo(localNode.getId()));
144-
assertThat(row.get(76).value, equalTo(shardStats.getDataPath()));
145-
assertThat(row.get(77).value, equalTo(shardStats.getStatePath()));
146-
assertThat(row.get(78).value, equalTo(shardStats.getStats().getDocs().getDeleted()));
144+
assertThat(row.get(77).value, equalTo(shardStats.getDataPath()));
145+
assertThat(row.get(78).value, equalTo(shardStats.getStatePath()));
146+
assertThat(row.get(79).value, equalTo(shardStats.getStats().getDocs().getDeleted()));
147147
}
148148
}
149149
}

0 commit comments

Comments
 (0)
Please sign in to comment.