in ons-core/ons-client/src/main/java/org/apache/rocketmq/ons/api/impl/tracehook/OnsClientSendMessageHookImpl.java [69:97]
public void sendMessageAfter(SendMessageContext context) {
if (context == null || context.getMessage().getTopic().startsWith(OnsTraceConstants.traceTopic) || context.getMqTraceContext() == null) {
return;
}
if (context.getSendResult() == null) {
return;
}
if (context.getSendResult().getRegionId() == null
|| context.getSendResult().getRegionId().equals(OnsTraceConstants.default_region)
|| !context.getSendResult().isTraceOn()) {
// if regionId is default or switch is false,skip it
return;
}
OnsTraceContext onsContext = (OnsTraceContext) context.getMqTraceContext();
OnsTraceBean traceBean = onsContext.getTraceBeans().get(0);
int costTime = (int) ((System.currentTimeMillis() - onsContext.getTimeStamp()) / onsContext.getTraceBeans().size());
onsContext.setCostTime(costTime);
if (context.getSendResult().getSendStatus().equals(SendStatus.SEND_OK)) {
onsContext.setSuccess(true);
} else {
onsContext.setSuccess(false);
}
onsContext.setRegionId(context.getSendResult().getRegionId());
traceBean.setMsgId(context.getSendResult().getMsgId());
traceBean.setOffsetMsgId(context.getSendResult().getOffsetMsgId());
traceBean.setStoreTime(onsContext.getTimeStamp() + costTime / 2);
localDispatcher.append(onsContext);
}