diff --git a/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java b/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java index 89e2cc028443579c443cf233d6f7f9cc8cdab33a..8c3a2768a995c3c5aab88bf13d4fc65669b90aa1 100644 --- a/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java +++ b/store/src/main/java/org/apache/rocketmq/store/DefaultMessageStore.java @@ -144,7 +144,7 @@ public class DefaultMessageStore implements MessageStore { } this.reputMessageService = new ReputMessageService(); - this.scheduleMessageService = new ScheduleMessageService(this); + this.scheduleMessageService = new ScheduleMessageService(this, brokerStatsManager); this.transientStorePool = new TransientStorePool(messageStoreConfig); diff --git a/store/src/main/java/org/apache/rocketmq/store/schedule/ScheduleMessageService.java b/store/src/main/java/org/apache/rocketmq/store/schedule/ScheduleMessageService.java index 3b19a16fd4b7fc238b9e5697a32c2672fd270e19..9006ecb0fec51905ecdf6a2f665e4a8db07a364d 100644 --- a/store/src/main/java/org/apache/rocketmq/store/schedule/ScheduleMessageService.java +++ b/store/src/main/java/org/apache/rocketmq/store/schedule/ScheduleMessageService.java @@ -44,6 +44,7 @@ import org.apache.rocketmq.store.PutMessageResult; import org.apache.rocketmq.store.PutMessageStatus; import org.apache.rocketmq.store.SelectMappedBufferResult; import org.apache.rocketmq.store.config.StorePathConfigHelper; +import org.apache.rocketmq.store.stats.BrokerStatsManager; public class ScheduleMessageService extends ConfigManager { private static final InternalLogger log = InternalLoggerFactory.getLogger(LoggerName.STORE_LOGGER_NAME); @@ -58,14 +59,16 @@ public class ScheduleMessageService extends ConfigManager { private final ConcurrentMap offsetTable = new ConcurrentHashMap(32); private final DefaultMessageStore defaultMessageStore; + private final BrokerStatsManager brokerStatsManager; private final AtomicBoolean started = new AtomicBoolean(false); private Timer timer; private MessageStore writeMessageStore; private int maxDelayLevel; - public ScheduleMessageService(final DefaultMessageStore defaultMessageStore) { + public ScheduleMessageService(final DefaultMessageStore defaultMessageStore, final BrokerStatsManager brokerStatsManager) { this.defaultMessageStore = defaultMessageStore; this.writeMessageStore = defaultMessageStore; + this.brokerStatsManager = brokerStatsManager; } public static int queueId2DelayLevel(final int queueId) { @@ -316,6 +319,10 @@ public class ScheduleMessageService extends ConfigManager { if (putMessageResult != null && putMessageResult.getPutMessageStatus() == PutMessageStatus.PUT_OK) { + ScheduleMessageService.this.brokerStatsManager.incTopicPutNums(msgInner.getTopic(), putMessageResult.getAppendMessageResult().getMsgNum(), 1); + ScheduleMessageService.this.brokerStatsManager.incTopicPutSize(msgInner.getTopic(), + putMessageResult.getAppendMessageResult().getWroteBytes()); + ScheduleMessageService.this.brokerStatsManager.incBrokerPutNums(putMessageResult.getAppendMessageResult().getMsgNum()); continue; } else { // XXX: warn and notify me