public Object handleTimeSerialMonitor()

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);
        }
    }