public void sendMessageBefore()

in ons-core/ons-client/src/main/java/org/apache/rocketmq/ons/api/impl/tracehook/OnsClientSendMessageHookImpl.java [46:66]


    public void sendMessageBefore(SendMessageContext context) {

        if (context == null || context.getMessage().getTopic().startsWith(MixAll.SYSTEM_TOPIC_PREFIX)) {
            return;
        }
        OnsTraceContext onsContext = new OnsTraceContext();
        onsContext.setTraceBeans(new ArrayList<OnsTraceBean>(1));
        context.setMqTraceContext(onsContext);
        onsContext.setTraceType(OnsTraceType.Pub);
        String userGroup = NamespaceUtil.withoutNamespace(context.getProducerGroup(), context.getNamespace());
        onsContext.setGroupName(userGroup);
        OnsTraceBean traceBean = new OnsTraceBean();
        String userTopic = NamespaceUtil.withoutNamespace(context.getMessage().getTopic(), context.getNamespace());
        traceBean.setTopic(userTopic);
        traceBean.setTags(context.getMessage().getTags());
        traceBean.setKeys(context.getMessage().getKeys());
        traceBean.setStoreHost(context.getBrokerAddr());
        traceBean.setBodyLength(context.getMessage().getBody().length);
        traceBean.setMsgType(context.getMsgType());
        onsContext.getTraceBeans().add(traceBean);
    }