Skip to content

Commit 6b33269

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 e7fcc47 commit 6b33269

File tree

1 file changed

+5
-1
lines changed
  • products/feature-flagging/feature-flagging-api/src/main/java/datadog/trace/api/openfeature

1 file changed

+5
-1
lines changed

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
@@ -9,6 +9,7 @@
99
import io.opentelemetry.api.metrics.Meter;
1010
import io.opentelemetry.exporter.otlp.http.metrics.OtlpHttpMetricExporter;
1111
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
12+
import io.opentelemetry.sdk.metrics.export.AggregationTemporalitySelector;
1213
import io.opentelemetry.sdk.metrics.export.PeriodicMetricReader;
1314
import java.io.Closeable;
1415
import java.time.Duration;
@@ -59,7 +60,10 @@ class FlagEvalMetrics implements Closeable {
5960
}
6061

6162
OtlpHttpMetricExporter exporter =
62-
OtlpHttpMetricExporter.builder().setEndpoint(endpoint).build();
63+
OtlpHttpMetricExporter.builder()
64+
.setEndpoint(endpoint)
65+
.setAggregationTemporalitySelector(AggregationTemporalitySelector.alwaysCumulative())
66+
.build();
6367

6468
PeriodicMetricReader reader =
6569
PeriodicMetricReader.builder(exporter).setInterval(EXPORT_INTERVAL).build();

0 commit comments

Comments
 (0)