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