in manager/manager/src/main/java/org/apache/doris/stack/service/manager/MonitoringQueryService.java [167:224]
public Object handleTimeSerialMonitor(HttpServletRequest request, HttpServletResponse response,
long start, long end, MonitorRequestBody bodyParameter,
String monitorTypeString) throws Exception {
MonitorType monitorType;
try {
monitorType = MonitorType.valueOf(monitorTypeString.toUpperCase());
} catch (Exception e) {
throw new IllegalArgumentException("No such monitor type: " + monitorTypeString);
}
ClusterInfoEntity clusterInfoEntity = checkAndHandleCluster(request, response);
String jobName = clusterInfoEntity.getPrometheusJobName();
if (Strings.isNullOrEmpty(queryUrl) || Strings.isNullOrEmpty(queryRangeUrl)) {
intPrometheusUrl();
}
long startSecond = start / 1000;
long endSecond = end / 1000;
int dataScale = bodyParameter.getPointNum() == 0 ? 100 : bodyParameter.getPointNum();
String step = calculateQueryStep(startSecond, endSecond, dataScale);
Map<String, String> params = Maps.newHashMap();
params.put(START, String.valueOf(startSecond));
params.put(END, String.valueOf(endSecond));
params.put(STEP, step);
params.put(TIMEOUT, "1m");
switch (monitorType) {
case QPS:
return qps(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
case QUERY_LATENCY:
if (Strings.isNullOrEmpty(bodyParameter.getQuantile())) {
throw new IllegalArgumentException("The parameter of quantile is required.");
}
return queryLatency(queryRangeUrl, params, bodyParameter.getNodes(), bodyParameter.getQuantile(), jobName);
case QUERY_ERR_RATE:
return queryErrRate(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
case CONN_TOTAL:
return connTotal(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
case TXN_STATUS:
return txnStatus(queryRangeUrl, params, jobName);
case SCHEDULED_TABLET_NUM:
return scheduledTabletNum(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
case BE_CPU_IDLE:
return beCpuIdle(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
case BE_MEM:
return beMem(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
case BE_DISK_IO:
return beDiskIO(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
case BE_BASE_COMPACTION_SCORE:
return beBaseCompactionScore(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
case BE_CUMU_COMPACTION_SCORE:
return beCumuCompactionScore(queryRangeUrl, params, bodyParameter.getNodes(), jobName);
default:
throw new RuntimeException("No such monitoring type is defined:" + monitorType);
}
}