提交 fce00a6f 编写于 作者: Y You Yong

modify the cat small bug

上级 da7d0dfd
......@@ -97,13 +97,7 @@ public class IpAnalyzer extends AbstractMessageAnalyzer<IpReport> implements Log
if (pos > 0) {
return data.substring(off + TOKEN.length(), pos);
}
} else {
//TODO remove it after mobileApi upgrade
off = data.indexOf("RemoteIp=");
int pos = data.indexOf("VirtualIP=");
return data.substring(off + "RemoteIp=".length(), pos);
}
}
break;
} else if (child instanceof Heartbeat) {
// Heartbeat:<ip>
......
......@@ -149,12 +149,7 @@ public class PlainTextMessageCodec implements MessageCodec {
transaction.addData(data);
long d = Long.parseLong(duration.substring(0, duration.length() - 2));
if ("MobileApi".equals(tree.getDomain())) { //TODO remove it after MobileApi upgrade
transaction.setDurationInMillis(d);
} else {
transaction.setDurationInMicros(d);
}
transaction.setDurationInMicros(d);
if (parent != null) {
parent.addChild(transaction);
......@@ -172,12 +167,7 @@ public class PlainTextMessageCodec implements MessageCodec {
parent.addData(data);
long d = Long.parseLong(duration.substring(0, duration.length() - 2));
if ("MobileApi".equals(tree.getDomain())) { //TODO remove it after MobileApi upgrade
parent.setDurationInMillis(d);
} else {
parent.setDurationInMicros(d);
}
parent.setDurationInMicros(d);
return stack.pop();
} else {
......
......@@ -10,6 +10,7 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import com.dianping.cat.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.event.StatisticsComputer;
import com.dianping.cat.consumer.event.model.entity.EventName;
import com.dianping.cat.consumer.event.model.entity.EventReport;
......@@ -41,6 +42,9 @@ public class Handler implements PageHandler<Context>, Initializable {
@Inject
private GraphBuilder m_builder;
@Inject
private ServerConfigManager m_manager;
private Map<Integer, Integer> m_map = new HashMap<Integer, Integer>();
......@@ -125,7 +129,9 @@ public class Handler implements PageHandler<Context>, Initializable {
public void handleOutbound(Context ctx) throws ServletException, IOException {
Model model = new Model(ctx);
Payload payload = ctx.getPayload();
if(StringUtils.isEmpty(payload.getDomain())){
payload.setDomain(m_manager.getServerConfig().getConsole().getDefaultDomain());
}
model.setAction(payload.getAction());
model.setPage(ReportPage.EVENT);
model.setDisplayDomain(payload.getDomain());
......
......@@ -12,6 +12,7 @@ import java.util.Map;
import javax.servlet.ServletException;
import com.dianping.cat.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.ip.model.entity.Ip;
import com.dianping.cat.consumer.ip.model.entity.IpReport;
import com.dianping.cat.consumer.ip.model.entity.Period;
......@@ -23,6 +24,7 @@ import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.site.lookup.annotation.Inject;
import com.site.lookup.util.StringUtils;
import com.site.web.mvc.PageHandler;
import com.site.web.mvc.annotation.InboundActionMeta;
import com.site.web.mvc.annotation.OutboundActionMeta;
......@@ -31,6 +33,9 @@ import com.site.web.mvc.annotation.PayloadMeta;
public class Handler implements PageHandler<Context> {
@Inject
private JspViewer m_jspViewer;
@Inject
private ServerConfigManager m_manager;
@Inject(type = ModelService.class, value = "ip")
private ModelService<IpReport> m_service;
......@@ -70,7 +75,9 @@ public class Handler implements PageHandler<Context> {
public void handleOutbound(Context ctx) throws ServletException, IOException {
Model model = new Model(ctx);
Payload payload = ctx.getPayload();
if(StringUtils.isEmpty(payload.getDomain())){
payload.setDomain(m_manager.getServerConfig().getConsole().getDefaultDomain());
}
model.setAction(Action.VIEW);
model.setPage(ReportPage.IP);
......
package com.dianping.cat.report.page.problem;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Calendar;
import java.util.Map;
import javax.servlet.ServletException;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.configuration.server.entity.Domain;
import com.dianping.cat.consumer.problem.model.entity.Machine;
import com.dianping.cat.consumer.problem.model.entity.ProblemReport;
import com.dianping.cat.report.ReportPage;
......@@ -14,6 +18,7 @@ import com.dianping.cat.report.page.model.spi.ModelRequest;
import com.dianping.cat.report.page.model.spi.ModelResponse;
import com.dianping.cat.report.page.model.spi.ModelService;
import com.site.lookup.annotation.Inject;
import com.site.lookup.util.StringUtils;
import com.site.web.mvc.PageHandler;
import com.site.web.mvc.annotation.InboundActionMeta;
import com.site.web.mvc.annotation.OutboundActionMeta;
......@@ -26,6 +31,9 @@ public class Handler implements PageHandler<Context> {
@Inject(type = ModelService.class, value = "problem")
private ModelService<ProblemReport> m_service;
@Inject
private ServerConfigManager m_manager;
private int getHour(long date) {
Calendar cal = Calendar.getInstance();
......@@ -78,6 +86,20 @@ public class Handler implements PageHandler<Context> {
}
}
private void setDefaultThreshold(Model model, Payload payload) {
Domain d = m_manager.getServerConfig().getConsumer().getLongUrl().getDomains().get(payload.getDomain());
if (d != null) {
int longUrlTime = d.getThreshold();
if (longUrlTime != 500 && longUrlTime != 1000 && longUrlTime != 2000 && longUrlTime != 3000
&& longUrlTime != 4000 && longUrlTime != 5000) {
double sec = (double) (longUrlTime) / (double) 1000;
NumberFormat nf = new DecimalFormat("#.#");
String option = "<option value=\"" + longUrlTime + "\"" + ">" + nf.format(sec) + " Sec</option>";
model.setDefaultThreshold(option);
}
}
}
@Override
@PayloadMeta(Payload.class)
@InboundActionMeta(name = "p")
......@@ -90,6 +112,14 @@ public class Handler implements PageHandler<Context> {
public void handleOutbound(Context ctx) throws ServletException, IOException {
Model model = new Model(ctx);
Payload payload = ctx.getPayload();
if (StringUtils.isEmpty(payload.getDomain())) {
payload.setDomain(m_manager.getServerConfig().getConsole().getDefaultDomain());
}
setDefaultThreshold(model, payload);
Domain d = m_manager.getServerConfig().getConsumer().getLongUrl().getDomains().get(payload.getDomain());
if (d != null && payload.getRealLongTime() == 0) {
payload.setLongTime(d.getThreshold());
}
model.setAction(payload.getAction());
model.setPage(ReportPage.PROBLEM);
......@@ -105,7 +135,7 @@ public class Handler implements PageHandler<Context> {
report = getAllIpReport(payload);
model.setReport(report);
model.setLongDate(payload.getDate());
model.setAllStatistics(new ProblemStatistics().displayAllIp(report,payload));
model.setAllStatistics(new ProblemStatistics().displayByAllIps(report, payload));
} else {
switch (payload.getAction()) {
case GROUP:
......@@ -150,7 +180,7 @@ public class Handler implements PageHandler<Context> {
return;
}
model.setReport(report);
model.setProblemStatistics(new ProblemStatistics().displayByGroupOrThread(report, model));
model.setProblemStatistics(new ProblemStatistics().displayByGroupOrThread(report, model, payload));
}
private ProblemReport showSummary(Model model, Payload payload) {
......
package com.dianping.cat.report.page.problem;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.dianping.cat.consumer.problem.model.entity.ProblemReport;
......@@ -19,23 +20,29 @@ public class Model extends AbstractReportModel<Action, Context> {
private String m_threadId;
private int m_currentMinute; // for navigation
private int m_threshold;
private String m_groupName;
private String m_defaultThreshold;
private GroupLevelInfo m_groupLevelInfo;
private ThreadLevelInfo m_threadLevelInfo;
private ProblemStatistics m_problemStatistics ;
private ProblemStatistics m_allStatistics ;
private ThreadLevelInfo m_threadLevelInfo;
private ProblemStatistics m_problemStatistics;
private ProblemStatistics m_allStatistics;
public Model(Context ctx) {
super(ctx);
}
public ProblemStatistics getAllStatistics() {
return m_allStatistics;
}
public int getCurrentMinute() {
return m_currentMinute;
}
......@@ -45,6 +52,10 @@ public class Model extends AbstractReportModel<Action, Context> {
return Action.GROUP;
}
public String getDefaultThreshold() {
return m_defaultThreshold;
}
@Override
public String getDomain() {
if (m_report == null) {
......@@ -64,12 +75,12 @@ public class Model extends AbstractReportModel<Action, Context> {
}
public GroupLevelInfo getGroupLevelInfo() {
return m_groupLevelInfo;
}
return m_groupLevelInfo;
}
public String getGroupName() {
return m_groupName;
}
return m_groupName;
}
public int getHour() {
return m_hour;
......@@ -79,6 +90,12 @@ public class Model extends AbstractReportModel<Action, Context> {
return m_ipAddress;
}
public List<String> getIps() {
List<String> result = new ArrayList<String>(m_report.getIps());
Collections.sort(result);
return result;
}
public int getLastMinute() {
return m_lastMinute;
}
......@@ -98,33 +115,44 @@ public class Model extends AbstractReportModel<Action, Context> {
}
public ProblemStatistics getProblemStatistics() {
return m_problemStatistics;
}
return m_problemStatistics;
}
public ProblemReport getReport() {
return m_report;
}
public String getThreadId() {
return m_threadId;
}
public ThreadLevelInfo getThreadLevelInfo() {
return m_threadLevelInfo;
}
return m_threadLevelInfo;
}
public int getThreshold() {
return m_threshold;
}
public void setAllStatistics(ProblemStatistics allStatistics) {
m_allStatistics = allStatistics;
}
public void setCurrentMinute(int currentMinute) {
m_currentMinute = currentMinute;
}
public void setDefaultThreshold(String defaultThreshold) {
m_defaultThreshold = defaultThreshold;
}
public void setGroupLevelInfo(GroupLevelInfo groupLevelInfo) {
m_groupLevelInfo = groupLevelInfo;
}
m_groupLevelInfo = groupLevelInfo;
}
public void setGroupName(String groupName) {
m_groupName = groupName;
}
m_groupName = groupName;
}
public void setHour(int hour) {
m_hour = hour;
......@@ -139,8 +167,8 @@ public class Model extends AbstractReportModel<Action, Context> {
}
public void setProblemStatistics(ProblemStatistics problemStatistics) {
m_problemStatistics = problemStatistics;
}
m_problemStatistics = problemStatistics;
}
public void setReport(ProblemReport report) {
m_report = report;
......@@ -151,23 +179,11 @@ public class Model extends AbstractReportModel<Action, Context> {
}
public void setThreadLevelInfo(ThreadLevelInfo threadLevelInfo) {
m_threadLevelInfo = threadLevelInfo;
}
public ProblemStatistics getAllStatistics() {
return m_allStatistics;
}
public void setAllStatistics(ProblemStatistics allStatistics) {
m_allStatistics = allStatistics;
}
public int getThreshold() {
return m_threshold;
}
m_threadLevelInfo = threadLevelInfo;
}
public void setThreshold(int threshold) {
m_threshold = threshold;
}
m_threshold = threshold;
}
}
......@@ -75,6 +75,10 @@ public class Payload extends AbstractReportPayload<Action> {
}
return m_longTime;
}
public int getRealLongTime(){
return m_longTime;
}
public void setLongTime(int longTime) {
m_longTime = longTime;
......
......@@ -49,7 +49,7 @@ public class ProblemStatistics {
return sb.toString();
}
public ProblemStatistics displayAllIp(ProblemReport report,Payload payload) {
public ProblemStatistics displayByAllIps(ProblemReport report,Payload payload) {
m_threshold = payload.getLongTime();
if (report == null) {
......@@ -97,8 +97,9 @@ public class ProblemStatistics {
return this;
}
public ProblemStatistics displayByGroupOrThread(ProblemReport report, Model model) {
public ProblemStatistics displayByGroupOrThread(ProblemReport report, Model model,Payload payload) {
Machine machine = report.getMachines().get(model.getIpAddress());
m_threshold = payload.getLongTime();
if (machine == null) {
return null;
......@@ -116,7 +117,7 @@ public class ProblemStatistics {
continue;
}
List<Entry> entries = segment.getEntries();
statisticsEntries(entries, ONE_SECOND);
statisticsEntries(entries, m_threshold);
}
} else if (!isEmpty(m_groupName) && isEmpty(m_threadId)) {
......@@ -129,7 +130,7 @@ public class ProblemStatistics {
continue;
}
List<Entry> entries = segment.getEntries();
statisticsEntries(entries, ONE_SECOND);
statisticsEntries(entries, m_threshold);
}
}
......@@ -144,7 +145,7 @@ public class ProblemStatistics {
return null;
}
List<Entry> entries = segment.getEntries();
statisticsEntries(entries, ONE_SECOND);
statisticsEntries(entries, m_threshold);
}
return this;
......@@ -245,7 +246,7 @@ public class ProblemStatistics {
private List<String> m_links = new ArrayList<String>();
private static int s_maxLinkSize = 20;
private static int s_maxLinkSize = 40;
public StatusStatistics(Entry entry, String groupName, String threadId) {
m_status = entry.getStatus();
......
......@@ -10,6 +10,7 @@ import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import com.dianping.cat.Cat;
import com.dianping.cat.configuration.ServerConfigManager;
import com.dianping.cat.consumer.transaction.StatisticsComputer;
import com.dianping.cat.consumer.transaction.model.entity.Duration;
import com.dianping.cat.consumer.transaction.model.entity.Range;
......@@ -42,6 +43,9 @@ public class Handler implements PageHandler<Context>, Initializable {
@Inject
private GraphBuilder m_builder;
@Inject
private ServerConfigManager m_manager;
private Map<Integer, Integer> m_map = new HashMap<Integer, Integer>();
......@@ -127,6 +131,10 @@ public class Handler implements PageHandler<Context>, Initializable {
model.setAction(payload.getAction());
model.setPage(ReportPage.TRANSACTION);
if(StringUtils.isEmpty(payload.getDomain())){
payload.setDomain(m_manager.getServerConfig().getConsole().getDefaultDomain());
}
model.setDisplayDomain(payload.getDomain());
if (payload.getPeriod().isFuture()) {
......
......@@ -350,6 +350,9 @@
<role-hint>problem</role-hint>
<field-name>m_service</field-name>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -371,6 +374,9 @@
<requirement>
<role>com.dianping.cat.report.graph.GraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -392,6 +398,9 @@
<requirement>
<role>com.dianping.cat.report.graph.GraphBuilder</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
</requirements>
</component>
<component>
......@@ -423,6 +432,9 @@
<requirement>
<role>com.dianping.cat.report.page.ip.JspViewer</role>
</requirement>
<requirement>
<role>com.dianping.cat.configuration.ServerConfigManager</role>
</requirement>
<requirement>
<role>com.dianping.cat.report.page.model.spi.ModelService</role>
<role-hint>ip</role-hint>
......
......@@ -24,10 +24,6 @@
<servlet-name>mvc-servlet</servlet-name>
<url-pattern>/r/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>mvc-servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>cat-servlet</servlet-name>
<url-pattern>/s/*</url-pattern>
......
......@@ -9,7 +9,7 @@
<c:otherwise>
<a href="?domain=${model.domain}&date=${model.date}">All</a>
</c:otherwise>
</c:choose> &nbsp;]&nbsp; <c:forEach var="ip" items="${report.ips}">
</c:choose> &nbsp;]&nbsp; <c:forEach var="ip" items="${model.ips}">
&nbsp;[&nbsp;
<c:choose>
<c:when test="${model.ipAddress eq ip}">
......@@ -24,6 +24,7 @@
</c:forEach>
</th><th>long-url <input id="thresholdInput" style="display: none"
value="${model.threshold}"> <select size="1" id="p_longUrl">
${model.defaultThreshold}
<option value="500">0.5 Sec</option>
<option value="1000">1.0 Sec</option>
<option value="1500">1.5 Sec</option>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册