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