Skip to content

Commit d6ea233

Browse files
committed
Fix feature_flag.evaluations metric count always being zero
The OTel SDK defaults to DELTA temporality for counters. The Datadog agent converts OTLP delta monotonic sums to rate metrics by dividing by the export interval (10s). Five evaluations in under 1s produce ~0.5, which rounds to zero in the points payload. Force CUMULATIVE temporality on the OtlpHttpMetricExporter so the agent receives an absolute count rather than a rate, making test_ffe_eval_metric_count reliable.
1 parent 18c0441 commit d6ea233

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

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

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.opentelemetry.api.metrics.Meter;
99
import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
1010
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
11+
import io.opentelemetry.sdk.metrics.export.AggregationTemporalitySelector;
1112
import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
1213
import java.io.Closeable;
1314
import java.time.Duration;
@@ -54,7 +55,10 @@ class FlagEvalMetrics implements Closeable {
5455
}
5556

5657
OtlpHttpMetricExporter exporter =
57-
OtlpHttpMetricExporter.builder().setEndpoint(endpoint).build();
58+
OtlpHttpMetricExporter.builder()
59+
.setEndpoint(endpoint)
60+
.setAggregationTemporalitySelector(AggregationTemporalitySelector.alwaysCumulative())
61+
.build();
5862

5963
PeriodicMetricReader reader =
6064
PeriodicMetricReader.builder(exporter).setInterval(EXPORT_INTERVAL).build();

0 commit comments

Comments
 (0)