diff --git a/cat-consumer/src/main/java/com/dianping/cat/consumer/RealtimeConsumer.java b/cat-consumer/src/main/java/com/dianping/cat/consumer/RealtimeConsumer.java index 259b7d92ea6e1196d20ddbed6c552b8a31243645..e0f41ce83df05f7346b04fe72af17e3b83fbc380 100644 --- a/cat-consumer/src/main/java/com/dianping/cat/consumer/RealtimeConsumer.java +++ b/cat-consumer/src/main/java/com/dianping/cat/consumer/RealtimeConsumer.java @@ -5,6 +5,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; @@ -173,7 +174,7 @@ public class RealtimeConsumer extends ContainerHolder implements MessageConsumer m_endTime = endTime; m_tasks = new ArrayList(names.size()); - Map analyzers = new HashMap(); + Map analyzers = new LinkedHashMap(); for (String name : names) { MessageAnalyzer analyzer = m_analyzerManager.getAnalyzer(name, startTime); diff --git a/cat-core/src/main/java/com/dianping/cat/analysis/DefaultMessageAnalyzerManager.java b/cat-core/src/main/java/com/dianping/cat/analysis/DefaultMessageAnalyzerManager.java index 0e057c0689f4f1c7d1151ef8563932e26899d5ed..460622fd2b74cdaad4f932318bd169e19a744122 100644 --- a/cat-core/src/main/java/com/dianping/cat/analysis/DefaultMessageAnalyzerManager.java +++ b/cat-core/src/main/java/com/dianping/cat/analysis/DefaultMessageAnalyzerManager.java @@ -1,6 +1,8 @@ package com.dianping.cat.analysis; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -81,5 +83,17 @@ public class DefaultMessageAnalyzerManager extends ContainerHolder implements Me } m_analyzerNames = new ArrayList(map.keySet()); + + Collections.sort(m_analyzerNames, new Comparator() { + @Override + public int compare(String o1, String o2) { + if ("state".equals(o1)) { + return 1; + } else if ("state".equals(o2)) { + return -1; + } + return o1.compareTo(o2); + } + }); } }