Rewrite temporality logic to be clearer

Signed-off-by: Fiona Liao <fiona.liao@grafana.com>
This commit is contained in:
Fiona Liao 2025-04-17 19:26:19 +01:00
parent a48bee8c08
commit d5c4cdf9c2

View file

@ -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
}