in src/main/java/org/opensearch/performanceanalyzer/reader/HttpRequestMetricsSnapshot.java [276:366]
public Result<Record> fetchLatencyByOp() {
ArrayList<SelectField<?>> fields =
new ArrayList<SelectField<?>>() {
{
this.add(DSL.field(DSL.name(Fields.OPERATION.toString()), String.class));
this.add(
DSL.field(
DSL.name(Fields.HTTP_RESP_CODE.toString()), String.class));
this.add(DSL.field(DSL.name(Fields.INDICES.toString()), String.class));
this.add(DSL.field(DSL.name(Fields.EXCEPTION.toString()), String.class));
this.add(
DSL.sum(
DSL.field(
DSL.name(
Fields.HTTP_REQUEST_DOCS
.toString()),
Long.class))
.as(
DBUtils.getAggFieldName(
Fields.HTTP_REQUEST_DOCS.toString(),
MetricsDB.SUM)));
this.add(
DSL.avg(
DSL.field(
DSL.name(
Fields.HTTP_REQUEST_DOCS
.toString()),
Long.class))
.as(
DBUtils.getAggFieldName(
Fields.HTTP_REQUEST_DOCS.toString(),
MetricsDB.AVG)));
this.add(
DSL.min(
DSL.field(
DSL.name(
Fields.HTTP_REQUEST_DOCS
.toString()),
Long.class))
.as(
DBUtils.getAggFieldName(
Fields.HTTP_REQUEST_DOCS.toString(),
MetricsDB.MIN)));
this.add(
DSL.max(
DSL.field(
DSL.name(
Fields.HTTP_REQUEST_DOCS
.toString()),
Long.class))
.as(
DBUtils.getAggFieldName(
Fields.HTTP_REQUEST_DOCS.toString(),
MetricsDB.MAX)));
this.add(
DSL.sum(DSL.field(DSL.name(Fields.LAT.toString()), Double.class))
.as(
DBUtils.getAggFieldName(
Fields.LAT.toString(), MetricsDB.SUM)));
this.add(
DSL.avg(DSL.field(DSL.name(Fields.LAT.toString()), Double.class))
.as(
DBUtils.getAggFieldName(
Fields.LAT.toString(), MetricsDB.AVG)));
this.add(
DSL.min(DSL.field(DSL.name(Fields.LAT.toString()), Double.class))
.as(
DBUtils.getAggFieldName(
Fields.LAT.toString(), MetricsDB.MIN)));
this.add(
DSL.max(DSL.field(DSL.name(Fields.LAT.toString()), Double.class))
.as(
DBUtils.getAggFieldName(
Fields.LAT.toString(), MetricsDB.MAX)));
this.add(DSL.count().as(Fields.HTTP_TOTAL_REQUESTS.toString()));
}
};
ArrayList<Field<?>> groupByFields =
new ArrayList<Field<?>>() {
{
this.add(DSL.field(DSL.name(Fields.OPERATION.toString()), String.class));
this.add(
DSL.field(
DSL.name(Fields.HTTP_RESP_CODE.toString()), String.class));
this.add(DSL.field(DSL.name(Fields.INDICES.toString()), String.class));
this.add(DSL.field(DSL.name(Fields.EXCEPTION.toString()), String.class));
}
};
return create.select(fields).from(fetchLatencyTable()).groupBy(groupByFields).fetch();
}