Skip to content

Commit

Permalink
Disable GraphQL metrics by default
Browse files Browse the repository at this point in the history
(cherry picked from commit 2df73cf)
  • Loading branch information
jmartisk authored and gsmet committed Jun 3, 2021
1 parent 3a88e59 commit 7f90bfe
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public class SmallRyeGraphQLConfig {
String rootPath;

/**
* Enable metrics. By default this will be enabled if the metrics extension is added.
* Enable metrics. By default this is false. If set to true, a metrics extension is required.
*/
@ConfigItem(name = "metrics.enabled")
Optional<Boolean> metricsEnabled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,8 @@ void activateMetrics(Capabilities capabilities,
metricsCapability.isPresent(),
"quarkus-smallrye-metrics",
"metrics",
"quarkus.smallrye-graphql.metrics.enabled");
"quarkus.smallrye-graphql.metrics.enabled",
false);
if (activate) {
if (metricsCapability.isPresent() && metricsCapability.get().metricsSupported(MetricsFactory.MP_METRICS)) {
unremovableBeans.produce(UnremovableBeanBuildItem.beanClassNames("io.smallrye.metrics.MetricRegistries"));
Expand All @@ -424,7 +425,8 @@ void activateTracing(Capabilities capabilities,
graphQLConfig.tracingEnabled,
"quarkus-smallrye-opentracing",
Capability.OPENTRACING,
"quarkus.smallrye-graphql.tracing.enabled");
"quarkus.smallrye-graphql.tracing.enabled",
true);
if (activate) {
systemProperties.produce(new SystemPropertyBuildItem(ConfigKey.ENABLE_TRACING, TRUE));
} else {
Expand All @@ -441,7 +443,8 @@ void activateValidation(Capabilities capabilities,
graphQLConfig.validationEnabled,
"quarkus-hibernate-validator",
Capability.HIBERNATE_VALIDATOR,
"quarkus.smallrye-graphql.validation.enabled");
"quarkus.smallrye-graphql.validation.enabled",
true);
if (activate) {
systemProperties.produce(new SystemPropertyBuildItem(ConfigKey.ENABLE_VALIDATION, TRUE));
} else {
Expand All @@ -462,18 +465,20 @@ private boolean shouldActivateService(Capabilities capabilities,
Optional<Boolean> serviceEnabled,
String linkedExtensionName,
String linkedCapability,
String configKey) {
String configKey,
boolean activateByDefaultIfCapabilityIsPresent) {

return shouldActivateService(capabilities, serviceEnabled, capabilities.isPresent(linkedCapability),
linkedExtensionName, linkedCapability, configKey);
linkedExtensionName, linkedCapability, configKey, activateByDefaultIfCapabilityIsPresent);
}

private boolean shouldActivateService(Capabilities capabilities,
Optional<Boolean> serviceEnabled,
boolean linkedCapabilityIsPresent,
String linkedExtensionName,
String linkedCapabilityName,
String configKey) {
String configKey,
boolean activateByDefaultIfCapabilityIsPresent) {

if (serviceEnabled.isPresent()) {
// The user explicitly asked from something
Expand All @@ -485,7 +490,7 @@ private boolean shouldActivateService(Capabilities capabilities,
return (isEnabled && linkedCapabilityIsPresent);
} else {
// Auto dis/enable
return linkedCapabilityIsPresent;
return linkedCapabilityIsPresent && activateByDefaultIfCapabilityIsPresent;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,14 @@
import org.eclipse.microprofile.metrics.annotation.RegistryType;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkus.test.QuarkusUnitTest;

/**
* Verify that quarkus.smallrye-graphql.metrics.enabled=false turn off GraphQL metrics even
* Verify that GraphQL metrics are disabled by default even
* if the SmallRye Metrics extension is present.
*/
public class MetricsDisabledTest {
Expand All @@ -27,7 +26,6 @@ public class MetricsDisabledTest {
static QuarkusUnitTest test = new QuarkusUnitTest()
.setArchiveProducer(() -> ShrinkWrap.create(JavaArchive.class)
.addClasses(TestResource.class, TestPojo.class, TestRandom.class, TestGenericsPojo.class)
.addAsResource(new StringAsset("quarkus.smallrye-graphql.metrics.enabled=false"), "application.properties")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml"));

@Inject
Expand Down

0 comments on commit 7f90bfe

Please sign in to comment.