Hi Callum, In general yes, the PromQL Go library lets you parse an expression and then traverse its abstract syntax tree, using the types from the "ast" package in https://github.com/prometheus/prometheus/blob/main/promql/parser/ast.go. You'd first use https://pkg.go.dev/github.com/prometheus/prometheus/promql/parser#ParseExpr to do the parsing, and that gives you back the AST to look at.
For example, this is how PromLens shows the different sub-expressions of a query (for your expression: https://demo.promlens.com/?l=eF6PYANAlbQ). However: Not every alerting query is of the shape "<something> <comp-op> <number>". Comparison / filter operators are normal binary expressions that may or may not occur at any part of a query (even deeply nested in a query tree, not at the end), and you will also have alerting queries which do not contain a filter operator at all. So you would have to apply certain assumptions about the structure of a query to be able to extract just the part you are interested in. Regards, Julius On Thu, Jun 3, 2021 at 1:04 AM Callum Jones <[email protected]> wrote: > Hi, > > With alerting rules the Prometheus API (and templating language) has > access to the "Value" of an alert which appears to be the first metric > specified without the comparator. > > I was wondering if this is something that is easily accessible in the > Prometheus Go packages such that I could give it the expression string and > it would strip out the comparison part and return just the metric query. > > For example passing in: > > sum by (instance) (rate(node_disk_read_bytes_total[2m])) / 1024 / 1024 > > 50 > would return > > sum by (instance) (rate(node_disk_read_bytes_total[2m])) / 1024 / 1024 > > Thanks, > Callum > > -- > You received this message because you are subscribed to the Google Groups > "Prometheus Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/prometheus-users/a5b35b15-ebae-4030-8a9c-f67adb836eacn%40googlegroups.com > <https://groups.google.com/d/msgid/prometheus-users/a5b35b15-ebae-4030-8a9c-f67adb836eacn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Julius Volz PromLabs - promlabs.com -- You received this message because you are subscribed to the Google Groups "Prometheus Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-users/CAObpH5zh8vwseo8-%3DAxqLNzTdyb63hdhsGbJ7iUhUsyEaRqmMw%40mail.gmail.com.

