提交 19db2113 编写于 作者: Y youyong205

modify the handler

上级 974b72d3
......@@ -18,7 +18,7 @@ import com.dianping.cat.Cat;
import com.dianping.cat.CatConstants;
import com.dianping.cat.Monitor;
import com.dianping.cat.broker.api.page.IpService.IpInfo;
import com.dianping.cat.config.UrlPatternConfigManager;
import com.dianping.cat.config.url.UrlPatternConfigManager;
import com.dianping.cat.message.Metric;
import com.dianping.cat.message.Transaction;
import com.dianping.cat.message.internal.DefaultMetric;
......
......@@ -5,10 +5,6 @@ public enum Action implements org.unidal.web.mvc.Action {
private String m_name;
private Action(String name) {
m_name = name;
}
public static Action getByName(String name, Action defaultAction) {
for (Action action : Action.values()) {
if (action.getName().equals(name)) {
......@@ -19,6 +15,10 @@ public enum Action implements org.unidal.web.mvc.Action {
return defaultAction;
}
private Action(String name) {
m_name = name;
}
@Override
public String getName() {
return m_name;
......
......@@ -77,7 +77,13 @@ public class Handler implements PageHandler<Context> {
}
private String parseFile(String file) {
return m_manager.handle(AggregationConfigManager.PROBLEM_TYPE, Constants.FRONT_END, file);
String result = m_manager.handle(AggregationConfigManager.PROBLEM_TYPE, Constants.FRONT_END, file);
if (result.equals(file)) {
return subUrl(file);
} else {
return result;
}
}
private String parseHost() {
......@@ -150,4 +156,19 @@ public class Handler implements PageHandler<Context> {
return null;
}
private String subUrl(String url) {
String[] str = url.split("\\/");
StringBuilder sb = new StringBuilder();
if (str.length > 4) {
for (int i = 0; i <= 4; i++) {
sb.append(str[i]).append("/");
}
return sb.toString();
} else {
return url;
}
}
}
\ No newline at end of file
......@@ -26,63 +26,66 @@ public class Payload implements ActionPayload<ApiPage, Action> {
@FieldMeta("data")
private String m_data;
public long getTimestamp() {
return m_timestamp;
@FieldMeta("v")
private String m_version;
@Override
public Action getAction() {
return m_action;
}
public void setTimestamp(long timestamp) {
m_timestamp = timestamp;
public String getData() {
return m_data;
}
public String getError() {
return m_error;
}
public void setError(String error) {
m_error = error;
}
public String getFile() {
return m_file;
}
public void setFile(String file) {
m_file = file;
}
public String getLine() {
return m_line;
}
public void setLine(String line) {
m_line = line;
@Override
public ApiPage getPage() {
return m_page;
}
public String getData() {
return m_data;
public long getTimestamp() {
return m_timestamp;
}
public String getVersion() {
return m_version;
}
public void setAction(String action) {
m_action = Action.getByName(action, Action.VIEW);
}
public void setData(String data) {
m_data = data;
}
public void setPage(ApiPage page) {
m_page = page;
public void setError(String error) {
m_error = error;
}
public void setAction(String action) {
m_action = Action.getByName(action, Action.VIEW);
public void setFile(String file) {
m_file = file;
}
@Override
public Action getAction() {
return m_action;
public void setLine(String line) {
m_line = line;
}
@Override
public ApiPage getPage() {
return m_page;
public void setPage(ApiPage page) {
m_page = page;
}
@Override
......@@ -90,6 +93,14 @@ public class Payload implements ActionPayload<ApiPage, Action> {
m_page = ApiPage.getByName(page, ApiPage.JS);
}
public void setTimestamp(long timestamp) {
m_timestamp = timestamp;
}
public void setVersion(String version) {
m_version = version;
}
@Override
public void validate(ActionContext<?> ctx) {
if (m_action == null) {
......
......@@ -10,7 +10,7 @@ import org.unidal.lookup.configuration.Component;
import com.dianping.cat.broker.api.page.IpService;
import com.dianping.cat.broker.api.page.MonitorManager;
import com.dianping.cat.broker.api.page.RequestUtils;
import com.dianping.cat.config.UrlPatternConfigManager;
import com.dianping.cat.config.url.UrlPatternConfigManager;
public class ComponentsConfigurator extends AbstractResourceConfigurator {
@Override
......
......@@ -13,7 +13,7 @@
<implementation>com.dianping.cat.broker.api.page.MonitorManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.config.UrlPatternConfigManager</role>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.broker.api.page.IpService</role>
......@@ -60,7 +60,7 @@
<role>com.dianping.cat.broker.api.page.IpService</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.UrlPatternConfigManager</role>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
</requirement>
</requirements>
</component>
......@@ -69,14 +69,14 @@
<implementation>com.dianping.cat.broker.api.page.IpService</implementation>
</component>
<component>
<role>com.dianping.cat.config.UrlPatternConfigManager</role>
<implementation>com.dianping.cat.config.UrlPatternConfigManager</implementation>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
<implementation>com.dianping.cat.config.url.UrlPatternConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.UrlPatternHandler</role>
<role>com.dianping.cat.config.url.UrlPatternHandler</role>
</requirement>
</requirements>
</component>
......
......@@ -5,20 +5,17 @@ import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import com.dianping.cat.broker.js.AggregationConfigManagerTest;
import com.dianping.cat.broker.js.JsTest;
import com.dianping.cat.broker.js.ParseTest;
@RunWith(Suite.class)
@SuiteClasses({
// add test classes here
// add test classes here
AggregationConfigManagerTest.class,
ParseTest.class,
AggregationConfigManagerTest.class,
JsTest.class,
ParseTest.class,
})
public class AllTests {
......
......@@ -8,8 +8,8 @@ import junit.framework.Assert;
import org.junit.Test;
import com.dianping.cat.Constants;
import com.dianping.cat.config.DefaultUrlPatternHandler;
import com.dianping.cat.config.UrlPatternConfigManager;
import com.dianping.cat.config.url.DefaultUrlPatternHandler;
import com.dianping.cat.config.url.UrlPatternConfigManager;
import com.dianping.cat.configuration.url.pattern.entity.PatternItem;
public class UrlPatternConvertTest {
......
......@@ -8,8 +8,8 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import com.dianping.cat.config.AggregationMessageFormat;
import com.dianping.cat.config.CompositeFormat;
import com.dianping.cat.config.aggregation.AggregationMessageFormat;
public class CompositeFormatTest {
@Rule
......
......@@ -12,12 +12,12 @@ import com.dianping.cat.DomainManager;
import com.dianping.cat.ServerConfigManager;
import com.dianping.cat.analysis.DefaultMessageAnalyzerManager;
import com.dianping.cat.analysis.MessageAnalyzerManager;
import com.dianping.cat.config.DefaultUrlPatternHandler;
import com.dianping.cat.config.UrlPatternConfigManager;
import com.dianping.cat.config.UrlPatternHandler;
import com.dianping.cat.config.aggregation.AggregationConfigManager;
import com.dianping.cat.config.aggregation.AggregationHandler;
import com.dianping.cat.config.aggregation.DefaultAggregationHandler;
import com.dianping.cat.config.url.DefaultUrlPatternHandler;
import com.dianping.cat.config.url.UrlPatternConfigManager;
import com.dianping.cat.config.url.UrlPatternHandler;
import com.dianping.cat.core.config.ConfigDao;
import com.dianping.cat.core.dal.HostinfoDao;
import com.dianping.cat.core.dal.ProjectDao;
......
......@@ -4,6 +4,8 @@ import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import com.dianping.cat.config.aggregation.AggregationMessageFormat;
/**
* Composite format of many message format
*
......
......@@ -3,6 +3,8 @@ package com.dianping.cat.config;
import java.util.HashMap;
import java.util.Map;
import com.dianping.cat.config.aggregation.AggregationMessageFormat;
public class TrieTreeNode {
/**
......
package com.dianping.cat.config;
package com.dianping.cat.config.aggregation;
import java.text.MessageFormat;
import java.util.ArrayList;
......
......@@ -6,14 +6,18 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.dianping.cat.config.AggregationMessageFormat;
import org.codehaus.plexus.logging.LogEnabled;
import org.codehaus.plexus.logging.Logger;
import com.dianping.cat.config.CompositeFormat;
import com.dianping.cat.config.TrieTreeNode;
import com.dianping.cat.configuration.aggreation.model.entity.AggregationRule;
public class DefaultAggregationHandler implements AggregationHandler {
public class DefaultAggregationHandler implements AggregationHandler, LogEnabled {
private Map<Integer, Map<String, TrieTreeNode>> m_formats = new HashMap<Integer, Map<String, TrieTreeNode>>();
Map<Integer, Map<String, TrieTreeNode>> m_formats = new HashMap<Integer, Map<String, TrieTreeNode>>();
private Logger m_logger;
private Map<String, TrieTreeNode> findOrCreateTrieTreeNodes(int type) {
Map<String, TrieTreeNode> nodes = m_formats.get(type);
......@@ -177,6 +181,7 @@ public class DefaultAggregationHandler implements AggregationHandler {
@Override
public String handle(int type, String domain, String input) {
TrieTreeNode formatTree = getFormatTree(type, domain);
if (formatTree == null) {
return input;
}
......@@ -185,11 +190,14 @@ public class DefaultAggregationHandler implements AggregationHandler {
@Override
public void register(List<AggregationRule> rules) {
m_logger.info("aggregation rule start!");
m_formats.clear();
for (AggregationRule rule : rules) {
String format = rule.getPattern();
m_logger.info("aggregation rule : " + format);
if (format == null || format.isEmpty()) {
continue;
}
......@@ -214,5 +222,12 @@ public class DefaultAggregationHandler implements AggregationHandler {
buildFormatTree(node, key1.toCharArray(), key2.toCharArray(), value);
}
}
m_logger.info("aggregation rule end!");
}
@Override
public void enableLogging(Logger logger) {
m_logger = logger;
}
}
package com.dianping.cat.config;
package com.dianping.cat.config.url;
import java.util.ArrayList;
import java.util.Collection;
......@@ -12,6 +12,9 @@ import java.util.Set;
import org.codehaus.plexus.logging.LogEnabled;
import org.codehaus.plexus.logging.Logger;
import com.dianping.cat.config.CompositeFormat;
import com.dianping.cat.config.TrieTreeNode;
import com.dianping.cat.config.aggregation.AggregationMessageFormat;
import com.dianping.cat.configuration.url.pattern.entity.PatternItem;
public class DefaultUrlPatternHandler implements UrlPatternHandler, LogEnabled {
......
package com.dianping.cat.config;
package com.dianping.cat.config.url;
import java.io.IOException;
import java.util.ArrayList;
......
......@@ -80,18 +80,18 @@
</requirements>
</component>
<component>
<role>com.dianping.cat.config.UrlPatternHandler</role>
<implementation>com.dianping.cat.config.DefaultUrlPatternHandler</implementation>
<role>com.dianping.cat.config.url.UrlPatternHandler</role>
<implementation>com.dianping.cat.config.url.DefaultUrlPatternHandler</implementation>
</component>
<component>
<role>com.dianping.cat.config.UrlPatternConfigManager</role>
<implementation>com.dianping.cat.config.UrlPatternConfigManager</implementation>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
<implementation>com.dianping.cat.config.url.UrlPatternConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.UrlPatternHandler</role>
<role>com.dianping.cat.config.url.UrlPatternHandler</role>
</requirement>
</requirements>
</component>
......
......@@ -18,7 +18,7 @@ import org.unidal.web.mvc.annotation.PayloadMeta;
import com.alibaba.cobar.parser.util.Pair;
import com.dianping.cat.Monitor;
import com.dianping.cat.config.UrlPatternConfigManager;
import com.dianping.cat.config.url.UrlPatternConfigManager;
import com.dianping.cat.configuration.url.pattern.entity.PatternItem;
import com.dianping.cat.helper.TimeUtil;
import com.dianping.cat.report.ReportPage;
......
......@@ -26,8 +26,8 @@ import org.unidal.web.mvc.annotation.PayloadMeta;
import com.dianping.cat.Cat;
import com.dianping.cat.Constants;
import com.dianping.cat.advanced.metric.config.entity.MetricItemConfig;
import com.dianping.cat.config.UrlPatternConfigManager;
import com.dianping.cat.config.aggregation.AggregationConfigManager;
import com.dianping.cat.config.url.UrlPatternConfigManager;
import com.dianping.cat.configuration.aggreation.model.entity.AggregationRule;
import com.dianping.cat.consumer.company.model.entity.ProductLine;
import com.dianping.cat.consumer.metric.MetricConfigManager;
......
......@@ -3228,7 +3228,7 @@
<role>com.dianping.cat.report.page.userMonitor.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.UrlPatternConfigManager</role>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.userMonitor.CityManager</role>
......@@ -3251,14 +3251,14 @@
</requirements>
</component>
<component>
<role>com.dianping.cat.config.UrlPatternConfigManager</role>
<implementation>com.dianping.cat.config.UrlPatternConfigManager</implementation>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
<implementation>com.dianping.cat.config.url.UrlPatternConfigManager</implementation>
<requirements>
<requirement>
<role>com.dianping.cat.core.config.ConfigDao</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.UrlPatternHandler</role>
<role>com.dianping.cat.config.url.UrlPatternHandler</role>
</requirement>
</requirements>
</component>
......@@ -3454,7 +3454,7 @@
<role>com.dianping.cat.system.config.MetricGroupConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.config.UrlPatternConfigManager</role>
<role>com.dianping.cat.config.url.UrlPatternConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.system.config.MetricRuleConfigManager</role>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册