Skip to content

Commit 3793fc2

Browse files
committed
easier to read
1 parent 3580b0d commit 3793fc2

File tree

2 files changed

+117
-35
lines changed
  • instrumentation/graphql-java
    • graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0
    • graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0

2 files changed

+117
-35
lines changed

instrumentation/graphql-java/graphql-java-12.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v12_0/GraphqlSingletons.java

Lines changed: 50 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,26 @@
99

1010
import graphql.execution.instrumentation.Instrumentation;
1111
import io.opentelemetry.api.GlobalOpenTelemetry;
12+
import io.opentelemetry.api.OpenTelemetry;
1213
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
1314
import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil;
1415
import io.opentelemetry.instrumentation.graphql.internal.InstrumentationUtil;
1516
import io.opentelemetry.instrumentation.graphql.v12_0.GraphQLTelemetry;
17+
import javax.annotation.Nullable;
1618

1719
public final class GraphqlSingletons {
1820

1921
private static final GraphQLTelemetry TELEMETRY;
2022

2123
static {
22-
DeclarativeConfigProperties graphqlConfig =
23-
DeclarativeConfigUtil.getStructured(GlobalOpenTelemetry.get(), "java", empty())
24-
.getStructured("graphql", empty());
25-
26-
boolean captureQuery = graphqlConfig.getBoolean("capture_query", true);
27-
boolean sanitizeQuery =
28-
graphqlConfig.getStructured("query_sanitizer", empty()).getBoolean("enabled", true);
29-
boolean addOperationNameToSpanName =
30-
graphqlConfig
31-
.getStructured("add_operation_name_to_span_name", empty())
32-
.getBoolean("enabled", false);
24+
OpenTelemetry openTelemetry = GlobalOpenTelemetry.get();
25+
Configuration config = new Configuration(openTelemetry);
3326

3427
TELEMETRY =
35-
GraphQLTelemetry.builder(GlobalOpenTelemetry.get())
36-
.setCaptureQuery(captureQuery)
37-
.setSanitizeQuery(sanitizeQuery)
38-
.setAddOperationNameToSpanName(addOperationNameToSpanName)
28+
GraphQLTelemetry.builder(openTelemetry)
29+
.setCaptureQuery(config.captureQuery(true))
30+
.setSanitizeQuery(config.querySanitizerEnabled(true))
31+
.setAddOperationNameToSpanName(config.addOperationNameToSpanName(false))
3932
.build();
4033
}
4134

@@ -45,4 +38,46 @@ public static Instrumentation addInstrumentation(Instrumentation instrumentation
4538
Instrumentation ourInstrumentation = TELEMETRY.newInstrumentation();
4639
return InstrumentationUtil.addInstrumentation(instrumentation, ourInstrumentation);
4740
}
41+
42+
// instrumentation/development:
43+
// java:
44+
// graphql:
45+
// capture_query: [boolean]
46+
// query_sanitizer:
47+
// enabled: [boolean]
48+
// add_operation_name_to_span_name:
49+
// enabled: [boolean]
50+
private static final class Configuration {
51+
52+
@Nullable private final Boolean captureQuery;
53+
@Nullable private final Boolean querySanitizerEnabled;
54+
@Nullable private final Boolean addOperationNameToSpanName;
55+
56+
Configuration(OpenTelemetry openTelemetry) {
57+
58+
DeclarativeConfigProperties graphqlConfig =
59+
DeclarativeConfigUtil.getStructured(openTelemetry, "java", empty())
60+
.getStructured("graphql", empty());
61+
62+
captureQuery = graphqlConfig.getBoolean("capture_query");
63+
querySanitizerEnabled =
64+
graphqlConfig.getStructured("query_sanitizer", empty()).getBoolean("enabled");
65+
addOperationNameToSpanName =
66+
graphqlConfig
67+
.getStructured("add_operation_name_to_span_name", empty())
68+
.getBoolean("enabled");
69+
}
70+
71+
boolean captureQuery(boolean defaultValue) {
72+
return captureQuery != null ? captureQuery : defaultValue;
73+
}
74+
75+
boolean querySanitizerEnabled(boolean defaultValue) {
76+
return querySanitizerEnabled != null ? querySanitizerEnabled : defaultValue;
77+
}
78+
79+
boolean addOperationNameToSpanName(boolean defaultValue) {
80+
return addOperationNameToSpanName != null ? addOperationNameToSpanName : defaultValue;
81+
}
82+
}
4883
}

instrumentation/graphql-java/graphql-java-20.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/graphql/v20_0/GraphqlSingletons.java

Lines changed: 67 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,27 @@
99

1010
import graphql.execution.instrumentation.Instrumentation;
1111
import io.opentelemetry.api.GlobalOpenTelemetry;
12+
import io.opentelemetry.api.OpenTelemetry;
1213
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
1314
import io.opentelemetry.instrumentation.api.incubator.config.internal.DeclarativeConfigUtil;
1415
import io.opentelemetry.instrumentation.graphql.internal.InstrumentationUtil;
1516
import io.opentelemetry.instrumentation.graphql.v20_0.GraphQLTelemetry;
17+
import javax.annotation.Nullable;
1618

