diff --git a/storage/remote/otlptranslator/prometheusremotewrite/metrics_to_prw.go b/storage/remote/otlptranslator/prometheusremotewrite/metrics_to_prw.go index 90f84ef2f1..79d127bb80 100644 --- a/storage/remote/otlptranslator/prometheusremotewrite/metrics_to_prw.go +++ b/storage/remote/otlptranslator/prometheusremotewrite/metrics_to_prw.go @@ -99,8 +99,11 @@ func (c *PrometheusConverter) FromMetrics(ctx context.Context, md pmetric.Metric } if hasTemporality && - (temporality == pmetric.AggregationTemporalityUnspecified || - (!settings.AllowDeltaTemporality && temporality == pmetric.AggregationTemporalityDelta)) { + // Cumulative temporality is always valid. + // Delta temporality is also valid if AllowDeltaTemporality is true. + // All other temporality values are invalid. + !(temporality == pmetric.AggregationTemporalityCumulative || + (settings.AllowDeltaTemporality && temporality == pmetric.AggregationTemporalityDelta)) { errs = multierr.Append(errs, fmt.Errorf("invalid temporality and type combination for metric %q", metric.Name())) continue }