prometheus-api-client-python
prometheus-api-client-python copied to clipboard
Handling of NaN values in metric aggregations
Describe the bug Not really sure if a bug or a design decision but I could not find this case covered in the tests.
When using numpy to calculate the different operations in get_metric_aggregation the functions chosen will return NaN if there is a value in the metric that is NaN.
For example for:
- sum there is nansum - Treats NaN values as 0
- max there is nanmax - Ignores NaN values
- min there is nanmin - Ignores NaN values
- average there is nanmean - Ignores NaN values (Since there are no weights passed to average it behaves the same as mean)
- percentile there is nanpercentile - Ignores NaN values
- std there is nanstd - Ignores NaN values
- var there is nanvar - Ignores NaN values
To Reproduce Steps to reproduce the behavior:
- Pass a metric with a NaN value and several numerical values to
get_metric_aggregation - Check the result and you should see that it is NaN
Expected behavior Handle NaN values to return a statistically meaningful number
Additional context
I could submit a PR if you think this is something that can be changed.
It could even be possible to pass a boolean flag handle_nans as an argument to get_metric_aggregation to choose the behavior.
Hi :)
Any comments about this issue?