提交 6109ef9a 编写于 作者: F Frankie Wu

model service output filter

上级 1a917a49
......@@ -30,7 +30,7 @@
<plugin>
<groupId>com.site.maven.plugins</groupId>
<artifactId>maven-codegen-plugin</artifactId>
<version>1.0.14</version>
<version>1.0.15</version>
<executions>
<execution>
<id>generate problem report model</id>
......
......@@ -4,7 +4,7 @@
<role>com.dianping.cat.consumer.AnalyzerFactory</role>
<implementation>com.dianping.cat.consumer.DefaultAnalyzerFactory</implementation>
<configuration>
<local>false</local>
<local>true</local>
</configuration>
</component>
<component>
......
......@@ -39,7 +39,7 @@
<plugin>
<groupId>com.site.maven.plugins</groupId>
<artifactId>maven-codegen-plugin</artifactId>
<version>1.0.13</version>
<version>1.0.15</version>
<executions>
<execution>
<id>generate configuration model</id>
......
package com.dianping.cat.configuration;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Collections;
import java.util.List;
public enum NetworkInterfaceManager {
INSTANCE;
private InetAddress m_local;
private NetworkInterfaceManager() {
load();
}
private void load() {
try {
List<NetworkInterface> nis = Collections.list(NetworkInterface.getNetworkInterfaces());
InetAddress local = null;
for (NetworkInterface ni : nis) {
if (ni.isUp()) {
List<InetAddress> addresses = Collections.list(ni.getInetAddresses());
for (InetAddress address : addresses) {
if (address instanceof Inet4Address) {
if (address.isLoopbackAddress() || address.isSiteLocalAddress()) {
if (local == null) {
local = address;
} else if (local.isLoopbackAddress() && address.isSiteLocalAddress()) {
local = address;
}
}
}
}
}
}
m_local = local;
} catch (SocketException e) {
e.printStackTrace();
}
}
public String getLocalHostName() {
return m_local.getCanonicalHostName();
}
public String getLocalHostAddress() {
return m_local.getHostAddress();
}
}
......@@ -89,7 +89,7 @@
<plugin>
<groupId>com.site.maven.plugins</groupId>
<artifactId>maven-codegen-plugin</artifactId>
<version>1.0.12</version>
<version>1.0.15</version>
<executions>
<execution>
<id>generate plexus component descriptor</id>
......
......@@ -6,12 +6,13 @@ import javax.servlet.ServletException;
import com.dianping.cat.consumer.event.model.entity.EventName;
import com.dianping.cat.consumer.event.model.entity.EventType;
import com.dianping.cat.consumer.problem.model.entity.JavaThread;
import com.dianping.cat.consumer.problem.model.entity.Machine;
import com.dianping.cat.consumer.transaction.model.IEntity;
import com.dianping.cat.consumer.transaction.model.entity.Duration;
import com.dianping.cat.consumer.transaction.model.entity.Range;
import com.dianping.cat.consumer.transaction.model.entity.TransactionName;
import com.dianping.cat.consumer.transaction.model.entity.TransactionType;
import com.dianping.cat.consumer.transaction.model.transform.DefaultXmlBuilder;
import com.dianping.cat.report.ReportPage;
import com.dianping.cat.report.page.model.event.LocalEventService;
import com.dianping.cat.report.page.model.logview.LocalLogViewService;
......@@ -55,7 +56,7 @@ public class Handler extends ContainerHolder implements PageHandler<Context> {
return filter.buildXml((com.dianping.cat.consumer.event.model.IEntity<?>) dataModel);
} else if ("problem".equals(report)) {
ProblemReportFilter filter = new ProblemReportFilter();
ProblemReportFilter filter = new ProblemReportFilter(payload.getIpAddress(), payload.getThreadId());
return filter.buildXml((com.dianping.cat.consumer.problem.model.IEntity<?>) dataModel);
} else {
......@@ -152,10 +153,39 @@ public class Handler extends ContainerHolder implements PageHandler<Context> {
}
static class ProblemReportFilter extends com.dianping.cat.consumer.problem.model.transform.DefaultXmlBuilder {
// TODO
private String m_ipAddress;
private String m_threadId;
public ProblemReportFilter(String ipAddress, String threadId) {
m_ipAddress = ipAddress;
m_threadId = threadId;
}
@Override
public void visitMachine(Machine machine) {
if (m_ipAddress == null) {
super.visitMachine(machine);
} else if (machine.getIp().equals(m_ipAddress)) {
super.visitMachine(machine);
} else {
// skip it
}
}
@Override
public void visitThread(JavaThread thread) {
if (m_threadId == null) {
super.visitThread(thread);
} else if (thread.getId().equals(m_threadId)) {
super.visitThread(thread);
} else {
// skip it
}
}
}
static class TransactionReportFilter extends DefaultXmlBuilder {
static class TransactionReportFilter extends com.dianping.cat.consumer.transaction.model.transform.DefaultXmlBuilder {
private String m_type;
private String m_name;
......
......@@ -19,9 +19,16 @@ public class Payload implements ActionPayload<ReportPage, Action> {
@FieldMeta("type")
private String m_type;
@FieldMeta("name")
private String m_name;
@FieldMeta("ip")
private String m_ipAddress;
@FieldMeta("thread")
private String m_threadId;
@Override
public Action getAction() {
return m_action;
......@@ -35,6 +42,14 @@ public class Payload implements ActionPayload<ReportPage, Action> {
}
}
public String getIpAddress() {
return m_ipAddress;
}
public String getName() {
return m_name;
}
@Override
public ReportPage getPage() {
return m_page;
......@@ -56,10 +71,26 @@ public class Payload implements ActionPayload<ReportPage, Action> {
}
}
public String getThreadId() {
return m_threadId;
}
public String getType() {
return m_type;
}
public void setAction(String action) {
m_action = Action.getByName(action, Action.XML);
}
public void setIpAddress(String ipAddress) {
m_ipAddress = ipAddress;
}
public void setName(String name) {
m_name = name;
}
@Override
public void setPage(String page) {
m_page = ReportPage.getByName(page, ReportPage.MODEL);
......@@ -69,21 +100,13 @@ public class Payload implements ActionPayload<ReportPage, Action> {
m_path = path;
}
public String getType() {
return m_type;
public void setThreadId(String threadId) {
m_threadId = threadId;
}
public void setType(String type) {
m_type = type;
}
public String getName() {
return m_name;
}
public void setName(String name) {
m_name = name;
}
m_type = type;
}
@Override
public void validate(ActionContext<?> ctx) {
......
......@@ -63,7 +63,7 @@ public class Handler implements PageHandler<Context> {
ModelRequest request = new ModelRequest(domain, payload.getPeriod()) //
.setProperty("date", date) //
.setProperty("ip", payload.getIpAddress()) //
.setProperty("thread", payload.getIpAddress());
.setProperty("thread", payload.getThreadId());
if (m_service.isEligable(request)) {
ModelResponse<ProblemReport> response = m_service.invoke(request);
......
......@@ -5,6 +5,8 @@ import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import com.dianping.cat.report.page.ip.DisplayModelTest;
import com.dianping.cat.report.page.model.EventReportFilterTest;
import com.dianping.cat.report.page.model.TransactionReportFilterTest;
import com.dianping.cat.report.page.transaction.TransactionReportMergerTest;
@RunWith(Suite.class)
......@@ -13,6 +15,11 @@ import com.dianping.cat.report.page.transaction.TransactionReportMergerTest;
/* .report.page.ip */
DisplayModelTest.class,
/* .report.page.model */
EventReportFilterTest.class,
TransactionReportFilterTest.class,
/* .report.page.transaction */
TransactionReportMergerTest.class
......
......@@ -85,7 +85,7 @@
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.dianping.cat.job.job.BrowserAnalyzer</mainClass>
<mainClass>com.dianping.cat.job.sql.SqlJobMain</mainClass>
</manifest>
</archive>
</configuration>
......
......@@ -63,7 +63,7 @@
<dependency>
<groupId>com.site.dal</groupId>
<artifactId>dal-jdbc</artifactId>
<version>1.0.1</version>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>com.site.app</groupId>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册