Bladeren bron

test: fortest

wanghongkai 5 jaren geleden
bovenliggende
commit
c1e2edbda8

+ 3 - 2
src/main/java/cn/seecoder/paas/service/impl/MetricsServiceImpl.java

@@ -11,6 +11,7 @@ import cn.seecoder.paas.service.facade.k8s.model.Pod;
 import cn.seecoder.paas.service.model.converter.MetricsConverter;
 import cn.seecoder.paas.service.model.vo.MetricsVO;
 import cn.seecoder.paas.util.ApplicationProperties;
+import cn.seecoder.paas.util.DateUtil;
 import cn.seecoder.paas.util.enums.MetricsSource;
 import cn.seecoder.paas.util.enums.MetricsType;
 import cn.seecoder.paas.util.enums.ResourceLabel;
@@ -124,7 +125,7 @@ public class MetricsServiceImpl implements MetricsService {
             vo.setMetricsSourceValue(metricsSourceValue);
             vo.setMetricsType(entry.getKey());
             vo.setMetricsTypeValue(Long.toString(entry.getValue()));
-            vo.setMetricsTime(podMetricsList.size() == 1 ? LocalDateTime.parse(podMetricsList.get(0).getTimestamp()) : LocalDateTime.now());
+            vo.setMetricsTime(podMetricsList.size() == 1 ? DateUtil.fromUTCTimeString(podMetricsList.get(0).getTimestamp()) : LocalDateTime.now());
             return vo;
 
         }).collect(Collectors.toList());
@@ -162,7 +163,7 @@ public class MetricsServiceImpl implements MetricsService {
             vo.setMetricsSourceValue(metricsSourceValue);
             vo.setMetricsType(entry.getKey());
             vo.setMetricsTypeValue(Long.toString(entry.getValue()));
-            vo.setMetricsTime(nodeMetricsList.size() == 1 ? LocalDateTime.parse(nodeMetricsList.get(0).getTimestamp()) : LocalDateTime.now());
+            vo.setMetricsTime(nodeMetricsList.size() == 1 ? DateUtil.fromUTCTimeString(nodeMetricsList.get(0).getTimestamp()) : LocalDateTime.now());
             return vo;
 
         }).collect(Collectors.toList());

+ 16 - 0
src/main/java/cn/seecoder/paas/util/DateUtil.java

@@ -1,8 +1,11 @@
 package cn.seecoder.paas.util;
 
+import org.apache.commons.lang.StringUtils;
 import org.joda.time.DateTime;
 
+import java.time.Instant;
 import java.time.LocalDateTime;
+import java.time.ZoneId;
 
 public class DateUtil {
 
@@ -15,4 +18,17 @@ public class DateUtil {
                 dateTime.getMinuteOfHour(),
                 dateTime.getSecondOfMinute());
     }
+
+    public static LocalDateTime fromUTCTimeString(String utc) {
+        if (StringUtils.isBlank(utc)) {
+            return null;
+        }
+        Instant instant = Instant.parse(utc);
+        //转成上海时区时间。
+        return LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
+    }
+
+    public static LocalDateTime fromTimestamps(long timestamps) {
+        return LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamps), ZoneId.systemDefault());
+    }
 }

+ 2 - 1
src/main/java/cn/seecoder/paas/web/controller/api/MetricsController.java

@@ -1,6 +1,7 @@
 package cn.seecoder.paas.web.controller.api;
 
 import cn.seecoder.paas.service.MetricsService;
+import cn.seecoder.paas.util.DateUtil;
 import cn.seecoder.paas.util.ServiceException;
 import cn.seecoder.paas.util.enums.MetricsSource;
 import cn.seecoder.paas.util.enums.MetricsType;
@@ -31,6 +32,6 @@ public class MetricsController {
     public Response getBetweenTime(@RequestParam String metricsSource, @RequestParam String metricsSourceValue, @RequestParam String metricsType, @RequestParam String startTime, @RequestParam String endTime) throws ServiceException {
         MetricsSource ms = MetricsSource.getByCode(metricsSource);
         MetricsType mt = MetricsType.getByCode(metricsType);
-        return Response.buildSuccess(metricsService.getMetricsBySourceAndTypeBetween(ms, metricsSourceValue, mt, LocalDateTime.parse(startTime), LocalDateTime.parse(endTime)));
+        return Response.buildSuccess(metricsService.getMetricsBySourceAndTypeBetween(ms, metricsSourceValue, mt, DateUtil.fromTimestamps(Long.parseLong(startTime)), DateUtil.fromTimestamps(Long.parseLong(endTime))));
     }
 }