diff --git a/src/main/java/org/apache/rocketmq/console/model/MessageTraceView.java b/src/main/java/org/apache/rocketmq/console/model/MessageTraceView.java index 6febc24..d641f72 100644 --- a/src/main/java/org/apache/rocketmq/console/model/MessageTraceView.java +++ b/src/main/java/org/apache/rocketmq/console/model/MessageTraceView.java @@ -17,10 +17,12 @@ package org.apache.rocketmq.console.model; +import com.google.common.base.Charsets; import java.util.ArrayList; import java.util.List; import org.apache.rocketmq.client.trace.TraceBean; import org.apache.rocketmq.client.trace.TraceContext; +import org.apache.rocketmq.common.message.MessageExt; import org.apache.rocketmq.console.util.MsgTraceDecodeUtil; public class MessageTraceView { @@ -41,12 +43,13 @@ public class MessageTraceView { public MessageTraceView() { } - public static List decodeFromTraceTransData(String key,String messageBody) { + public static List decodeFromTraceTransData(String key, MessageExt messageExt) { List messageTraceViewList = new ArrayList(); + String messageBody = new String(messageExt.getBody(), Charsets.UTF_8); if (messageBody == null || messageBody.length() <= 0) { return messageTraceViewList; } - + List traceContextList = MsgTraceDecodeUtil.decoderFromTraceDataString(messageBody); for (TraceContext context : traceContextList) { @@ -58,9 +61,8 @@ public class MessageTraceView { messageTraceView.setCostTime(context.getCostTime()); messageTraceView.setGroupName(context.getGroupName()); if (context.isSuccess()) { - messageTraceView.setStatus("Sucess"); - } - else { + messageTraceView.setStatus("success"); + } else { messageTraceView.setStatus("failed"); } messageTraceView.setKeys(traceBean.getKeys()); @@ -71,7 +73,7 @@ public class MessageTraceView { messageTraceView.setOffSetMsgId(traceBean.getOffsetMsgId()); messageTraceView.setTimeStamp(context.getTimeStamp()); messageTraceView.setStoreHost(traceBean.getStoreHost()); - messageTraceView.setClientHost(traceBean.getClientHost()); + messageTraceView.setClientHost(messageExt.getBornHostString()); messageTraceViewList.add(messageTraceView); } return messageTraceViewList; diff --git a/src/main/java/org/apache/rocketmq/console/service/impl/MessageTraceServiceImpl.java b/src/main/java/org/apache/rocketmq/console/service/impl/MessageTraceServiceImpl.java index 1eaeb4a..e7db5ed 100644 --- a/src/main/java/org/apache/rocketmq/console/service/impl/MessageTraceServiceImpl.java +++ b/src/main/java/org/apache/rocketmq/console/service/impl/MessageTraceServiceImpl.java @@ -17,7 +17,6 @@ package org.apache.rocketmq.console.service.impl; -import com.google.common.base.Charsets; import com.google.common.base.Throwables; import java.util.ArrayList; import java.util.List; @@ -38,18 +37,17 @@ public class MessageTraceServiceImpl implements MessageTraceService { private final static int QUERY_MESSAGE_MAX_NUM = 64; @Resource private MQAdminExt mqAdminExt; - + @Override public List queryMessageTraceByTopicAndKey(String topic, String key) { try { List messageTraceViews = new ArrayList(); List messageTraceList = mqAdminExt.queryMessage(topic, key, QUERY_MESSAGE_MAX_NUM, 0, System.currentTimeMillis()).getMessageList(); for (MessageExt messageExt : messageTraceList) { - List messageTraceView = MessageTraceView.decodeFromTraceTransData(key, new String(messageExt.getBody(), Charsets.UTF_8)); + List messageTraceView = MessageTraceView.decodeFromTraceTransData(key, messageExt); messageTraceViews.addAll(messageTraceView); } return messageTraceViews; - } - catch (Exception err) { + } catch (Exception err) { throw Throwables.propagate(err); } } diff --git a/src/main/java/org/apache/rocketmq/console/util/MsgTraceDecodeUtil.java b/src/main/java/org/apache/rocketmq/console/util/MsgTraceDecodeUtil.java index d681f01..e3eb9c1 100644 --- a/src/main/java/org/apache/rocketmq/console/util/MsgTraceDecodeUtil.java +++ b/src/main/java/org/apache/rocketmq/console/util/MsgTraceDecodeUtil.java @@ -103,7 +103,6 @@ public class MsgTraceDecodeUtil { bean.setMsgId(line[5]); bean.setRetryTimes(Integer.parseInt(line[6])); bean.setKeys(line[7]); - bean.setClientHost(line[8]); subBeforeContext.setTraceBeans(new ArrayList(1)); subBeforeContext.getTraceBeans().add(bean); resList.add(subBeforeContext);