@@ -918,8 +918,6 @@ func expandWithExpr(was []*withArgExpr, e Expr) (Expr, error) {
918
918
var lfNew LabelFilter
919
919
lfNew .Label = "__name__"
920
920
lfNew .Value = metricName
921
- lfNew .IsNegative = false
922
- lfNew .IsRegexp = false
923
921
lfsNew = append (lfsNew , lfNew )
924
922
lfsNew = append (lfsNew , me .LabelFilterss [lfsLastIndex ]... )
925
923
me .LabelFilterss [lfsLastIndex ] = lfsNew
@@ -1393,16 +1391,15 @@ func isQuotedString(s string) bool {
1393
1391
1394
1392
func (p * parser ) parseLabelFilterExpr () (* labelFilterExpr , error ) {
1395
1393
var isPossibleMetricName bool
1396
-
1397
- // Strip quotes if they exist
1398
1394
if isQuotedString (p .lex .Token ) {
1395
+ // strip quotes
1399
1396
p .lex .Token = p .lex .Token [1 : len (p .lex .Token )- 1 ]
1397
+ // quoted string could be a metric name: {"metric_name"}
1400
1398
isPossibleMetricName = true
1401
- } else {
1402
- if ! isIdentPrefix (p .lex .Token ) {
1403
- return nil , fmt .Errorf (`labelFilterExpr: unexpected token %q; want "ident"` , p .lex .Token )
1404
- }
1399
+ } else if ! isIdentPrefix (p .lex .Token ) {
1400
+ return nil , fmt .Errorf (`labelFilterExpr: unexpected token %q; want "ident"` , p .lex .Token )
1405
1401
}
1402
+
1406
1403
var lfe labelFilterExpr
1407
1404
lfe .Label = unescapeIdent (p .lex .Token )
1408
1405
if err := p .lex .Next (); err != nil {
@@ -1430,6 +1427,7 @@ func (p *parser) parseLabelFilterExpr() (*labelFilterExpr, error) {
1430
1427
// If we have a label name that is quoted with a nil value it is possible it's the metric
1431
1428
// name as per Prometheus 3.0 UTF8 quoted label names specifications, this is used later
1432
1429
// in our expanding of the with statements
1430
+ // https://github.com/prometheus/proposals/blob/main/proposals/2023-08-21-utf8.md
1433
1431
lfe .IsPossibleMetricName = isPossibleMetricName
1434
1432
1435
1433
return & lfe , nil
0 commit comments