Skip to content

Commit 9e2445e

Browse files
authored
[ISSUE #9589] Optimize broker metrics initialization (#9598)
1 parent 6d4fb83 commit 9e2445e

2 files changed

Lines changed: 103 additions & 3 deletions

File tree

broker/src/main/java/org/apache/rocketmq/broker/metrics/BrokerMetricsManager.java

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,10 @@ private void registerMetricsView(SdkMeterProviderBuilder providerBuilder) {
473473
}
474474

475475
private void initStatsMetrics() {
476+
if (!brokerConfig.isEnableStatsMetrics()) {
477+
return;
478+
}
479+
476480
processorWatermark = brokerMeter.gaugeBuilder(GAUGE_PROCESSOR_WATERMARK)
477481
.setDescription("Request processor watermark")
478482
.ofLongs()
@@ -508,6 +512,10 @@ private void initStatsMetrics() {
508512
}
509513

510514
private void initRequestMetrics() {
515+
if (!brokerConfig.isEnableRequestMetrics()) {
516+
return;
517+
}
518+
511519
messagesInTotal = brokerMeter.counterBuilder(COUNTER_MESSAGES_IN_TOTAL)
512520
.setDescription("Total number of incoming messages")
513521
.build();
@@ -543,6 +551,10 @@ private void initRequestMetrics() {
543551
}
544552

545553
private void initConnectionMetrics() {
554+
if (!brokerConfig.isEnableConnectionMetrics()) {
555+
return;
556+
}
557+
546558
producerConnection = brokerMeter.gaugeBuilder(GAUGE_PRODUCER_CONNECTIONS)
547559
.setDescription("Producer connections")
548560
.ofLongs()
@@ -599,6 +611,10 @@ private void initConnectionMetrics() {
599611
}
600612

601613
private void initLagAndDlqMetrics() {
614+
if (!brokerConfig.isEnableLagAndDlqMetrics()) {
615+
return;
616+
}
617+
602618
consumerLagMessages = brokerMeter.gaugeBuilder(GAUGE_CONSUMER_LAG_MESSAGES)
603619
.setDescription("Consumer lag messages")
604620
.ofLongs()
@@ -649,6 +665,10 @@ private void initLagAndDlqMetrics() {
649665
}
650666

651667
private void initTransactionMetrics() {
668+
if (!brokerController.getBrokerConfig().isEnableTransactionMetrics()) {
669+
return;
670+
}
671+
652672
commitMessagesTotal = brokerMeter.counterBuilder(COUNTER_COMMIT_MESSAGES_TOTAL)
653673
.setDescription("Total number of commit messages")
654674
.build();
@@ -677,9 +697,15 @@ private void initTransactionMetrics() {
677697
});
678698
}
679699
private void initOtherMetrics() {
680-
RemotingMetricsManager.initMetrics(brokerMeter, BrokerMetricsManager::newAttributesBuilder);
681-
messageStore.initMetrics(brokerMeter, BrokerMetricsManager::newAttributesBuilder);
682-
PopMetricsManager.initMetrics(brokerMeter, brokerController, BrokerMetricsManager::newAttributesBuilder);
700+
if (brokerConfig.isEnableRemotingMetrics()) {
701+
RemotingMetricsManager.initMetrics(brokerMeter, BrokerMetricsManager::newAttributesBuilder);
702+
}
703+
if (brokerConfig.isEnableMessageStoreMetrics()) {
704+
messageStore.initMetrics(brokerMeter, BrokerMetricsManager::newAttributesBuilder);
705+
}
706+
if (brokerConfig.isEnablePopMetrics()) {
707+
PopMetricsManager.initMetrics(brokerMeter, brokerController, BrokerMetricsManager::newAttributesBuilder);
708+
}
683709
}
684710

685711
public void shutdown() {

common/src/main/java/org/apache/rocketmq/common/BrokerConfig.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,15 @@ public class BrokerConfig extends BrokerIdentity {
388388

389389
private boolean metricsInDelta = false;
390390

391+
private boolean enableRemotingMetrics = true;
392+
private boolean enableMessageStoreMetrics = true;
393+
private boolean enablePopMetrics = true;
394+
private boolean enableConnectionMetrics = true;
395+
private boolean enableTransactionMetrics = true;
396+
private boolean enableStatsMetrics = true;
397+
private boolean enableRequestMetrics = true;
398+
private boolean enableLagAndDlqMetrics = true;
399+
391400
private long channelExpiredTimeout = 1000 * 120;
392401
private long subscriptionExpiredTimeout = 1000 * 60 * 10;
393402

@@ -1792,6 +1801,71 @@ public void setMetricsPromExporterHost(String metricsPromExporterHost) {
17921801
this.metricsPromExporterHost = metricsPromExporterHost;
17931802
}
17941803

1804+
public boolean isEnablePopMetrics() {
1805+
return enablePopMetrics;
1806+
}
1807+
1808+
public void setEnablePopMetrics(boolean enablePopMetrics) {
1809+
this.enablePopMetrics = enablePopMetrics;
1810+
}
1811+
1812+
public boolean isEnableConnectionMetrics() {
1813+
return enableConnectionMetrics;
1814+
}
1815+
1816+
public void setEnableConnectionMetrics(boolean enableConnectionMetrics) {
1817+
this.enableConnectionMetrics = enableConnectionMetrics;
1818+
}
1819+
1820+
public boolean isEnableTransactionMetrics() {
1821+
return enableTransactionMetrics;
1822+
}
1823+
1824+
public void setEnableTransactionMetrics(boolean enableTransactionMetrics) {
1825+
this.enableTransactionMetrics = enableTransactionMetrics;
1826+
}
1827+
1828+
public boolean isEnableStatsMetrics() {
1829+
return enableStatsMetrics;
1830+
}
1831+
1832+
public void setEnableStatsMetrics(boolean enableStatsMetrics) {
1833+
this.enableStatsMetrics = enableStatsMetrics;
1834+
}
1835+
1836+
public boolean isEnableRequestMetrics() {
1837+
return enableRequestMetrics;
1838+
}
1839+
1840+
public void setEnableRequestMetrics(boolean enableRequestMetrics) {
1841+
this.enableRequestMetrics = enableRequestMetrics;
1842+
}
1843+
1844+
1845+
public boolean isEnableLagAndDlqMetrics() {
1846+
return enableLagAndDlqMetrics;
1847+
}
1848+
1849+
public void setEnableLagAndDlqMetrics(boolean enableLagAndDlqMetrics) {
1850+
this.enableLagAndDlqMetrics = enableLagAndDlqMetrics;
1851+
}
1852+
1853+
public boolean isEnableRemotingMetrics() {
1854+
return enableRemotingMetrics;
1855+
}
1856+
1857+
public void setEnableRemotingMetrics(boolean enableRemotingMetrics) {
1858+
this.enableRemotingMetrics = enableRemotingMetrics;
1859+
}
1860+
1861+
public boolean isEnableMessageStoreMetrics() {
1862+
return enableMessageStoreMetrics;
1863+
}
1864+
1865+
public void setEnableMessageStoreMetrics(boolean enableMessageStoreMetrics) {
1866+
this.enableMessageStoreMetrics = enableMessageStoreMetrics;
1867+
}
1868+
17951869
public int getTransactionOpMsgMaxSize() {
17961870
return transactionOpMsgMaxSize;
17971871
}

0 commit comments

Comments
 (0)