in src/main/java/org/opensearch/performanceanalyzer/reader/FaultDetectionMetricsSnapshot.java [279:366]
public Result<Record> fetchAggregatedTable() {
ArrayList<SelectField<?>> fields =
new ArrayList<SelectField<?>>() {
{
this.add(
DSL.field(
DSL.name(
AllMetrics.FaultDetectionDimension.SOURCE_NODE_ID
.toString()),
String.class));
this.add(
DSL.field(
DSL.name(
AllMetrics.FaultDetectionDimension.TARGET_NODE_ID
.toString()),
String.class));
this.add(
DSL.field(
DSL.name(Fields.FAULT_DETECTION_TYPE.toString()),
String.class));
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.sum(DSL.field(DSL.name(Fields.FAULT.toString()), Double.class))
.as(
DBUtils.getAggFieldName(
Fields.FAULT.toString(), MetricsDB.SUM)));
this.add(
DSL.avg(DSL.field(DSL.name(Fields.FAULT.toString()), Double.class))
.as(
DBUtils.getAggFieldName(
Fields.FAULT.toString(), MetricsDB.AVG)));
this.add(
DSL.min(DSL.field(DSL.name(Fields.FAULT.toString()), Double.class))
.as(
DBUtils.getAggFieldName(
Fields.FAULT.toString(), MetricsDB.MIN)));
this.add(
DSL.max(DSL.field(DSL.name(Fields.FAULT.toString()), Double.class))
.as(
DBUtils.getAggFieldName(
Fields.FAULT.toString(), MetricsDB.MAX)));
}
};
ArrayList<Field<?>> groupByFields =
new ArrayList<Field<?>>() {
{
this.add(
DSL.field(
DSL.name(
AllMetrics.FaultDetectionDimension.SOURCE_NODE_ID
.toString()),
String.class));
this.add(
DSL.field(
DSL.name(
AllMetrics.FaultDetectionDimension.TARGET_NODE_ID
.toString()),
String.class));
this.add(
DSL.field(
DSL.name(Fields.FAULT_DETECTION_TYPE.toString()),
String.class));
}
};
return create.select(fields).from(fetchLatencyTable()).groupBy(groupByFields).fetch();
}