Возможность

PromQL

AST-rewrite для multi-tenancy, autocomplete, lint, function hints.

Любой PromQL от пользователя парсится `prometheus/promql/parser`, обходится через `parser.Inspect`. На каждом VectorSelector и MatrixSelector матчеры label заменяются на merged set, где organization_id (и фильтры из embed claim) всегда побеждают. Tenant boundary держится на AST, а не на текстовых регексах. Редактор показывает автокомплит метрик + builtins и signature hints функций.

Ключевые свойства

  • AST-rewrite — невозможно «обойти» organization_id даже явным указанием
  • Live-lint через /api/v1/promql/validate
  • Autocomplete: метрики org + builtin функции/агрегации
  • Function arg hints (`rate(v range-vector) → instant-vector`)
  • Regex-токенайзер с highlighting (без CodeMirror — 200 KB сэкономлено)

Связанные возможности