trace完善
This commit is contained in:
@@ -524,19 +524,19 @@ public abstract class MessageAgent implements Resourcable {
|
|||||||
consumer.init(config);
|
consumer.init(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Future onMessage(MessageConext context, List<byte[]> messages) {
|
public Future onMessage(MessageConext context, String traceid, byte[] message) {
|
||||||
return messageAgent.submit(() -> {
|
return messageAgent.submit(() -> {
|
||||||
|
Traces.computeIfAbsent(traceid);
|
||||||
Convert c = this.convert;
|
Convert c = this.convert;
|
||||||
MessageConsumer m = this.consumer;
|
MessageConsumer m = this.consumer;
|
||||||
for (byte[] bs : messages) {
|
|
||||||
try {
|
try {
|
||||||
m.onMessage(context, (T) c.convertFrom(messageType, bs));
|
m.onMessage(context, (T) c.convertFrom(messageType, message));
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
messageAgent.getLogger().log(Level.SEVERE, m.getClass().getSimpleName()
|
messageAgent.getLogger().log(Level.SEVERE, m.getClass().getSimpleName()
|
||||||
+ " onMessage error, topic: " + context.getTopic()
|
+ " onMessage error, topic: " + context.getTopic()
|
||||||
+ ", messages: " + new String(bs, StandardCharsets.UTF_8));
|
+ ", messages: " + new String(message, StandardCharsets.UTF_8));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Traces.removeTraceid();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ package org.redkale.mq;
|
|||||||
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
import org.redkale.util.Traces;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 响应结果
|
* 响应结果
|
||||||
@@ -26,6 +27,7 @@ public class MessageRespProcessor implements MessageProcessor {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(final MessageRecord msg, long time) {
|
public void process(final MessageRecord msg, long time) {
|
||||||
|
String traceid = msg.getTraceid();
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
Logger logger = messageClient.logger;
|
Logger logger = messageClient.logger;
|
||||||
final boolean finest = logger.isLoggable(Level.FINEST);
|
final boolean finest = logger.isLoggable(Level.FINEST);
|
||||||
@@ -42,6 +44,7 @@ public class MessageRespProcessor implements MessageProcessor {
|
|||||||
logger.log(Level.FINEST, getClass().getSimpleName() + ".MessageRespFuture.receive (mq.delay = " + deplay + "ms, mq.seqid = " + msg.getSeqid() + ")");
|
logger.log(Level.FINEST, getClass().getSimpleName() + ".MessageRespFuture.receive (mq.delay = " + deplay + "ms, mq.seqid = " + msg.getSeqid() + ")");
|
||||||
}
|
}
|
||||||
messageClient.getMessageAgent().execute(() -> {
|
messageClient.getMessageAgent().execute(() -> {
|
||||||
|
Traces.computeIfAbsent(traceid);
|
||||||
resp.future.complete(msg);
|
resp.future.complete(msg);
|
||||||
long comems = System.currentTimeMillis() - now;
|
long comems = System.currentTimeMillis() - now;
|
||||||
if ((deplay > 1000 || comems > 1000) && logger.isLoggable(Level.FINE)) {
|
if ((deplay > 1000 || comems > 1000) && logger.isLoggable(Level.FINE)) {
|
||||||
@@ -51,6 +54,7 @@ public class MessageRespProcessor implements MessageProcessor {
|
|||||||
} else if (finest) {
|
} else if (finest) {
|
||||||
logger.log(Level.FINEST, getClass().getSimpleName() + ".MessageRespFuture.complete (mq.delay-normal = " + deplay + "ms, mq.complete-normal = " + comems + "ms) mqresp.msg: " + msg);
|
logger.log(Level.FINEST, getClass().getSimpleName() + ".MessageRespFuture.complete (mq.delay-normal = " + deplay + "ms, mq.complete-normal = " + comems + "ms) mqresp.msg: " + msg);
|
||||||
}
|
}
|
||||||
|
Traces.removeTraceid();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public class Traces {
|
|||||||
|
|
||||||
private static final AtomicLong sequence = new AtomicLong(System.currentTimeMillis());
|
private static final AtomicLong sequence = new AtomicLong(System.currentTimeMillis());
|
||||||
|
|
||||||
private static final Supplier<String> tidSupplier = () -> PROCESS_ID + sequence.incrementAndGet();
|
private static final Supplier<String> tidSupplier = () -> PROCESS_ID + Long.toHexString(sequence.incrementAndGet());
|
||||||
|
|
||||||
private static final ThreadLocal<String> localTrace = new ThreadLocal<>();
|
private static final ThreadLocal<String> localTrace = new ThreadLocal<>();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user