Skip to content

Commit 9be3812

Browse files
committed
Address code review feedback for eval metrics
- Add explicit null guard for details in FlagEvalHook.finallyAfter() - Add OTEL_EXPORTER_OTLP_ENDPOINT generic env var fallback with /v1/metrics path appended (per OTel spec fallback chain) - Add comments clarifying signal-specific vs generic endpoint behavior
1 parent 9435c54 commit 9be3812

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

products/feature-flagging/feature-flagging-api/src/main/java/datadog/trace/api/openfeature/FlagEvalHook.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class FlagEvalHook implements Hook<Object> {
1717
@Override
1818
public void finallyAfter(
1919
HookContext<Object> ctx, FlagEvaluationDetails<Object> details, Map<String, Object> hints) {
20-
if (metrics == null) {
20+
if (metrics == null || details == null) {
2121
return;
2222
}
2323
try {

products/feature-flagging/feature-flagging-api/src/main/java/datadog/trace/api/openfeature/FlagEvalMetrics.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ class FlagEvalMetrics implements Closeable {
2121
private static final Duration EXPORT_INTERVAL = Duration.ofSeconds(10);
2222

2323
private static final String DEFAULT_ENDPOINT = "http://localhost:4318/v1/metrics";
24+
// Signal-specific env var (used as-is, must include /v1/metrics path)
2425
private static final String ENDPOINT_ENV = "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT";
26+
// Generic env var fallback (base URL, /v1/metrics is appended)
27+
private static final String ENDPOINT_GENERIC_ENV = "OTEL_EXPORTER_OTLP_ENDPOINT";
2528

2629
private static final AttributeKey<String> ATTR_FLAG_KEY =
2730
AttributeKey.stringKey("feature_flag.key");
@@ -40,7 +43,12 @@ class FlagEvalMetrics implements Closeable {
4043
try {
4144
String endpoint = System.getenv(ENDPOINT_ENV);
4245
if (endpoint == null || endpoint.isEmpty()) {
43-
endpoint = DEFAULT_ENDPOINT;
46+
String base = System.getenv(ENDPOINT_GENERIC_ENV);
47+
if (base != null && !base.isEmpty()) {
48+
endpoint = base.endsWith("/") ? base + "v1/metrics" : base + "/v1/metrics";
49+
} else {
50+
endpoint = DEFAULT_ENDPOINT;
51+
}
4452
}
4553

4654
OtlpHttpMetricExporter exporter =

0 commit comments

Comments
 (0)