Skip to content

[processor/deltatocumulative] Incorrectly dropping gauge metrics #35284

Closed
@sirianni

Description

@sirianni

Component(s)

processor/deltatocumulative

What happened?

I expected the deltatocumulative to ignore gauge metrics, however it is filtering them.

This was previously a latent issue, but with #34979 it is now impacting functionality.

	metrics.Filter(md, func(m metrics.Metric) bool {
		var n int
		switch m.Type() {
		case pmetric.MetricTypeSum:
			sum := m.Sum()
			if sum.AggregationTemporality() == pmetric.AggregationTemporalityDelta {
				err := streams.Apply(metrics.Sum(m), p.sums.aggr.Aggregate)
				errs = errors.Join(errs, err)
				sum.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative)
			}
			n = sum.DataPoints().Len()
		case pmetric.MetricTypeHistogram:
			hist := m.Histogram()
			if hist.AggregationTemporality() == pmetric.AggregationTemporalityDelta {
				err := streams.Apply(metrics.Histogram(m), p.hist.aggr.Aggregate)
				errs = errors.Join(errs, err)
				hist.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative)
			}
			n = hist.DataPoints().Len()
		case pmetric.MetricTypeExponentialHistogram:
			expo := m.ExponentialHistogram()
			if expo.AggregationTemporality() == pmetric.AggregationTemporalityDelta {
				err := streams.Apply(metrics.ExpHistogram(m), p.expo.aggr.Aggregate)
				errs = errors.Join(errs, err)
				expo.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative)
			}
			n = expo.DataPoints().Len()
		}
		return n > 0
	})

Collector version

v0.109.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions