prometheus/web/ui/module/lezer-promql
Arve Knudsen de16f5e387
[FEATURE] PromQL: Add experimental info function MVP (#14495)
The `info` function is an experiment to improve UX
around including labels from info metrics.
`info` has to be enabled via the feature flag `--enable-feature=promql-experimental-functions`.

This MVP of info simplifies the implementation by assuming:
* Only support for the target_info metric
* That target_info's identifying labels are job and instance

Also:
* Encode info samples' original timestamp as sample value
* Deduce info series select hints from top-most VectorSelector

---------

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Ying WANG <ying.wang@grafana.com>
Co-authored-by: Augustin Husson <augustin.husson@amadeus.com>
Co-authored-by: Bartlomiej Plotka <bwplotka@gmail.com>
Co-authored-by: Björn Rabenstein <github@rabenste.in>
Co-authored-by: Bryan Boreham <bjboreham@gmail.com>
2024-10-16 13:52:11 +01:00
..
src [FEATURE] PromQL: Add experimental info function MVP (#14495) 2024-10-16 13:52:11 +01:00
test adapt the lezer grammar and codemirror autocompletion with duration and number that are equivalent (#14417) 2024-07-31 15:31:42 +02:00
.gitignore enable ui module publication (#10876) 2022-06-30 12:10:10 +02:00
.npmignore enable ui module publication (#10876) 2022-06-30 12:10:10 +02:00
build.sh UI: stabilize dependencies and environment (#10517) 2022-04-05 11:49:22 +02:00
generate-types.sh UI: stabilize dependencies and environment (#10517) 2022-04-05 11:49:22 +02:00
jest.config.cjs UI: stabilize dependencies and environment (#10517) 2022-04-05 11:49:22 +02:00
package.json Prepare release 2.55.0-rc.0 2024-09-19 12:38:12 +01:00
README.md Add readme for lezer-promql and update codemirror-promql readme (#10875) 2022-06-22 16:57:03 +02:00
rollup.config.js UI: stabilize dependencies and environment (#10517) 2022-04-05 11:49:22 +02:00

lezer-promql

Overview

This is a PromQL grammar for the lezer parser system. It is inspired by the initial grammar coming from Prometheus written in yacc.

This library is stable but doesn't provide any guideline of how to use it as it has been integrated into codemirror-promql. If you want to use this library, you perhaps want to actually use @prometheus-io/codemirror-promql instead.

Note: This library is a lezer-based implementation of the authoritative, goyacc-based PromQL grammar. Any changes to the authoritative grammar need to be reflected in this package as well.

Installation

This package is available as an npm package:

npm install --save @prometheus-io/lezer-promql

Note: you will have to manually install the lezer dependencies as it is a peer dependency to this package.

npm install --save @lezer/lr @lezer/highlight

Development

Building

npm i
npm run build

Testing

npm run test

License

The code is licensed under an Apache 2.0 license.