diff options
| author | wangwei <[email protected]> | 2020-12-30 17:49:31 +0800 |
|---|---|---|
| committer | wangwei <[email protected]> | 2020-12-30 17:49:31 +0800 |
| commit | 090a966c77183004c26abaa23c15bdc4efb56126 (patch) | |
| tree | 576dc974959699e8aa06aa99f7d21de7017687b2 | |
| parent | feb19d34980ba458f6c796aa86ffc0d65fe727b3 (diff) | |
fix(同步代码):
1. 储存配额-最大存储配额 = 最大存储配额 * 70%、引入data_center概念
2. liveChart-修正序列缺损占比计算方式: loss/(loss+实收)
3. 内存数据库新增date_format函数、补全后limit无效bug
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; } |
