提交 028ae023 编写于 作者: Y youyong

modify the cat parse exception

上级 cbe9abb2
......@@ -4,7 +4,7 @@
<parent>
<groupId>com.dianping.cat</groupId>
<artifactId>parent</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.dianping.bee</groupId>
......
......@@ -3,7 +3,7 @@
<parent>
<groupId>com.dianping.cat</groupId>
<artifactId>parent</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cat-consumer</artifactId>
......
......@@ -3,16 +3,24 @@ package com.dianping.cat.consumer.transaction;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.codehaus.plexus.logging.LogEnabled;
import org.codehaus.plexus.logging.Logger;
import com.dianping.cat.consumer.transaction.model.entity.TransactionName;
import com.dianping.cat.consumer.transaction.model.entity.TransactionReport;
import com.dianping.cat.consumer.transaction.model.entity.TransactionType;
public class TransactionReportUrlFilter extends com.dianping.cat.consumer.transaction.model.transform.DefaultXmlBuilder {
public class TransactionReportUrlFilter extends com.dianping.cat.consumer.transaction.model.transform.DefaultXmlBuilder
implements LogEnabled {
private int m_maxItems = 200;
private int m_maxItems = 500;
private Logger m_logger;
private void mergeName(TransactionName old, TransactionName other) {
old.setTotalCount(old.getTotalCount() + other.getTotalCount());
......@@ -52,6 +60,26 @@ public class TransactionReportUrlFilter extends com.dianping.cat.consumer.transa
public void visitType(TransactionType type) {
if ("URL".equals(type.getId())) {
Map<String, TransactionName> transactionNames = type.getNames();
Set<String> names = transactionNames.keySet();
Set<String> invalidates = new HashSet<String>();
for (String temp : names) {
int length = temp.length();
for (int i = 0; i < length; i++) {
if (temp.charAt(i) > 255 || temp.charAt(i) < 0) {
invalidates.add(temp);
continue;
}
}
}
for (String name : invalidates) {
m_logger.error("remove invalidate url " + name);
transactionNames.remove(name);
}
int size = transactionNames.size();
if (size > m_maxItems) {
......@@ -80,4 +108,9 @@ public class TransactionReportUrlFilter extends com.dianping.cat.consumer.transa
return (int) (o2.getTotalCount() - o1.getTotalCount());
}
}
@Override
public void enableLogging(Logger logger) {
m_logger = logger;
}
}
\ No newline at end of file
......@@ -27,15 +27,24 @@ public class TransactionReportFilterTest {
System.out.println(report.toString().length());
System.out.println("Name size :" + type.getNames().size());
TransactionReportUrlFilter f1 = new TransactionReportUrlFilter();
String filterReport = f1.buildXml(report);
TransactionReport newReport = parser.parse(filterReport);
System.out.println(newReport.toString().length());
int newSize = newReport.findMachine("10.1.77.193").findType("URL").getNames().size();
Assert.assertEquals(501, newSize);
Assert.assertEquals(201, newSize);
String url = "/topic/341739Š¬g&quot;";
size = url.length();
for (int i = 0; i < size; i++) {
if (url.charAt(i) > 255 || url.charAt(i) < 0) {
System.out.println(i + " " + url.charAt(i));
}
}
}
}
......@@ -4,7 +4,7 @@
<parent>
<groupId>com.dianping.cat</groupId>
<artifactId>parent</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cat-core</artifactId>
......
......@@ -4,7 +4,7 @@
<parent>
<groupId>com.dianping.cat</groupId>
<artifactId>parent</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cat-data</artifactId>
......
......@@ -4,7 +4,7 @@
<parent>
<groupId>com.dianping.cat</groupId>
<artifactId>parent</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cat-hadoop</artifactId>
......
......@@ -3,7 +3,7 @@
<parent>
<groupId>com.dianping.cat</groupId>
<artifactId>parent</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cat-home</artifactId>
......
......@@ -37,16 +37,15 @@ public class UrlTransasctionBugTest extends ComponentTestCase {
@Test
public void test() throws Exception {
//fix the transaction xml parse builder
String dateStr = "2012-12-13 14:00:00";
String dateStr = "2012-12-14 19:00:00";
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(dateStr);
List<Report> reports = m_reportDao.findAllByDomainNameDuration(date,
new Date(date.getTime() + TimeUtil.ONE_HOUR), "ShopWeb", "transaction", ReportEntity.READSET_FULL);
new Date(date.getTime() + TimeUtil.ONE_HOUR), "GroupWeb", "transaction", ReportEntity.READSET_FULL);
File file = new File("text.txt");
for (Report report : reports) {
try {
TransactionReport temp = DefaultSaxParser.parse(report.getContent());
System.out.println(temp);
DefaultSaxParser.parse(report.getContent());
} catch (Exception e) {
Files.forIO().writeTo(file, report.getContent());
}
......
此差异已折叠。
......@@ -4,7 +4,7 @@
<parent>
<groupId>com.dianping.cat</groupId>
<artifactId>parent</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>cat-job</artifactId>
......
......@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.dianping.cat</groupId>
<artifactId>parent</artifactId>
<version>0.5.0</version>
<version>0.5.1</version>
<name>arch-cat</name>
<description>Central Application Tracking</description>
<packaging>pom</packaging>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册