Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remote write compliance: NaN handling #29

Open
roidelapluie opened this issue May 25, 2021 · 4 comments
Open

Remote write compliance: NaN handling #29

roidelapluie opened this issue May 25, 2021 · 4 comments

Comments

@roidelapluie
Copy link
Member

roidelapluie commented May 25, 2021

We currently have a test for staleness NaN's, but Prometheus' TSDB "user-facing" NaN's are well defined as well: 0x7ff8000000000001 (math.NaN()).

We should add a test to verify that remote write clients only use that specific NaN value.

@roidelapluie roidelapluie changed the title NaN handling Remote write compliance: NaN handling May 25, 2021
@tomwilkie
Copy link
Member

@RichiH Does the exposition format support exporting a NaN? Do you have an example of how to do that?

@brian-brazil
Copy link

Yes, NaN for example.

@roidelapluie
Copy link
Member Author

roidelapluie commented Jun 9, 2021

The exposition format support exporting NaN's, but in floats64 there are many different values that are NaN's. There are two values that can go over remote write currently: NaN 0x7ff8000000000001 and stale NaN 0x7ff0000000000002. StaleNaN can not be exposed. Other NaN's should not be produced.

@RichiH
Copy link
Member

RichiH commented Jun 9, 2021

Testing for 0x7ff0000000000003 in addition to the other two seems prudent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants