Skip to content
This repository was archived by the owner on Dec 19, 2023. It is now read-only.

Commit a94cf30

Browse files
authored
Merge pull request #240 from jmccaull/enable_full_tracing_metrics
Added option to enable full tracing metrics with tracing disabled and…
2 parents 35e78dd + 7b06003 commit a94cf30

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

graphql-spring-boot-autoconfigure/src/main/java/com/oembedler/moon/graphql/boot/GraphQLInstrumentationAutoConfiguration.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,21 @@ public class GraphQLInstrumentationAutoConfiguration {
3333
@Value("${graphql.servlet.maxQueryDepth:#{null}}")
3434
private Integer maxQueryDepth;
3535

36-
@Value("${graphql.servlet.tracing-enabled:#{false}}")
37-
private Boolean tracingEnabled;
36+
@Value("${graphql.servlet.tracing-enabled:'false'}")
37+
private String tracingEnabled;
3838

3939
@Bean
4040
@ConditionalOnMissingBean({TracingInstrumentation.class, MetricsInstrumentation.class})
41-
@ConditionalOnProperty(value = "graphql.servlet.tracing-enabled", havingValue = "true")
41+
@ConditionalOnExpression("${graphql.servlet.tracing-enabled:'false'}.equals('metrics-only')"
42+
+ "|| ${graphql.servlet.tracing-enabled:'false'}.equals(true)")
4243
public TracingInstrumentation tracingInstrumentation() {
4344
return new TracingInstrumentation();
4445
}
4546

4647
@Bean
4748
@ConditionalOnMissingBean
48-
@ConditionalOnExpression("${graphql.servlet.actuator-metrics:false} && !${graphql.servlet.tracing-enabled:false}")
49+
@ConditionalOnExpression("${graphql.servlet.actuator-metrics:false}"
50+
+ "&& ${graphql.servlet.tracing-enabled:'false'}.toString().equals('false')")
4951
public TracingNoResolversInstrumentation tracingNoResolversInstrumentation() {
5052
return new TracingNoResolversInstrumentation();
5153
}
@@ -69,7 +71,7 @@ public MaxQueryDepthInstrumentation maxQueryDepthInstrumentation() {
6971
@ConditionalOnBean({MeterRegistry.class, TracingInstrumentation.class})
7072
@ConditionalOnMissingBean
7173
public MetricsInstrumentation metricsInstrumentation(MeterRegistry meterRegistry) {
72-
return new MetricsInstrumentation(meterRegistry, tracingEnabled);
74+
return new MetricsInstrumentation(meterRegistry, Boolean.TRUE.toString().equals(tracingEnabled));
7375
}
7476

7577
}

graphql-spring-boot-autoconfigure/src/test/java/com/oembedler/moon/graphql/boot/test/instrumentation/GraphQLInstrumentationAutoConfigurationTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ public void tracingInstrumentationDisabledAndMetricsEnabled() {
8888
Assert.assertNotNull(this.getContext().getBean(TracingNoResolversInstrumentation.class));
8989
}
9090

91+
@Test
92+
public void tracingMetricsWithTracingDisabled() {
93+
load(DefaultConfiguration.class, "graphql.servlet.tracing-enabled='metrics-only'", "graphql.servlet.actuator-metrics=true");
94+
95+
Assert.assertNotNull(this.getContext().getBean("metricsInstrumentation"));
96+
Assert.assertNotNull(this.getContext().getBean("tracingInstrumentation"));
97+
}
98+
9199
@Test
92100
public void actuatorMetricsEnabled() {
93101
load(DefaultConfiguration.class, "graphql.servlet.actuator-metrics=true");

0 commit comments

Comments
 (0)