1719
public final class GraphqlSingletons {
1820

1921
private static final GraphQLTelemetry TELEMETRY;
2022

2123
static {
22-
DeclarativeConfigProperties graphqlConfig =
23-
DeclarativeConfigUtil.getStructured(GlobalOpenTelemetry.get(), "java", empty())
24-
.getStructured("graphql", empty());
25-
26-
boolean captureQuery = graphqlConfig.getBoolean("capture_query", true);
27-
boolean sanitizeQuery =
28-
graphqlConfig.getStructured("query_sanitizer", empty()).getBoolean("enabled", true);
29-
boolean dataFetcherEnabled =
30-
graphqlConfig.getStructured("data_fetcher", empty()).getBoolean("enabled", false);
31-
boolean trivialDataFetcherEnabled =
32-
graphqlConfig.getStructured("trivial_data_fetcher", empty()).getBoolean("enabled", false);
33-
boolean addOperationNameToSpanName =
34-
graphqlConfig
35-
.getStructured("add_operation_name_to_span_name", empty())
36-
.getBoolean("enabled", false);
24+
Configuration config = new Configuration(GlobalOpenTelemetry.get());
3725

3826
TELEMETRY =
3927
GraphQLTelemetry.builder(GlobalOpenTelemetry.get())
40-
.setCaptureQuery(captureQuery)
41-
.setSanitizeQuery(sanitizeQuery)
42-
.setDataFetcherInstrumentationEnabled(dataFetcherEnabled)
43-
.setTrivialDataFetcherInstrumentationEnabled(trivialDataFetcherEnabled)
44-
.setAddOperationNameToSpanName(addOperationNameToSpanName)
28+
.setCaptureQuery(config.captureQuery(true))
29+
.setSanitizeQuery(config.sanitizeQuery(true))
30+
.setDataFetcherInstrumentationEnabled(config.dataFetcherEnabled(false))
31+
.setTrivialDataFetcherInstrumentationEnabled(config.trivialDataFetcherEnabled(false))
32+
.setAddOperationNameToSpanName(config.addOperationNameToSpanName(false))
4533
.build();
4634
}
4735

@@ -51,4 +39,63 @@ public static Instrumentation addInstrumentation(Instrumentation instrumentation
5139
Instrumentation ourInstrumentation = TELEMETRY.newInstrumentation();
5240
return InstrumentationUtil.addInstrumentation(instrumentation, ourInstrumentation);
5341
}
42+
43+
// instrumentation/development:
44+
// java:
45+
// graphql:
46+
// capture_query: [boolean]
47+
// query_sanitizer:
48+
// enabled: [boolean]
49+
// data_fetcher:
50+
// enabled: [boolean]
51+
// trivial_data_fetcher:
52+
// enabled: [boolean]
53+
// add_operation_name_to_span_name:
54+
// enabled: [boolean]
55+
private static final class Configuration {
56+
57+
@Nullable private final Boolean captureQuery;
58+
@Nullable private final Boolean sanitizeQuery;
59+
@Nullable private final Boolean dataFetcherEnabled;
60+
@Nullable private final Boolean trivialDataFetcherEnabled;
61+
@Nullable private final Boolean addOperationNameToSpanName;
62+
63+
Configuration(OpenTelemetry openTelemetry) {
64+
DeclarativeConfigProperties graphqlConfig =
65+
DeclarativeConfigUtil.getStructured(openTelemetry, "java", empty())
66+
.getStructured("graphql", empty());
67+
68+
this.captureQuery = graphqlConfig.getBoolean("capture_query");
69+
this.sanitizeQuery =
70+
graphqlConfig.getStructured("query_sanitizer", empty()).getBoolean("enabled");
71+
this.dataFetcherEnabled =
72+
graphqlConfig.getStructured("data_fetcher", empty()).getBoolean("enabled");
73+
this.trivialDataFetcherEnabled =
74+
graphqlConfig.getStructured("trivial_data_fetcher", empty()).getBoolean("enabled");
75+
this.addOperationNameToSpanName =
76+
graphqlConfig
77+
.getStructured("add_operation_name_to_span_name", empty())
78+
.getBoolean("enabled");
79+
}
80+
81+
boolean captureQuery(boolean defaultValue) {
82+
return captureQuery != null ? captureQuery : defaultValue;
83+
}
84+
85+
boolean sanitizeQuery(boolean defaultValue) {
86+
return sanitizeQuery != null ? sanitizeQuery : defaultValue;
87+
}
88+
89+
boolean dataFetcherEnabled(boolean defaultValue) {
90+
return dataFetcherEnabled != null ? dataFetcherEnabled : defaultValue;
91+
}
92+
93+
boolean trivialDataFetcherEnabled(boolean defaultValue) {
94+
return trivialDataFetcherEnabled != null ? trivialDataFetcherEnabled : defaultValue;
95+
}
96+
97+
boolean addOperationNameToSpanName(boolean defaultValue) {
98+
return addOperationNameToSpanName != null ? addOperationNameToSpanName : defaultValue;
99+
}
100+
}
54101
}

0 commit comments

Comments
 (0)