in src/main/java/org/opensearch/performanceanalyzer/action/PerformanceAnalyzerActionFilter.java [57:100]
public <Request extends ActionRequest, Response extends ActionResponse> void apply(
Task task,
final String action,
Request request,
ActionListener<Response> listener,
ActionFilterChain<Request, Response> chain) {
if (controller.isPerformanceAnalyzerEnabled()) {
if (request instanceof BulkRequest) {
PerformanceAnalyzerActionListener<Response> newListener =
new PerformanceAnalyzerActionListener<>();
String id = String.valueOf(uniqueID.getAndIncrement());
long startTime = System.currentTimeMillis();
BulkRequest bulk = (BulkRequest) request;
newListener.set(RequestType.bulk, id, listener);
newListener.saveMetricValues(
newListener.generateStartMetrics(startTime, "", bulk.requests().size()),
startTime,
RequestType.bulk.toString(),
id,
PerformanceAnalyzerMetrics.START_FILE_NAME);
chain.proceed(task, action, request, newListener);
return;
} else if (request instanceof SearchRequest) {
PerformanceAnalyzerActionListener<Response> newListener =
new PerformanceAnalyzerActionListener<>();
String id = String.valueOf(uniqueID.getAndIncrement());
long startTime = System.currentTimeMillis();
SearchRequest search = (SearchRequest) request;
newListener.set(RequestType.search, id, listener);
newListener.saveMetricValues(
newListener.generateStartMetrics(
startTime, String.join(",", search.indices()), 0),
startTime,
RequestType.search.toString(),
id,
PerformanceAnalyzerMetrics.START_FILE_NAME);
chain.proceed(task, action, request, newListener);
return;
}
}
chain.proceed(task, action, request, listener);
}