From a215653af879cf7f43e17d62e2452c082717ce1d Mon Sep 17 00:00:00 2001 From: "yong.you" Date: Thu, 24 Oct 2013 12:55:31 +0800 Subject: [PATCH] modify the cat metric graph builder --- .../baseline/impl/DefaultBaselineService.java | 14 +++++++------- .../chart/impl/CachedMetricReportServiceImpl.java | 7 ++++--- .../metric/chart/impl/MetricDataFetcherImpl.java | 7 ++++--- .../page/model/metric/MetricReportMerger.java | 1 - 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/cat-home/src/main/java/com/dianping/cat/report/baseline/impl/DefaultBaselineService.java b/cat-home/src/main/java/com/dianping/cat/report/baseline/impl/DefaultBaselineService.java index e06085c66..8fcbe7a5d 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/baseline/impl/DefaultBaselineService.java +++ b/cat-home/src/main/java/com/dianping/cat/report/baseline/impl/DefaultBaselineService.java @@ -43,7 +43,8 @@ public class DefaultBaselineService implements BaselineService { if (baseline == null) { try { - baseline = m_baselineDao.findByReportNameKeyTime(reportPeriod, reportName, key, BaselineEntity.READSET_FULL); + baseline = m_baselineDao + .findByReportNameKeyTime(reportPeriod, reportName, key, BaselineEntity.READSET_FULL); m_baselineMap.put(baselineKey, baseline); } catch (DalNotFoundException e) { Cat.logEvent("BaselineNotFound", baselineKey); @@ -67,14 +68,13 @@ public class DefaultBaselineService implements BaselineService { double[] result = new double[60]; Date today = TaskHelper.todayZero(reportPeriod); int hour = (int) ((reportPeriod.getTime() - today.getTime()) / TimeUtil.ONE_HOUR); - double[] dayResult = queryDailyBaseline(reportName, key, today); - if (dayResult == null) - return null; - for (int i = 0; i < 60; i++) { - result[i] = dayResult[hour * 60 + i]; - } + if (dayResult != null) { + for (int i = 0; i < 60; i++) { + result[i] = dayResult[hour * 60 + i]; + } + } return result; } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/CachedMetricReportServiceImpl.java b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/CachedMetricReportServiceImpl.java index 129cccf6b..5e553ff90 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/CachedMetricReportServiceImpl.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/CachedMetricReportServiceImpl.java @@ -25,7 +25,7 @@ public class CachedMetricReportServiceImpl implements CachedMetricReportService @Inject private ModelService m_service; - private final Map m_metricReportMap = new LinkedHashMap() { + private final Map m_metricReports = new LinkedHashMap() { private static final long serialVersionUID = 1L; @@ -37,13 +37,13 @@ public class CachedMetricReportServiceImpl implements CachedMetricReportService private MetricReport getReportFromDB(String product, long date) { String key = product + date; - MetricReport result = m_metricReportMap.get(key); + MetricReport result = m_metricReports.get(key); if (result == null) { Date start = new Date(date); Date end = new Date(date + TimeUtil.ONE_HOUR); try { result = m_reportService.queryMetricReport(product, start, end); - m_metricReportMap.put(key, result); + m_metricReports.put(key, result); } catch (Exception e) { Cat.logError(e); } @@ -61,6 +61,7 @@ public class CachedMetricReportServiceImpl implements CachedMetricReportService if (m_service.isEligable(request)) { ModelResponse response = m_service.invoke(request); MetricReport report = response.getModel(); + return report; } else { throw new RuntimeException("Internal error: no eligable metric service registered for " + request + "!"); diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/MetricDataFetcherImpl.java b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/MetricDataFetcherImpl.java index 76ca78f16..78d981a64 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/MetricDataFetcherImpl.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/metric/chart/impl/MetricDataFetcherImpl.java @@ -51,12 +51,13 @@ public class MetricDataFetcherImpl implements MetricDataFetcher { return values; } - private void putKey(Map datas, Map values, String sumKey) { - double[] value = datas.get(sumKey); + private void putKey(Map datas, Map values, String key) { + double[] value = datas.get(key); + if(value ==null){ value = new double[60]; } - values.put(sumKey, value); + values.put(key, value); } public class MetricDataBuilder extends BaseVisitor { diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/MetricReportMerger.java b/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/MetricReportMerger.java index 977afab4b..861dd6fc9 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/MetricReportMerger.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/model/metric/MetricReportMerger.java @@ -10,7 +10,6 @@ public class MetricReportMerger extends DefaultMerger { public MetricReportMerger(MetricReport metricReport) { super(metricReport); - } @Override -- GitLab