Skip to content

histogram_quantile and histogram_fraction return values when both classic and native histograms are present #16551

@charleskorn

Description

@charleskorn

What did you do?

I ran histogram_quantile and histogram_fraction over a selector that returned both classic and native histograms that would be mapped to the same output series from these functions.

In PromQL test format:

load 1m
  series{host="a"}            {{schema:0 sum:5 count:4 buckets:[9 2 1]}}
  series{host="a", le="0.1"}  2
  series{host="a", le="1"}    3
  series{host="a", le="10"}   5
  series{host="a", le="100"}  6
  series{host="a", le="1000"} 8
  series{host="a", le="+Inf"} 9

eval instant at 0 histogram_quantile(0.8, series)
  expect no_info
  expect warn msg: PromQL warning: vector contains a mix of classic and native histograms for metric name "series"
  # Should return no results, but has series {host="a"} with value 2.297 derived from native histogram series

eval instant at 0 histogram_fraction(-Inf, 1, series)
  expect no_info
  expect warn msg: PromQL warning: vector contains a mix of classic and native histograms for metric name "series"
  # Should return no results, but has series {host="a"} with value 1 derived from native histogram series

I suspect this is a regression introduced by #16095.

What did you expect to see?

I expected both queries to return no results and a vector contains a mix of classic and native histograms for metric name "series" warning.

What did you see instead? Under which circumstances?

Both queries return results in addition to the vector contains a mix of classic and native histograms for metric name "series" warning.

The results appear to be derived from the native histogram series.

Prometheus version

Prometheus at 0ce6022

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions