From 331ebfabc2643321c3815a2e16ed4c5ddd75e28f Mon Sep 17 00:00:00 2001 From: "leon.li" Date: Thu, 17 Jul 2014 15:32:55 +0800 Subject: [PATCH] add contact info in metric dashboard page --- .../cat/build/ComponentsConfigurator.java | 6 +- .../page/metric/graph/MetricGraphCreator.java | 55 ++++++++++++++++--- .../resources/META-INF/plexus/components.xml | 6 ++ 3 files changed, 57 insertions(+), 10 deletions(-) diff --git a/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java b/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java index 3a9797ba4..e1ab2574d 100755 --- a/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java +++ b/cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java @@ -153,7 +153,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { all.add(C(MetricGraphCreator.class).req(CachedMetricReportService.class, DataExtractor.class, MetricDataFetcher.class).req(BaselineService.class, MetricConfigManager.class, - ProductLineConfigManager.class, MetricGroupConfigManager.class, AlertInfo.class)); + ProductLineConfigManager.class, MetricGroupConfigManager.class, AlertInfo.class, ProjectDao.class)); all.add(C(SystemGraphCreator.class).req(CachedMetricReportService.class, DataExtractor.class, MetricDataFetcher.class).req(BaselineService.class, MetricConfigManager.class, @@ -205,8 +205,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator { all.add(C(AlertExceptionBuilder.class).req(ExceptionConfigManager.class)); all.add(C(ExceptionAlert.class).req(ProjectDao.class, ExceptionAlertConfig.class, MailSMS.class, - ExceptionConfigManager.class, AlertExceptionBuilder.class, AlertDao.class).req( - ModelService.class, TopAnalyzer.ID)); + ExceptionConfigManager.class, AlertExceptionBuilder.class, AlertDao.class).req(ModelService.class, + TopAnalyzer.ID)); all.add(C(AlertSummaryExecutor.class).req(AlertSummaryGenerator.class, AlertSummaryManager.class, MailSMS.class) .req(AlertSummaryDecorator.class, AlertSummaryFTLDecorator.ID)); diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/metric/graph/MetricGraphCreator.java b/cat-home/src/main/java/com/dianping/cat/report/page/metric/graph/MetricGraphCreator.java index 8c2000926..8c2c46b24 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/metric/graph/MetricGraphCreator.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/metric/graph/MetricGraphCreator.java @@ -11,18 +11,59 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import org.unidal.lookup.annotation.Inject; + +import com.dianping.cat.Cat; import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig; import com.dianping.cat.consumer.company.model.entity.ProductLine; import com.dianping.cat.consumer.metric.model.entity.MetricReport; +import com.dianping.cat.core.dal.Project; +import com.dianping.cat.core.dal.ProjectDao; +import com.dianping.cat.core.dal.ProjectEntity; import com.dianping.cat.helper.Chinese; import com.dianping.cat.helper.TimeUtil; import com.dianping.cat.home.metric.group.entity.MetricKeyConfig; import com.dianping.cat.report.chart.AbstractGraphCreator; import com.dianping.cat.report.page.LineChart; import com.dianping.cat.report.task.alert.MetricType; +import com.site.lookup.util.StringUtils; public class MetricGraphCreator extends AbstractGraphCreator { + @Inject + private ProjectDao m_projectDao; + + protected String buildContactInfo(String domainName) { + try { + Project project = m_projectDao.findByDomain(domainName, ProjectEntity.READSET_FULL); + String owners = project.getOwner(); + String phones = project.getPhone(); + StringBuilder builder = new StringBuilder(); + + if (!StringUtils.isEmpty(owners)) { + builder.append("[负责人: ").append(owners); + } + if (!StringUtils.isEmpty(phones)) { + builder.append(" 手机: ").append(phones).append(" ]"); + } + + return builder.toString(); + } catch (Exception ex) { + Cat.logError("build contact info error for doamin: " + domainName, ex); + } + + return null; + } + + private String extractDomain(String metricKey) { + try { + return metricKey.split(":")[0]; + } catch (Exception ex) { + Cat.logError("extract domain error:" + metricKey, ex); + return null; + } + } + public Map buildChartData(final Map datas, Date startDate, Date endDate, final Map dataWithOutFutures) { Map charts = new LinkedHashMap(); @@ -31,10 +72,11 @@ public class MetricGraphCreator extends AbstractGraphCreator { for (Entry entry : dataWithOutFutures.entrySet()) { String key = entry.getKey(); + String contactInfo = buildContactInfo(extractDomain(key)); double[] value = entry.getValue(); LineChart lineChart = new LineChart(); - buildLineChartTitle(alertKeys, lineChart, key); + buildLineChartTitle(alertKeys, lineChart, key, contactInfo); lineChart.setStart(startDate); lineChart.setSize(value.length); lineChart.setStep(step * TimeUtil.ONE_MINUTE); @@ -57,7 +99,7 @@ public class MetricGraphCreator extends AbstractGraphCreator { Map dataWithOutFutures = removeFutureData(endDate, allCurrentValues); return buildChartData(oldCurrentValues, startDate, endDate, dataWithOutFutures); } - + private Map prepareAllData(String productLine, Date startDate, Date endDate) { long start = startDate.getTime(), end = endDate.getTime(); int totalSize = (int) ((end - start) / TimeUtil.ONE_MINUTE); @@ -72,7 +114,6 @@ public class MetricGraphCreator extends AbstractGraphCreator { } return oldCurrentValues; } - private Map queryMetricValueByDate(String productLine, long start) { MetricReport metricReport = m_metricReportService.queryMetricReport(productLine, new Date(start)); @@ -199,7 +240,7 @@ public class MetricGraphCreator extends AbstractGraphCreator { } return false; } - + private String queryMetricItemDes(String type) { String des = ""; @@ -213,7 +254,7 @@ public class MetricGraphCreator extends AbstractGraphCreator { return des; } - private void buildLineChartTitle(List alertKeys, LineChart chart, String key) { + private void buildLineChartTitle(List alertKeys, LineChart chart, String key, String contactInfo) { int index = key.lastIndexOf(":"); String metricId = key.substring(0, index); String type = key.substring(index + 1); @@ -226,9 +267,9 @@ public class MetricGraphCreator extends AbstractGraphCreator { chart.setId(metricId + ":" + type); if (alertKeys.contains(metricId)) { - chart.setHtmlTitle("" + title + ""); + chart.setHtmlTitle("" + title + "
" + contactInfo + "
"); } else { - chart.setHtmlTitle(title); + chart.setHtmlTitle(title + "
" + contactInfo + ""); } } } diff --git a/cat-home/src/main/resources/META-INF/plexus/components.xml b/cat-home/src/main/resources/META-INF/plexus/components.xml index 5311c078e..b3f29d19a 100755 --- a/cat-home/src/main/resources/META-INF/plexus/components.xml +++ b/cat-home/src/main/resources/META-INF/plexus/components.xml @@ -291,6 +291,9 @@ com.dianping.cat.report.task.alert.AlertInfo + + com.dianping.cat.core.dal.ProjectDao + @@ -3145,6 +3148,9 @@ com.dianping.cat.report.page.metric.graph.MetricGraphCreator com.dianping.cat.report.page.metric.graph.MetricGraphCreator + + com.dianping.cat.core.dal.ProjectDao + com.dianping.cat.report.baseline.BaselineService -- GitLab