fix: not initialize MetricsReporter if not support prometheus (#14225)
* fix: not initialize if not support prometheus * add method isImportPrometheus test --------- Co-authored-by: yuanhongbo <yuanhongbo@cai-inc.com>
This commit is contained in:
parent
cc95b52dfb
commit
b12b23cbf0
|
|
@ -382,6 +382,9 @@ public class DefaultApplicationDeployer extends AbstractDeployer<ApplicationMode
|
||||||
Optional<MetricsConfig> configOptional = configManager.getMetrics();
|
Optional<MetricsConfig> configOptional = configManager.getMetrics();
|
||||||
// If no specific metrics type is configured and there is no Prometheus dependency in the dependencies.
|
// If no specific metrics type is configured and there is no Prometheus dependency in the dependencies.
|
||||||
MetricsConfig metricsConfig = configOptional.orElse(new MetricsConfig(applicationModel));
|
MetricsConfig metricsConfig = configOptional.orElse(new MetricsConfig(applicationModel));
|
||||||
|
if (PROTOCOL_PROMETHEUS.equals(metricsConfig.getProtocol()) && !isSupportPrometheus()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (StringUtils.isBlank(metricsConfig.getProtocol())) {
|
if (StringUtils.isBlank(metricsConfig.getProtocol())) {
|
||||||
metricsConfig.setProtocol(isSupportPrometheus() ? PROTOCOL_PROMETHEUS : PROTOCOL_DEFAULT);
|
metricsConfig.setProtocol(isSupportPrometheus() ? PROTOCOL_PROMETHEUS : PROTOCOL_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,13 @@
|
||||||
package org.apache.dubbo.config.deploy;
|
package org.apache.dubbo.config.deploy;
|
||||||
|
|
||||||
import org.apache.dubbo.common.utils.Assert;
|
import org.apache.dubbo.common.utils.Assert;
|
||||||
|
import org.apache.dubbo.config.MetricsConfig;
|
||||||
import org.apache.dubbo.rpc.model.ApplicationModel;
|
import org.apache.dubbo.rpc.model.ApplicationModel;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.apache.dubbo.common.constants.MetricsConstants.PROTOCOL_PROMETHEUS;
|
||||||
|
|
||||||
class DefaultApplicationDeployerTest {
|
class DefaultApplicationDeployerTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -29,4 +32,13 @@ class DefaultApplicationDeployerTest {
|
||||||
new DefaultApplicationDeployer(ApplicationModel.defaultModel()).isSupportPrometheus();
|
new DefaultApplicationDeployer(ApplicationModel.defaultModel()).isSupportPrometheus();
|
||||||
Assert.assertTrue(supportPrometheus, "DefaultApplicationDeployer.isSupportPrometheus() should return true");
|
Assert.assertTrue(supportPrometheus, "DefaultApplicationDeployer.isSupportPrometheus() should return true");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void isImportPrometheus() {
|
||||||
|
MetricsConfig metricsConfig = new MetricsConfig();
|
||||||
|
metricsConfig.setProtocol("prometheus");
|
||||||
|
boolean importPrometheus = PROTOCOL_PROMETHEUS.equals(metricsConfig.getProtocol())
|
||||||
|
&& !DefaultApplicationDeployer.isSupportPrometheus();
|
||||||
|
Assert.assertTrue(!importPrometheus, " should return false");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue