[ISSUE #2996] Adjust the way to get the clientHost in the message trace (#726)

Co-authored-by: zhangjidi2016 <zhangjidi@cmss.chinamobile.com>
This commit is contained in:
zhangjidi2016
2021-06-25 10:41:05 +08:00
committed by GitHub
parent 1492b50130
commit 2e252a54e6
3 changed files with 11 additions and 12 deletions

View File

@@ -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<MessageTraceView> decodeFromTraceTransData(String key,String messageBody) {
public static List<MessageTraceView> decodeFromTraceTransData(String key, MessageExt messageExt) {
List<MessageTraceView> messageTraceViewList = new ArrayList<MessageTraceView>();
String messageBody = new String(messageExt.getBody(), Charsets.UTF_8);
if (messageBody == null || messageBody.length() <= 0) {
return messageTraceViewList;
}
List<TraceContext> 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;

View File

@@ -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<MessageTraceView> queryMessageTraceByTopicAndKey(String topic, String key) {
try {
List<MessageTraceView> messageTraceViews = new ArrayList<MessageTraceView>();
List<MessageExt> messageTraceList = mqAdminExt.queryMessage(topic, key, QUERY_MESSAGE_MAX_NUM, 0, System.currentTimeMillis()).getMessageList();
for (MessageExt messageExt : messageTraceList) {
List<MessageTraceView> messageTraceView = MessageTraceView.decodeFromTraceTransData(key, new String(messageExt.getBody(), Charsets.UTF_8));
List<MessageTraceView> messageTraceView = MessageTraceView.decodeFromTraceTransData(key, messageExt);
messageTraceViews.addAll(messageTraceView);
}
return messageTraceViews;
}
catch (Exception err) {
} catch (Exception err) {
throw Throwables.propagate(err);
}
}

View File

@@ -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<TraceBean>(1));
subBeforeContext.getTraceBeans().add(bean);
resList.add(subBeforeContext);