Skip to content

Commit 4851f6a

Browse files
committed
fixup: apply changes
Signed-off-by: Simon Schrottner <[email protected]>
1 parent 3f109ba commit 4851f6a

File tree

182 files changed

+4702
-3914
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

182 files changed

+4702
-3914
lines changed

hooks/open-telemetry/src/main/java/dev/openfeature/contrib/hooks/otel/MetricHookOptions.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@
33
import dev.openfeature.sdk.ImmutableMetadata;
44
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
55
import io.opentelemetry.api.common.Attributes;
6-
import lombok.Builder;
7-
import lombok.Getter;
8-
96
import java.util.Collections;
107
import java.util.List;
118
import java.util.function.Function;
9+
import lombok.Builder;
10+
import lombok.Getter;
1211

1312
/**
1413
* OpenTelemetry hook options.
1514
*/
1615
@Builder
1716
@Getter
18-
@SuppressFBWarnings(value = {"EI_EXPOSE_REP"}, justification = "Dimension list can be mutable")
19-
17+
@SuppressFBWarnings(
18+
value = {"EI_EXPOSE_REP"},
19+
justification = "Dimension list can be mutable")
2020
public class MetricHookOptions {
2121

2222
/**

hooks/open-telemetry/src/main/java/dev/openfeature/contrib/hooks/otel/MetricsHook.java

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package dev.openfeature.contrib.hooks.otel;
22

3+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.REASON_KEY;
4+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.flagKeyAttributeKey;
5+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.providerNameAttributeKey;
6+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.variantAttributeKey;
7+
38
import dev.openfeature.sdk.EvaluationContext;
49
import dev.openfeature.sdk.FlagEvaluationDetails;
510
import dev.openfeature.sdk.Hook;
@@ -11,18 +16,12 @@
1116
import io.opentelemetry.api.metrics.LongCounter;
1217
import io.opentelemetry.api.metrics.LongUpDownCounter;
1318
import io.opentelemetry.api.metrics.Meter;
14-
import lombok.extern.slf4j.Slf4j;
15-
1619
import java.util.Collections;
1720
import java.util.List;
1821
import java.util.Map;
1922
import java.util.Optional;
2023
import java.util.function.Function;
21-
22-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.REASON_KEY;
23-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.flagKeyAttributeKey;
24-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.providerNameAttributeKey;
25-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.variantAttributeKey;
24+
import lombok.extern.slf4j.Slf4j;
2625

2726
/**
2827
* OpenTelemetry metric hook records metrics at different {@link Hook} stages.
@@ -58,9 +57,9 @@ public MetricsHook(final OpenTelemetry openTelemetry) {
5857
public MetricsHook(final OpenTelemetry openTelemetry, final MetricHookOptions options) {
5958
final Meter meter = openTelemetry.getMeter(METER_NAME);
6059

61-
activeFlagEvaluationsCounter =
62-
meter.upDownCounterBuilder(EVALUATION_ACTIVE_COUNT).setDescription("active flag evaluations counter")
63-
.build();
60+
activeFlagEvaluationsCounter = meter.upDownCounterBuilder(EVALUATION_ACTIVE_COUNT)
61+
.setDescription("active flag evaluations counter")
62+
.build();
6463

6564
evaluationRequestCounter = meter.counterBuilder(EVALUATION_REQUESTS_TOTAL)
6665
.setDescription("feature flag evaluation request counter")
@@ -81,13 +80,17 @@ public MetricsHook(final OpenTelemetry openTelemetry, final MetricHookOptions op
8180
extraDimensions = options.getExtraAttributes();
8281
}
8382

84-
8583
@Override
8684
public Optional<EvaluationContext> before(HookContext ctx, Map hints) {
8785
activeFlagEvaluationsCounter.add(+1, Attributes.of(flagKeyAttributeKey, ctx.getFlagKey()));
8886

89-
evaluationRequestCounter.add(+1, Attributes.of(flagKeyAttributeKey, ctx.getFlagKey(), providerNameAttributeKey,
90-
ctx.getProviderMetadata().getName()));
87+
evaluationRequestCounter.add(
88+
+1,
89+
Attributes.of(
90+
flagKeyAttributeKey,
91+
ctx.getFlagKey(),
92+
providerNameAttributeKey,
93+
ctx.getProviderMetadata().getName()));
9194
return Optional.empty();
9295
}
9396

@@ -96,7 +99,8 @@ public void after(HookContext ctx, FlagEvaluationDetails details, Map hints) {
9699
final AttributesBuilder attributesBuilder = Attributes.builder();
97100

98101
attributesBuilder.put(flagKeyAttributeKey, ctx.getFlagKey());
99-
attributesBuilder.put(providerNameAttributeKey, ctx.getProviderMetadata().getName());
102+
attributesBuilder.put(
103+
providerNameAttributeKey, ctx.getProviderMetadata().getName());
100104
attributesBuilder.putAll(extraDimensions);
101105

102106
if (details.getReason() != null) {
@@ -122,7 +126,8 @@ public void after(HookContext ctx, FlagEvaluationDetails details, Map hints) {
122126
public void error(HookContext ctx, Exception error, Map hints) {
123127
final AttributesBuilder attributesBuilder = Attributes.builder();
124128
attributesBuilder.put(flagKeyAttributeKey, ctx.getFlagKey());
125-
attributesBuilder.put(providerNameAttributeKey, ctx.getProviderMetadata().getName());
129+
attributesBuilder.put(
130+
providerNameAttributeKey, ctx.getProviderMetadata().getName());
126131
attributesBuilder.putAll(extraDimensions);
127132

128133
evaluationErrorCounter.add(+1, attributesBuilder.build());
@@ -136,8 +141,8 @@ public void finallyAfter(HookContext ctx, Map hints) {
136141
/**
137142
* A helper to derive attributes from {@link DimensionDescription}.
138143
*/
139-
private static Attributes attributesFromFlagMetadata(final ImmutableMetadata flagMetadata,
140-
final List<DimensionDescription> dimensionDescriptions) {
144+
private static Attributes attributesFromFlagMetadata(
145+
final ImmutableMetadata flagMetadata, final List<DimensionDescription> dimensionDescriptions) {
141146
final AttributesBuilder builder = Attributes.builder();
142147

143148
for (DimensionDescription dimension : dimensionDescriptions) {

hooks/open-telemetry/src/main/java/dev/openfeature/contrib/hooks/otel/OTelCommons.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package dev.openfeature.contrib.hooks.otel;
22

3-
import io.opentelemetry.api.common.AttributeKey;
4-
53
import static io.opentelemetry.semconv.incubating.FeatureFlagIncubatingAttributes.FEATURE_FLAG_KEY;
64
import static io.opentelemetry.semconv.incubating.FeatureFlagIncubatingAttributes.FEATURE_FLAG_PROVIDER_NAME;
75
import static io.opentelemetry.semconv.incubating.FeatureFlagIncubatingAttributes.FEATURE_FLAG_VARIANT;
86

7+
import io.opentelemetry.api.common.AttributeKey;
8+
99
class OTelCommons {
1010
// Define semantic conventions
1111
// Refer - https://opentelemetry.io/docs/specs/otel/logs/semantic_conventions/feature-flags/

hooks/open-telemetry/src/main/java/dev/openfeature/contrib/hooks/otel/TracesHook.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package dev.openfeature.contrib.hooks.otel;
22

3+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.EVENT_NAME;
4+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.flagKeyAttributeKey;
5+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.providerNameAttributeKey;
6+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.variantAttributeKey;
7+
38
import dev.openfeature.sdk.FlagEvaluationDetails;
49
import dev.openfeature.sdk.Hook;
510
import dev.openfeature.sdk.HookContext;
@@ -8,15 +13,9 @@
813
import io.opentelemetry.api.common.AttributesBuilder;
914
import io.opentelemetry.api.trace.Span;
1015
import io.opentelemetry.api.trace.StatusCode;
11-
1216
import java.util.Map;
1317
import java.util.function.Function;
1418

15-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.EVENT_NAME;
16-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.flagKeyAttributeKey;
17-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.providerNameAttributeKey;
18-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.variantAttributeKey;
19-
2019
/**
2120
* The OpenTelemetry hook provides a way to automatically add a feature flag evaluation to a span as a span event.
2221
* Refer to <a href="https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/semantic_conventions/feature-flags.md">OpenTelemetry</a>
@@ -63,7 +62,8 @@ public void after(HookContext ctx, FlagEvaluationDetails details, Map hints) {
6362
final AttributesBuilder attributesBuilder = Attributes.builder();
6463

6564
attributesBuilder.put(flagKeyAttributeKey, ctx.getFlagKey());
66-
attributesBuilder.put(providerNameAttributeKey, ctx.getProviderMetadata().getName());
65+
attributesBuilder.put(
66+
providerNameAttributeKey, ctx.getProviderMetadata().getName());
6767
attributesBuilder.put(variantAttributeKey, variant);
6868
attributesBuilder.putAll(extraAttributes);
6969

hooks/open-telemetry/src/main/java/dev/openfeature/contrib/hooks/otel/TracesHookOptions.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22

33
import dev.openfeature.sdk.ImmutableMetadata;
44
import io.opentelemetry.api.common.Attributes;
5+
import java.util.function.Function;
56
import lombok.Builder;
67
import lombok.Getter;
78

8-
import java.util.function.Function;
9-
109
/**
1110
* OpenTelemetry {@link TracesHook} options.
1211
*/

hooks/open-telemetry/src/test/java/dev/openfeature/contrib/hooks/otel/MetricsHookTest.java

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
package dev.openfeature.contrib.hooks.otel;
22

3+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.REASON_KEY;
4+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.flagKeyAttributeKey;
5+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.providerNameAttributeKey;
6+
import static dev.openfeature.contrib.hooks.otel.OTelCommons.variantAttributeKey;
7+
import static org.assertj.core.api.Assertions.assertThat;
8+
39
import dev.openfeature.sdk.FlagEvaluationDetails;
410
import dev.openfeature.sdk.FlagValueType;
511
import dev.openfeature.sdk.HookContext;
@@ -10,19 +16,12 @@
1016
import io.opentelemetry.sdk.metrics.data.LongPointData;
1117
import io.opentelemetry.sdk.metrics.data.MetricData;
1218
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
13-
import org.junit.jupiter.api.BeforeEach;
14-
import org.junit.jupiter.api.Test;
15-
1619
import java.util.ArrayList;
1720
import java.util.Arrays;
1821
import java.util.List;
1922
import java.util.Optional;
20-
21-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.REASON_KEY;
22-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.flagKeyAttributeKey;
23-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.providerNameAttributeKey;
24-
import static dev.openfeature.contrib.hooks.otel.OTelCommons.variantAttributeKey;
25-
import static org.assertj.core.api.Assertions.assertThat;
23+
import org.junit.jupiter.api.BeforeEach;
24+
import org.junit.jupiter.api.Test;
2625

2726
class MetricsHookTest {
2827
private final HookContext<String> commonHookContext = HookContext.<String>builder()
@@ -40,7 +39,6 @@ public void setup() {
4039
telemetryExtension = OpenTelemetryExtension.create();
4140
}
4241

43-
4442
@Test
4543
public void before_stage_validation() {
4644
// given
@@ -81,7 +79,8 @@ public void after_stage_validation() {
8179
assertThat(successMetric.getName()).isEqualTo("feature_flag.evaluation_success_total");
8280

8381
// Validate dimensions(attributes) setup by extracting the first point
84-
Optional<LongPointData> data = successMetric.getLongSumData().getPoints().stream().findFirst();
82+
Optional<LongPointData> data =
83+
successMetric.getLongSumData().getPoints().stream().findFirst();
8584
assertThat(data.isPresent()).isTrue();
8685

8786
final LongPointData longPointData = data.get();
@@ -94,17 +93,18 @@ public void after_stage_validation() {
9493
}
9594

9695
@Test
97-
public void after_stage_validation_of_custom_dimensions(){
96+
public void after_stage_validation_of_custom_dimensions() {
9897
// given
99-
final List<DimensionDescription> dimensionList = new ArrayList<>();
98+
final List<DimensionDescription> dimensionList = new ArrayList<>();
10099
dimensionList.add(new DimensionDescription("boolean", Boolean.class));
101100
dimensionList.add(new DimensionDescription("integer", Integer.class));
102101
dimensionList.add(new DimensionDescription("long", Long.class));
103102
dimensionList.add(new DimensionDescription("float", Float.class));
104103
dimensionList.add(new DimensionDescription("double", Double.class));
105104
dimensionList.add(new DimensionDescription("string", String.class));
106105

107-
final MetricsHook metricHook = new MetricsHook(telemetryExtension.getOpenTelemetry(),
106+
final MetricsHook metricHook = new MetricsHook(
107+
telemetryExtension.getOpenTelemetry(),
108108
MetricHookOptions.builder().setDimensions(dimensionList).build());
109109

110110
final ImmutableMetadata metadata = ImmutableMetadata.builder()
@@ -132,7 +132,8 @@ public void after_stage_validation_of_custom_dimensions(){
132132
assertThat(metrics).hasSize(1);
133133

134134
final MetricData metricData = metrics.get(0);
135-
final Optional<LongPointData> pointData = metricData.getLongSumData().getPoints().stream().findFirst();
135+
final Optional<LongPointData> pointData =
136+
metricData.getLongSumData().getPoints().stream().findFirst();
136137
assertThat(pointData).isPresent();
137138

138139
final LongPointData longPointData = pointData.get();
@@ -149,13 +150,12 @@ public void after_stage_validation_of_custom_dimensions(){
149150
@Test
150151
public void error_stage_validation() {
151152
// given
152-
final MetricsHook metricHook =
153-
new MetricsHook(telemetryExtension.getOpenTelemetry(),
154-
MetricHookOptions.builder()
155-
.extraAttributes(Attributes.builder()
156-
.put("scope", "app-a")
157-
.build())
158-
.build());
153+
final MetricsHook metricHook = new MetricsHook(
154+
telemetryExtension.getOpenTelemetry(),
155+
MetricHookOptions.builder()
156+
.extraAttributes(
157+
Attributes.builder().put("scope", "app-a").build())
158+
.build());
159159

160160
final Exception exception = new Exception("some_exception");
161161

@@ -170,7 +170,8 @@ public void error_stage_validation() {
170170
assertThat(successMetric.getName()).isEqualTo("feature_flag.evaluation_error_total");
171171

172172
// Validate dimensions(attributes) setup by extracting the first point
173-
Optional<LongPointData> data = successMetric.getLongSumData().getPoints().stream().findFirst();
173+
Optional<LongPointData> data =
174+
successMetric.getLongSumData().getPoints().stream().findFirst();
174175
assertThat(data.isPresent()).isTrue();
175176

176177
final LongPointData longPointData = data.get();
@@ -181,7 +182,6 @@ public void error_stage_validation() {
181182
assertThat(attributes.get(AttributeKey.stringKey("scope"))).isEqualTo("app-a");
182183
}
183184

184-
185185
@Test
186186
public void finally_stage_validation() {
187187
// given
@@ -198,7 +198,8 @@ public void finally_stage_validation() {
198198
assertThat(successMetric.getName()).isEqualTo("feature_flag.evaluation_active_count");
199199

200200
// Validate dimensions(attributes) setup by extracting the first point
201-
Optional<LongPointData> data = successMetric.getLongSumData().getPoints().stream().findFirst();
201+
Optional<LongPointData> data =
202+
successMetric.getLongSumData().getPoints().stream().findFirst();
202203
assertThat(data.isPresent()).isTrue();
203204

204205
final LongPointData longPointData = data.get();
@@ -208,7 +209,7 @@ public void finally_stage_validation() {
208209
}
209210

210211
@Test
211-
public void hook_option_validation(){
212+
public void hook_option_validation() {
212213
// given
213214
MetricHookOptions hookOptions = MetricHookOptions.builder()
214215
.attributeSetter(metadata -> Attributes.builder()
@@ -219,10 +220,7 @@ public void hook_option_validation(){
219220
.put("double", metadata.getDouble("double"))
220221
.put("string", metadata.getString("string"))
221222
.build())
222-
.extraAttributes(
223-
Attributes.builder()
224-
.put("scope", "value")
225-
.build())
223+
.extraAttributes(Attributes.builder().put("scope", "value").build())
226224
.build();
227225

228226
final MetricsHook metricHook = new MetricsHook(telemetryExtension.getOpenTelemetry(), hookOptions);
@@ -252,7 +250,8 @@ public void hook_option_validation(){
252250
assertThat(metrics).hasSize(1);
253251

254252
final MetricData metricData = metrics.get(0);
255-
final Optional<LongPointData> pointData = metricData.getLongSumData().getPoints().stream().findFirst();
253+
final Optional<LongPointData> pointData =
254+
metricData.getLongSumData().getPoints().stream().findFirst();
256255
assertThat(pointData).isPresent();
257256

258257
final LongPointData longPointData = pointData.get();
@@ -266,4 +265,4 @@ public void hook_option_validation(){
266265
assertThat(attributes.get(AttributeKey.booleanKey("boolean"))).isEqualTo(true);
267266
assertThat(attributes.get(AttributeKey.stringKey("scope"))).isEqualTo("value");
268267
}
269-
}
268+
}

0 commit comments

Comments
 (0)