Add tickets to improve metric abstractions
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# 039 — `metric[param]` query syntax should resolve against declared params
|
||||
|
||||
## Summary
|
||||
|
||||
`compile_metric_comparison` (`src/engine.rs`) resolves the `param` in
|
||||
`metric[param] <op> value` by reading whatever key happens to be present in a
|
||||
bucket's `labels` map at query time. There's no link back to a metric's
|
||||
actual declared label params, so a typo or a param that was never a label on
|
||||
that metric fails silently (empty match) instead of being rejected up front.
|
||||
|
||||
## Scope
|
||||
|
||||
- Once [037](037-unify-param-declarations.md) lands, validate `metric[param]`
|
||||
filter expressions against the target metric's declared `label_params` at
|
||||
parse/compile time.
|
||||
- Return a clear filter-validation error when `param` is not one of the
|
||||
metric's label params, instead of silently matching nothing.
|
||||
- Confirm `src/filter_parser.rs` and `compile_metric_comparison` share the
|
||||
same notion of "param" as the Params panel and metric declarations after
|
||||
this change (no separate resolution path).
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- `metric[nonexistent_param] == "x"` is rejected with a validation error
|
||||
referencing the metric's actual label params, rather than silently
|
||||
returning no matches.
|
||||
- Existing valid filter queries using real label params continue to work
|
||||
unchanged.
|
||||
|
||||
## Depends on
|
||||
|
||||
[037](037-unify-param-declarations.md).
|
||||
Reference in New Issue
Block a user