prometheus/promql
Filip Petkovski 97c7fffbb8
parser: Allow parsing arbitrary functions
In Thanos we would like to start experimenting with custom functions that are
currently not part of the PromQL spec. We would do this by adding an implementation
for those functions in the Thanos engine: https://github.com/thanos-community/promql-engine and allow
users to decide which engine they want to use on a per-query basis.

Since we use the PromQL parser from Prometheus, injecting functions in the global `Functions` variable
would mean they also become available for the Prometheus engine. To avoid this side-effect, this commit
exposes a Parser interface in which the supported functions can be injected as an option. If not functions
are injected, the parser implementation will default to the functions defined in the global Functions variable.

Signed-off-by: Filip Petkovski <filip.petkovsky@gmail.com>
2023-03-22 10:14:55 +01:00
..
fuzz-data textparse: Add fuzzing and fix bug caught 2017-07-07 11:12:17 +02:00
parser parser: Allow parsing arbitrary functions 2023-03-22 10:14:55 +01:00
testdata Adds day_of_year function to PromQL 2022-05-20 14:08:34 +02:00
bench_test.go promql: add benchmark for match against blank string 2023-01-05 14:05:54 +00:00
engine.go promql: optimise aggregation with no labels 2022-12-23 13:33:14 +00:00
engine_test.go promql: set CounterResetHint after rate and sum 2023-03-14 14:21:59 -06:00
functions.go promql: set CounterResetHint after rate and sum 2023-03-14 14:21:59 -06:00
functions_test.go Avoid literal integer overflows in 32 bit arches. 2022-03-29 22:51:20 +02:00
fuzz.go refactor (promql): move from github.com/pkg/errors to 'errors' and 'fmt' (#10817) 2022-06-08 10:47:52 +02:00
fuzz_test.go error for invalid media type should not be completely swallowed (#10186) 2022-02-08 10:57:56 +01:00
promql_test.go promql: disable some slow cases in TestConcurrentRangeQueries 2023-03-08 14:28:30 +00:00
quantile.go histogram: Modify getBound to deal properly with infinity 2022-10-06 17:40:03 +02:00
query_logger.go Close file descriptor in query logging (#11148) 2022-08-17 15:27:27 +05:30
query_logger_test.go refactor: move from io/ioutil to io and os packages (#10528) 2022-04-27 11:24:36 +02:00
test.go Update package promql tests for new labels.Labels type 2022-12-19 15:22:09 +00:00
test_test.go Update package promql tests for new labels.Labels type 2022-12-19 15:22:09 +00:00
value.go typo 'efficcient' (#12090) 2023-03-08 09:59:08 +00:00
value_test.go Shortcut ContainsSameLabelset() (#11000) 2022-07-13 15:18:10 +05:30