public MetricsDataForDiagramVO getMetricDataByMetricId()

in backend/src/main/java/org/apache/iotdb/admin/service/impl/IotDBServiceImpl.java [2684:2755]


  public MetricsDataForDiagramVO getMetricDataByMetricId(Connection connection, Integer metricId)
      throws BaseException {
    SessionPool sessionPool = getSessionPool(connection);
    SessionDataSetWrapper sessionDataSetWrapper = null;
    String url = connection.getHost();
    Integer port = 0;
    // TODO: 【清华】端口8086实际上是动态的从connection表中获取,但iotdb-0.13.0存在bug,导致写入的指标位置不对,等待修复,先暂时写死
    String show_version = executeQueryOneValue(sessionPool, "show version");
    if (show_version.contains("0.13") || show_version.contains("0.14")) {
      port = 8086;
    } else if (show_version.contains("0.12")) {
      port = 6667;
      url = "0.0.0.0";
    }
    // TODO: 指标先写死,后面根据指标Id判断用哪个timeSeries拼串为SQL查得值。
    MetricsChartDataVO metricsChartDataVO = null;
    MetricsDataForDiagramVO metricsDataForDiagramVO = new MetricsDataForDiagramVO();
    switch (metricId) {
      case 0:
        metricsChartDataVO = getJVMGCDiagramData(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 1:
        metricsChartDataVO = getJVMLoadDiagramData(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 2:
        metricsChartDataVO = getYGCTimeAndReason(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 3:
        metricsChartDataVO = getFGCTimeAndReason(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 4:
        metricsChartDataVO = getVariableThreadCount(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 5:
        metricsChartDataVO =
            getVariableTimeThreadCount(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 6:
        metricsChartDataVO = getMemUsedSize(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 7:
        metricsChartDataVO = getBufferSize(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 8:
        metricsChartDataVO = getCPUTime(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 9:
        metricsChartDataVO = getDiskIO(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 10:
        metricsChartDataVO = getFileCount(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 11:
        metricsChartDataVO = getFileSize(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 12:
        metricsChartDataVO = getWriteCount(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 13:
        metricsChartDataVO = getQueryCount(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 14:
        metricsChartDataVO = getInterfaceCount(sessionPool, sessionDataSetWrapper, url, port);
        break;
      case 15:
        metricsChartDataVO = getInterfaceTime(sessionPool, sessionDataSetWrapper, url, port);
        break;
    }
    metricsDataForDiagramVO.setChartData(metricsChartDataVO);
    metricsDataForDiagramVO.setMetricId(metricId);
    return metricsDataForDiagramVO;
  }