mirror of
https://github.com/prometheus/prometheus
synced 2024-12-27 00:53:12 +00:00
promql: remove histogramMean from groupedAggregation
Re-use histogramValue since we don't need them separately. Tidy up initialization. Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
This commit is contained in:
parent
2cf3c9de8f
commit
5e3914a27c
@ -2733,7 +2733,6 @@ type groupedAggregation struct {
|
||||
floatValue float64
|
||||
histogramValue *histogram.FloatHistogram
|
||||
floatMean float64
|
||||
histogramMean *histogram.FloatHistogram
|
||||
groupCount int
|
||||
heap vectorByValueHeap
|
||||
reverseHeap vectorByReverseValueHeap
|
||||
@ -2762,20 +2761,14 @@ func (ev *evaluator) aggregation(e *parser.AggregateExpr, q float64, inputMatrix
|
||||
floatMean: f,
|
||||
groupCount: 1,
|
||||
}
|
||||
switch {
|
||||
case h == nil:
|
||||
group.hasFloat = true
|
||||
case op == parser.SUM:
|
||||
group.histogramValue = h.Copy()
|
||||
group.hasHistogram = true
|
||||
case op == parser.AVG:
|
||||
group.histogramMean = h.Copy()
|
||||
group.hasHistogram = true
|
||||
case op == parser.STDVAR || op == parser.STDDEV:
|
||||
group.groupCount = 0
|
||||
}
|
||||
|
||||
switch op {
|
||||
case parser.SUM, parser.AVG:
|
||||
if h == nil {
|
||||
group.hasFloat = true
|
||||
} else {
|
||||
group.histogramValue = h.Copy()
|
||||
group.hasHistogram = true
|
||||
}
|
||||
case parser.STDVAR, parser.STDDEV:
|
||||
group.floatValue = 0
|
||||
case parser.QUANTILE:
|
||||
@ -2807,11 +2800,11 @@ func (ev *evaluator) aggregation(e *parser.AggregateExpr, q float64, inputMatrix
|
||||
group.groupCount++
|
||||
if h != nil {
|
||||
group.hasHistogram = true
|
||||
if group.histogramMean != nil {
|
||||
if group.histogramValue != nil {
|
||||
left := h.Copy().Div(float64(group.groupCount))
|
||||
right := group.histogramMean.Copy().Div(float64(group.groupCount))
|
||||
right := group.histogramValue.Copy().Div(float64(group.groupCount))
|
||||
toAdd := left.Sub(right)
|
||||
group.histogramMean.Add(toAdd)
|
||||
group.histogramValue.Add(toAdd)
|
||||
}
|
||||
// Otherwise the aggregation contained floats
|
||||
// previously and will be invalid anyway. No
|
||||
@ -2886,7 +2879,7 @@ func (ev *evaluator) aggregation(e *parser.AggregateExpr, q float64, inputMatrix
|
||||
continue
|
||||
}
|
||||
if aggr.hasHistogram {
|
||||
aggr.histogramValue = aggr.histogramMean.Compact(0)
|
||||
aggr.histogramValue = aggr.histogramValue.Compact(0)
|
||||
} else {
|
||||
aggr.floatValue = aggr.floatMean
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user