From 716651954fda216c90db5493a80bcc8ba5fd3ed9 Mon Sep 17 00:00:00 2001 From: youyong Date: Sat, 5 Jan 2013 15:10:10 +0800 Subject: [PATCH] modify the cat log issue and DalException --- .../cat/consumer/dump/DumpAnalyzer.java | 6 +++--- cat-core/pom.xml | 2 +- .../java/com/dianping/cat/CatCoreModule.java | 14 +++++++------- .../cat/configuration/ClientConfigReloader.java | 17 +++++++---------- .../storage/dump/LocalMessageBucketManager.java | 14 ++++++++++++-- .../cat/report/page/event/HistoryGraphs.java | 9 +++------ .../cat/report/page/health/HistoryGraphs.java | 3 ++- .../cat/report/page/logview/Handler.java | 13 ++++++++++--- .../cat/report/page/problem/HistoryGraphs.java | 9 +++------ .../report/page/transaction/HistoryGraphs.java | 3 +++ .../cat/report/task/spi/ReportFacade.java | 8 +++++--- .../transaction/TransactionGraphCreator.java | 2 +- .../cat/system/alarm/AlarmRuleCreator.java | 1 - 13 files changed, 57 insertions(+), 44 deletions(-) diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java index 932220f2a..401ddd44b 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/dump/DumpAnalyzer.java @@ -115,9 +115,9 @@ public class DumpAnalyzer extends AbstractMessageAnalyzer implements Ini if (duration == 0 || duration == HOUR || duration == -HOUR) { m_bucketManager.storeMessage(tree, id); } else { - m_logger.error("error timestamp,meesageId:" + tree.getMessageId() + ",id parse time " - + m_sdf.format(new Date(idTime)) + " " + id.getIpAddress() + " ,message tree timestamp:" - + m_sdf.format(new Date(time)) + " " + tree.getIpAddress() + " duration hours:" + duration); + m_logger.error("timestamp:" + tree.getMessageId() + ",id timestamp " + m_sdf.format(new Date(idTime)) + + " " + id.getIpAddress() + " ,tree timestamp:" + m_sdf.format(new Date(time)) + " " + + tree.getIpAddress() + " duration:" + duration); } } catch (IOException e) { m_logger.error("Error when dumping to local file system, version 2!", e); diff --git a/cat-core/pom.xml b/cat-core/pom.xml index 22d4aeb47..a165fc2f4 100644 --- a/cat-core/pom.xml +++ b/cat-core/pom.xml @@ -13,7 +13,7 @@ org.unidal.framework foundation-service - 2.0.0 + 2.0.1 org.jboss.netty diff --git a/cat-core/src/main/java/com/dianping/cat/CatCoreModule.java b/cat-core/src/main/java/com/dianping/cat/CatCoreModule.java index 2d710a3c7..68e960bb8 100644 --- a/cat-core/src/main/java/com/dianping/cat/CatCoreModule.java +++ b/cat-core/src/main/java/com/dianping/cat/CatCoreModule.java @@ -6,6 +6,12 @@ import java.util.concurrent.locks.LockSupport; import org.jboss.netty.util.ThreadNameDeterminer; import org.jboss.netty.util.ThreadRenamingRunnable; +import org.unidal.helper.Threads; +import org.unidal.helper.Threads.AbstractThreadListener; +import org.unidal.initialization.AbstractModule; +import org.unidal.initialization.DefaultModuleContext; +import org.unidal.initialization.Module; +import org.unidal.initialization.ModuleContext; import com.dianping.cat.configuration.ClientConfigManager; import com.dianping.cat.configuration.ClientConfigReloader; @@ -13,12 +19,6 @@ import com.dianping.cat.configuration.client.entity.ClientConfig; import com.dianping.cat.message.internal.MilliSecondTimer; import com.dianping.cat.message.io.TransportManager; import com.dianping.cat.status.StatusUpdateTask; -import org.unidal.helper.Threads; -import org.unidal.helper.Threads.DefaultThreadListener; -import org.unidal.initialization.AbstractModule; -import org.unidal.initialization.DefaultModuleContext; -import org.unidal.initialization.Module; -import org.unidal.initialization.ModuleContext; public class CatCoreModule extends AbstractModule { public static final String ID = "cat-core"; @@ -67,7 +67,7 @@ public class CatCoreModule extends AbstractModule { return null; // no dependencies } - public final class CatThreadListener extends DefaultThreadListener { + public final class CatThreadListener extends AbstractThreadListener { private final ModuleContext m_ctx; private CatThreadListener(ModuleContext ctx) { diff --git a/cat-core/src/main/java/com/dianping/cat/configuration/ClientConfigReloader.java b/cat-core/src/main/java/com/dianping/cat/configuration/ClientConfigReloader.java index 38e6f148c..845a63e42 100644 --- a/cat-core/src/main/java/com/dianping/cat/configuration/ClientConfigReloader.java +++ b/cat-core/src/main/java/com/dianping/cat/configuration/ClientConfigReloader.java @@ -5,16 +5,17 @@ import java.io.IOException; import java.io.InputStream; import java.util.Map; +import org.codehaus.plexus.logging.Logger; +import org.unidal.helper.Files; +import org.unidal.helper.Threads.Task; +import org.unidal.lookup.logger.LoggerFactory; import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; import com.dianping.cat.Cat; import com.dianping.cat.configuration.client.entity.ClientConfig; import com.dianping.cat.configuration.client.entity.Domain; import com.dianping.cat.configuration.client.transform.DefaultDomParser; import com.dianping.cat.message.Message; -import org.unidal.helper.Files; -import org.unidal.helper.Threads.Task; public class ClientConfigReloader implements Task { private static final String CAT_CLIENT_XML = "/META-INF/cat/client.xml"; @@ -29,6 +30,8 @@ public class ClientConfigReloader implements Task { private volatile boolean m_active = true; + private Logger m_logger = LoggerFactory.getLogger(ClientConfigReloader.class); + public ClientConfigReloader(String fileName, ClientConfig config) { m_config = config; m_parser = new DefaultDomParser(); @@ -101,14 +104,8 @@ public class ClientConfigReloader implements Task { } } } - } catch (IOException e) { - Cat.getProducer().logEvent("System", "ReloadIOException", "IOException", null); - } catch (SAXParseException e) { - Cat.getProducer().logEvent("System", "ReloadSAXException", "SAXException", null); - } catch (RuntimeException e) { - Cat.getProducer().logEvent("System", "ReloadException", "RuntimeException", null); } catch (Exception e) { - Cat.logError(e); + m_logger.error("Error when reloading client xml!", e); } Thread.sleep(2000L); } catch (InterruptedException e) { diff --git a/cat-core/src/main/java/com/dianping/cat/storage/dump/LocalMessageBucketManager.java b/cat-core/src/main/java/com/dianping/cat/storage/dump/LocalMessageBucketManager.java index f1cab8815..d72f98f4a 100644 --- a/cat-core/src/main/java/com/dianping/cat/storage/dump/LocalMessageBucketManager.java +++ b/cat-core/src/main/java/com/dianping/cat/storage/dump/LocalMessageBucketManager.java @@ -262,7 +262,7 @@ public class LocalMessageBucketManager extends ContainerHolder implements Messag for (String path : paths) { File file = new File(m_baseDir, path); - String loginfo = "path:" + m_baseDir + path + ",file size: " + file.length(); + String loginfo = "path:" + m_baseDir + "/" + path + ",file size: " + file.length(); LocalMessageBucket bucket = m_buckets.get(path); if (bucket != null) { @@ -291,6 +291,12 @@ public class LocalMessageBucketManager extends ContainerHolder implements Messag m_logger.error(e.getMessage(), e); } } + + try { + Thread.sleep(100); + } catch (InterruptedException e) { + break; + } } t.complete(); } @@ -385,7 +391,11 @@ public class LocalMessageBucketManager extends ContainerHolder implements Messag if (message instanceof Transaction) { long delay = System.currentTimeMillis() - tree.getMessage().getTimestamp() - ((Transaction) message).getDurationInMillis(); - m_serverStateManager.addProcessDelay(delay); + int fiveMinute = 1000 * 60 * 5; + + if (delay < fiveMinute && delay > -fiveMinute) { + m_serverStateManager.addProcessDelay(delay); + } } if (m_total % (CatConstants.SUCCESS_COUNT * 1000) == 0) { m_logger.info("dump message number: " + m_total + " size:" + m_totalSize * 1.0 / 1024 / 1024 / 1024 + "GB"); diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/event/HistoryGraphs.java b/cat-home/src/main/java/com/dianping/cat/report/page/event/HistoryGraphs.java index 425b1dd95..86622e1b1 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/event/HistoryGraphs.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/event/HistoryGraphs.java @@ -14,6 +14,8 @@ import com.dianping.cat.home.dal.report.GraphEntity; import com.dianping.cat.report.page.HistoryGraphItem; import com.dianping.cat.report.page.event.Handler.DetailOrder; import com.dianping.cat.report.page.event.Handler.SummaryOrder; + +import org.unidal.dal.jdbc.DalNotFoundException; import org.unidal.lookup.annotation.Inject; import org.unidal.lookup.util.StringUtils; @@ -116,16 +118,11 @@ public class HistoryGraphs { Graph graph = m_graphDao.findSingalByDomainNameIpDuration(new Date(startLong), queryIP, domain, "event", GraphEntity.READSET_FULL); events.add(graph); + } catch (DalNotFoundException e) { } catch (Exception e) { Cat.logError(e); } } - // try { - // events = this.m_graphDao.findByDomainNameIpDuration(start, end, queryIP, domain, "event", - // GraphEntity.READSET_FULL); - // } catch (Exception e) { - // Cat.logError(e); - // } Map result = buildGraphDatas(start, end, type, name, events); return result; } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/health/HistoryGraphs.java b/cat-home/src/main/java/com/dianping/cat/report/page/health/HistoryGraphs.java index 57401b5e2..e0af8b113 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/health/HistoryGraphs.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/health/HistoryGraphs.java @@ -18,8 +18,9 @@ public class HistoryGraphs { public HistoryGraphItem buildHistoryGraph(String domain, Date start, Date end, String reportType, String key) { if (reportType.equalsIgnoreCase("day")) { return getDateFromHourlyReport(domain, start, end, key); + } else { + return getDateFromDailyReport(domain, start, end, key); } - return getDateFromDailyReport(domain, start, end, key); } private HistoryGraphItem getDateFromDailyReport(String domain, Date start, Date end, String key) { diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/logview/Handler.java b/cat-home/src/main/java/com/dianping/cat/report/page/logview/Handler.java index 45f9bb17d..79c3f0ceb 100755 --- a/cat-home/src/main/java/com/dianping/cat/report/page/logview/Handler.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/logview/Handler.java @@ -6,6 +6,7 @@ import java.util.Date; import javax.servlet.ServletException; import com.dianping.cat.Cat; +import com.dianping.cat.message.Event; import com.dianping.cat.message.internal.MessageId; import com.dianping.cat.message.spi.MessagePathBuilder; import com.dianping.cat.report.ReportPage; @@ -86,6 +87,12 @@ public class Handler implements PageHandler { String messageId = getMessageId(payload); String logView = getLogView(messageId, payload.isWaterfall()); + if (logView == null || logView.length() == 0) { + Cat.getProducer().logEvent("Logview", "Success", Event.SUCCESS, null); + } else { + Cat.getProducer().logEvent("Logview", "Fail", Event.SUCCESS, null); + } + switch (payload.getAction()) { case VIEW: model.setTable(logView); @@ -109,7 +116,7 @@ public class Handler implements PageHandler { sb.append('/').append(path); final String key = id.getDomain() + '-' + id.getIpAddress(); - return path+key; - } - + return path + key; + } + } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/problem/HistoryGraphs.java b/cat-home/src/main/java/com/dianping/cat/report/page/problem/HistoryGraphs.java index d2d4962ba..52ab5e7f3 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/problem/HistoryGraphs.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/problem/HistoryGraphs.java @@ -14,6 +14,8 @@ import com.dianping.cat.home.dal.report.GraphEntity; import com.dianping.cat.report.page.HistoryGraphItem; import com.dianping.cat.report.page.problem.Handler.DetailOrder; import com.dianping.cat.report.page.problem.Handler.SummaryOrder; + +import org.unidal.dal.jdbc.DalNotFoundException; import org.unidal.lookup.annotation.Inject; import org.unidal.lookup.util.StringUtils; @@ -111,16 +113,11 @@ public class HistoryGraphs { Graph graph = m_graphDao.findSingalByDomainNameIpDuration(new Date(startLong), queryIP, domain, "problem", GraphEntity.READSET_FULL); graphs.add(graph); + } catch (DalNotFoundException e) { } catch (Exception e) { Cat.logError(e); } } - // try { - // graphs = m_graphDao.findByDomainNameIpDuration(start, end, queryIP, domain, "problem", - // GraphEntity.READSET_FULL); - // } catch (DalException e) { - // Cat.logError(e); - // } Map result = buildGraphDatas(start, end, type, status, graphs); return result; } diff --git a/cat-home/src/main/java/com/dianping/cat/report/page/transaction/HistoryGraphs.java b/cat-home/src/main/java/com/dianping/cat/report/page/transaction/HistoryGraphs.java index 5be8e1431..d55970752 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/page/transaction/HistoryGraphs.java +++ b/cat-home/src/main/java/com/dianping/cat/report/page/transaction/HistoryGraphs.java @@ -14,6 +14,8 @@ import com.dianping.cat.home.dal.report.GraphEntity; import com.dianping.cat.report.page.HistoryGraphItem; import com.dianping.cat.report.page.transaction.Handler.DetailOrder; import com.dianping.cat.report.page.transaction.Handler.SummaryOrder; + +import org.unidal.dal.jdbc.DalNotFoundException; import org.unidal.lookup.annotation.Inject; import org.unidal.lookup.util.StringUtils; @@ -138,6 +140,7 @@ public class HistoryGraphs { Graph graph = m_graphDao.findSingalByDomainNameIpDuration(new Date(startLong), queryIp, domain, "transaction", GraphEntity.READSET_FULL); graphs.add(graph); + } catch (DalNotFoundException e) { } catch (Exception e) { Cat.logError(e); } diff --git a/cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java b/cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java index 42f3d8f68..01c1848dc 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java +++ b/cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java @@ -104,9 +104,9 @@ public class ReportFacade implements LogEnabled, Initializable { } } } catch (Exception e) { - System.out.println("hack for log"); + System.err.println("Flowing is error stack trace:"); e.printStackTrace(); - m_logger.error(e.getMessage(), e); + m_logger.error("Error when building report," + e.getMessage(), e); Cat.logError(e); return false; } @@ -160,7 +160,9 @@ public class ReportFacade implements LogEnabled, Initializable { } return update; } catch (Exception e) { - m_logger.error(e.getMessage(), e); + System.err.println("Flowing is error stack trace in redo:"); + e.printStackTrace(); + m_logger.error("Error when redo task " + taskID + " " + e.getMessage(), e); Cat.logError(e); return false; } diff --git a/cat-home/src/main/java/com/dianping/cat/report/task/transaction/TransactionGraphCreator.java b/cat-home/src/main/java/com/dianping/cat/report/task/transaction/TransactionGraphCreator.java index 0f090a0a9..f38846c4e 100644 --- a/cat-home/src/main/java/com/dianping/cat/report/task/transaction/TransactionGraphCreator.java +++ b/cat-home/src/main/java/com/dianping/cat/report/task/transaction/TransactionGraphCreator.java @@ -113,7 +113,7 @@ public class TransactionGraphCreator implements GraphCreator graph.setPeriod(reportPeriod); graph.setType(3); graph.setCreationDate(creationDate); - Machine machine = report.getMachines().get(ip); + Machine machine = report.findOrCreateMachine(ip); Map types = machine.getTypes(); StringBuilder detailBuilder = new StringBuilder(); StringBuilder summaryBuilder = new StringBuilder(); diff --git a/cat-home/src/main/java/com/dianping/cat/system/alarm/AlarmRuleCreator.java b/cat-home/src/main/java/com/dianping/cat/system/alarm/AlarmRuleCreator.java index a6b3fd6a8..08ce5bac1 100644 --- a/cat-home/src/main/java/com/dianping/cat/system/alarm/AlarmRuleCreator.java +++ b/cat-home/src/main/java/com/dianping/cat/system/alarm/AlarmRuleCreator.java @@ -162,7 +162,6 @@ public class AlarmRuleCreator implements Task { } t.complete(); } - } catch (Exception e) { Cat.logError(e); } -- GitLab