Skip to content

Commit 620e8c7

Browse files
Adding search phase pipeline stats
Signed-off-by: Martin Gaievski <[email protected]>
1 parent 9e498f4 commit 620e8c7

File tree

5 files changed

+172
-13
lines changed

5 files changed

+172
-13
lines changed

release-notes/opensearch.release-notes-3.0.0-alpha1.md

+1
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
- Fix Bug - Handle unsigned long in sorting order assertion of LongHashSet ([#17207](https://github.com/opensearch-project/OpenSearch/pull/17207))
5656
- Implemented computation of segment replication stats at shard level ([#17055](https://github.com/opensearch-project/OpenSearch/pull/17055))
5757
- [Rule Based Auto-tagging] Add in-memory attribute value store ([#17342](https://github.com/opensearch-project/OpenSearch/pull/17342))
58+
- Added pipeline level stats for search phase result processor ([#17559](https://github.com/opensearch-project/OpenSearch/pull/17559))
5859

5960

6061
### Dependencies

server/src/main/java/org/opensearch/search/pipeline/Pipeline.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ <Result extends SearchPhaseResult> void runSearchPhaseResultsTransformer(
323323
} catch (RuntimeException e) {
324324
onTransformPhaseResultsFailure();
325325
throw new SearchPipelineProcessingException(e);
326-
} finally {
326+
} finally {
327327
long took = TimeUnit.NANOSECONDS.toMillis(relativeTimeSupplier.getAsLong() - pipelineStart);
328328
afterTransformPhaseResults(took);
329329
}

server/src/main/java/org/opensearch/search/pipeline/PipelineWithMetrics.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,12 @@ void populateStats(SearchPipelineStats.Builder statsBuilder) {
316316
}
317317
for (Processor phaseResultsProcessor : getSearchPhaseResultsProcessors()) {
318318
String key = getProcessorKey(phaseResultsProcessor);
319-
statsBuilder.addPhaseResultsProcessorStats(getId(), key, phaseResultsProcessor.getType(), phaseResultsProcessorMetrics.get(key));
319+
statsBuilder.addPhaseResultsProcessorStats(
320+
getId(),
321+
key,
322+
phaseResultsProcessor.getType(),
323+
phaseResultsProcessorMetrics.get(key)
324+
);
320325
}
321326
}
322327
}

server/src/main/java/org/opensearch/search/pipeline/SearchPipelineStats.java

+24-5
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,11 @@ public SearchPipelineStats(StreamInput in) throws IOException {
8989
}
9090
pipelineDetailStatsMap.put(
9191
pipelineId,
92-
new PipelineDetailStats(unmodifiableList(requestProcessorStats), unmodifiableList(phaseResultsProcessorStats), unmodifiableList(responseProcessorStats))
92+
new PipelineDetailStats(
93+
unmodifiableList(requestProcessorStats),
94+
unmodifiableList(phaseResultsProcessorStats),
95+
unmodifiableList(responseProcessorStats)
96+
)
9397
);
9498
}
9599
this.perPipelineStats = unmodifiableList(perPipelineStats);
@@ -184,7 +188,11 @@ static class Builder {
184188
private final Map<String, List<ProcessorStats>> responseProcessorStatsPerPipeline = new HashMap<>();
185189
private final Map<String, List<ProcessorStats>> phaseResultsProcessorStatsPerPipeline = new HashMap<>();
186190

187-
Builder withTotalStats(OperationMetrics totalRequestMetrics, OperationMetrics totalResponseMetrics, OperationMetrics totalPhaseProcessingMetrics) {
191+
Builder withTotalStats(
192+
OperationMetrics totalRequestMetrics,
193+
OperationMetrics totalResponseMetrics,
194+
OperationMetrics totalPhaseProcessingMetrics
195+
) {
188196
this.totalRequestStats = totalRequestMetrics.createStats();
189197
this.totalResponseStats = totalResponseMetrics.createStats();
190198
this.totalPhaseResultsStats = totalPhaseProcessingMetrics.createStats();
@@ -204,7 +212,12 @@ Builder addRequestProcessorStats(String pipelineId, String processorName, String
204212
return this;
205213
}
206214

207-
Builder addPhaseResultsProcessorStats(String pipelineId, String processorName, String processorType, OperationMetrics processorMetrics) {
215+
Builder addPhaseResultsProcessorStats(
216+
String pipelineId,
217+
String processorName,
218+
String processorType,
219+
OperationMetrics processorMetrics
220+
) {
208221
this.phaseResultsProcessorStatsPerPipeline.computeIfAbsent(pipelineId, k -> new ArrayList<>())
209222
.add(new ProcessorStats(processorName, processorType, processorMetrics.createStats()));
210223
return this;
@@ -294,7 +307,11 @@ static class PipelineDetailStats {
294307
private final List<ProcessorStats> phaseResultsProcessorStats;
295308
private final List<ProcessorStats> responseProcessorStats;
296309

297-
public PipelineDetailStats(List<ProcessorStats> requestProcessorStats, List<ProcessorStats> phaseResultsProcessorStats, List<ProcessorStats> responseProcessorStats) {
310+
public PipelineDetailStats(
311+
List<ProcessorStats> requestProcessorStats,
312+
List<ProcessorStats> phaseResultsProcessorStats,
313+
List<ProcessorStats> responseProcessorStats
314+
) {
298315
this.requestProcessorStats = requestProcessorStats;
299316
this.phaseResultsProcessorStats = phaseResultsProcessorStats;
300317
this.responseProcessorStats = responseProcessorStats;
@@ -317,7 +334,9 @@ public boolean equals(Object o) {
317334
if (this == o) return true;
318335
if (o == null || getClass() != o.getClass()) return false;
319336
PipelineDetailStats that = (PipelineDetailStats) o;
320-
return requestProcessorStats.equals(that.requestProcessorStats) && responseProcessorStats.equals(that.responseProcessorStats) && phaseResultsProcessorStats.equals(that.phaseResultsProcessorStats);
337+
return requestProcessorStats.equals(that.requestProcessorStats)
338+
&& responseProcessorStats.equals(that.responseProcessorStats)
339+
&& phaseResultsProcessorStats.equals(that.phaseResultsProcessorStats);
321340
}
322341

323342
@Override

0 commit comments

Comments
 (0)