summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangwei <[email protected]>2020-12-30 17:49:31 +0800
committerwangwei <[email protected]>2020-12-30 17:49:31 +0800
commit090a966c77183004c26abaa23c15bdc4efb56126 (patch)
tree576dc974959699e8aa06aa99f7d21de7017687b2
parentfeb19d34980ba458f6c796aa86ffc0d65fe727b3 (diff)
fix(同步代码):
1. 储存配额-最大存储配额 = 最大存储配额 * 70%、引入data_center概念 2. liveChart-修正序列缺损占比计算方式: loss/(loss+实收) 3. 内存数据库新增date_format函数、补全后limit无效bug
-rw-r--r--galaxy-business-api/src/main/java/com/mesalab/api/modules/network/service/impl/NetworkMonitorServiceImpl.java2
-rw-r--r--galaxy-query-engine/src/main/java/com/mesalab/calcite/InMemorySchemaFactory.java1
-rw-r--r--galaxy-query-engine/src/main/java/com/mesalab/calcite/function/DateFunction.java20
-rw-r--r--galaxy-query-engine/src/main/java/com/mesalab/qgw/model/api/udf/TIME_FLOOR_WITH_FILL.java4
-rw-r--r--galaxy-query-engine/src/main/java/com/mesalab/qgw/service/impl/SystemServiceImpl.java13
5 files changed, 30 insertions, 10 deletions
diff --git a/galaxy-business-api/src/main/java/com/mesalab/api/modules/network/service/impl/NetworkMonitorServiceImpl.java b/galaxy-business-api/src/main/java/com/mesalab/api/modules/network/service/impl/NetworkMonitorServiceImpl.java
index 6b15e09..a2529ea 100644
--- a/galaxy-business-api/src/main/java/com/mesalab/api/modules/network/service/impl/NetworkMonitorServiceImpl.java
+++ b/galaxy-business-api/src/main/java/com/mesalab/api/modules/network/service/impl/NetworkMonitorServiceImpl.java
@@ -93,7 +93,7 @@ public class NetworkMonitorServiceImpl implements NetworkMonitorService {
long oneSidedConnections = Long.parseLong(String.valueOf(data.get("one_sided_connections") == null ? 0 : data.get("one_sided_connections")));
double oneSidedPercent = summaryTotalSessions == 0 ? 0 : oneSidedConnections * 1.0 / summaryTotalSessions;
long sequenceGapLossBytes = Long.parseLong(String.valueOf(data.get("sequence_gap_loss_bytes") == null ? 0 : data.get("sequence_gap_loss_bytes")));
- double sequenceGapLossBytesPercent = summaryTotalBytes == 0 ? 0 : sequenceGapLossBytes * 1.0 / summaryTotalBytes;
+ double sequenceGapLossBytesPercent = sequenceGapLossBytes == 0 ? 0 : sequenceGapLossBytes * 1.0 / (summaryTotalBytes + sequenceGapLossBytes);
long fragmentationPackets = Long.parseLong(String.valueOf(data.get("fragmentation_packets") == null ? 0 : data.get("fragmentation_packets")));
double fragmentationPacketsPercent = summaryTotalPackets == 0 ? 0 : fragmentationPackets * 1.0 / summaryTotalPackets;
diff --git a/galaxy-query-engine/src/main/java/com/mesalab/calcite/InMemorySchemaFactory.java b/galaxy-query-engine/src/main/java/com/mesalab/calcite/InMemorySchemaFactory.java
index a3a9dea..eecd7fe 100644
--- a/galaxy-query-engine/src/main/java/com/mesalab/calcite/InMemorySchemaFactory.java
+++ b/galaxy-query-engine/src/main/java/com/mesalab/calcite/InMemorySchemaFactory.java
@@ -14,6 +14,7 @@ public class InMemorySchemaFactory implements SchemaFactory {
@Override
public Schema create(SchemaPlus parentSchema, String name, Map<String, Object> operand) {
parentSchema.add("FROM_UNIXTIME", ScalarFunctionImpl.create(DateFunction.class, "fromUnixTimeToDateTime24"));
+ parentSchema.add("DATE_FORMAT", ScalarFunctionImpl.create(DateFunction.class, "dateFormat"));
return new InMemorySchema(name, operand);
}
}
diff --git a/galaxy-query-engine/src/main/java/com/mesalab/calcite/function/DateFunction.java b/galaxy-query-engine/src/main/java/com/mesalab/calcite/function/DateFunction.java
index 221c4f4..af70127 100644
--- a/galaxy-query-engine/src/main/java/com/mesalab/calcite/function/DateFunction.java
+++ b/galaxy-query-engine/src/main/java/com/mesalab/calcite/function/DateFunction.java
@@ -1,12 +1,26 @@
package com.mesalab.calcite.function;
import com.mesalab.tool.utils.DateUtils;
+import com.google.common.collect.Maps;
+
+import java.util.Map;
public class DateFunction {
+ private static Map<String, String> formatMapping = Maps.newHashMap();
+
+ static {
+ formatMapping.put("%Y-%m-%d %H:%i:%s", DateUtils.YYYY_MM_DD_HH24_MM_SS);
+ formatMapping.put("%Y-%m-%d", DateUtils.YYYY_MM_DD);
+ }
+
public String fromUnixTimeToDateTime24(Object i) {
- Long aLong = Long.valueOf(String.valueOf(i));
- String s = DateUtils.convertTimestampToString(aLong, DateUtils.YYYY_MM_DD_HH24_MM_SS);
- return s;
+ Long timestamp = Long.valueOf(String.valueOf(i));
+ return DateUtils.convertTimestampToString(timestamp, DateUtils.YYYY_MM_DD_HH24_MM_SS);
+ }
+
+ public String dateFormat(String date, String format) {
+ long timestamp = DateUtils.convertStringToTimestamp(date, DateUtils.YYYY_MM_DD_HH24_MM_SS);
+ return DateUtils.convertTimestampToString(timestamp, formatMapping.get(format));
}
}
diff --git a/galaxy-query-engine/src/main/java/com/mesalab/qgw/model/api/udf/TIME_FLOOR_WITH_FILL.java b/galaxy-query-engine/src/main/java/com/mesalab/qgw/model/api/udf/TIME_FLOOR_WITH_FILL.java
index c20caed..0b079e1 100644
--- a/galaxy-query-engine/src/main/java/com/mesalab/qgw/model/api/udf/TIME_FLOOR_WITH_FILL.java
+++ b/galaxy-query-engine/src/main/java/com/mesalab/qgw/model/api/udf/TIME_FLOOR_WITH_FILL.java
@@ -145,7 +145,9 @@ public class TIME_FLOOR_WITH_FILL implements UDF{
}
targetResult = ConvertUtil.convertTimeseriesToList(targetTimeseriesMap, groupLabel, timeGranLabel);
-
+ if (targetResult.size() > Integer.parseInt(sqlQuerySource.getLimit())) {
+ targetResult = targetResult.subList(0, Integer.parseInt(sqlQuerySource.getLimit()));
+ }
} catch (Exception e) {
log.error("Parser function : TIME_FLOOR_WITH_FILL error : " + e);
}
diff --git a/galaxy-query-engine/src/main/java/com/mesalab/qgw/service/impl/SystemServiceImpl.java b/galaxy-query-engine/src/main/java/com/mesalab/qgw/service/impl/SystemServiceImpl.java
index 4c85787..9dfabcd 100644
--- a/galaxy-query-engine/src/main/java/com/mesalab/qgw/service/impl/SystemServiceImpl.java
+++ b/galaxy-query-engine/src/main/java/com/mesalab/qgw/service/impl/SystemServiceImpl.java
@@ -54,11 +54,14 @@ public class SystemServiceImpl implements SystemService {
//封装sql进行查询:Analytic Logs、Files、Traffic Logs
ApiParam param = new ApiParam();
- param.setQuery("(select log_type, used_size, max_size, TIME_FORMAT(MILLIS_TO_TIMESTAMP(1000 * last_storage),'YYYY-MM-dd') as first_storage from sys_storage_log where log_type = 'Report and Metrics' ORDER BY __time desc limit 1)\n" +
- "UNION ALL\n" +
- "(select log_type, used_size, max_size, TIME_FORMAT(MILLIS_TO_TIMESTAMP(1000 * last_storage),'YYYY-MM-dd') as first_storage from sys_storage_log where log_type = 'Files' ORDER BY __time desc limit 1)\n" +
- "UNION ALL\n" +
- "(select log_type, used_size, max_size,TIME_FORMAT(MILLIS_TO_TIMESTAMP(1000 * last_storage),'YYYY-MM-dd') as first_storage from sys_storage_log where log_type = 'Traffic Logs' ORDER BY __time desc limit 1)");
+ param.setQuery("SELECT log_type, SUM(used_size) as used_size, SUM(max_size) * 7/10 as max_size, TIME_FORMAT(LATEST(last_storage) * 1000,'YYYY-MM-dd') as first_storage \n" +
+ "FROM ( \n" +
+ " SELECT log_type, LATEST(used_size) as used_size, LATEST(max_size) as max_size, LATEST(last_storage) as last_storage\n" +
+ " FROM sys_storage_log\n" +
+ " WHERE __time >= CURRENT_TIMESTAMP - INTERVAL '1' HOUR AND data_center != '' \n" +
+ " GROUP BY data_center,log_type\n" +
+ ")\n" +
+ "GROUP BY log_type");
BaseResult result = apiService.executeQuery(param);
return result;
}