Merge pull request #2694 from prometheus/txtparse

pkg/textparse: parse metric names with ':'
This commit is contained in:
Fabian Reinartz 2017-05-09 12:43:42 +02:00 committed by GitHub
commit c1ce7cf814
3 changed files with 16 additions and 10 deletions

View file

@ -46,6 +46,7 @@ func (l *lexer) Lex() int {
%} %}
D [0-9] D [0-9]
S [a-zA-Z]
L [a-zA-Z_] L [a-zA-Z_]
M [a-zA-Z_:] M [a-zA-Z_:]
@ -63,9 +64,9 @@ M [a-zA-Z_:]
#[^\r\n]*\n l.mstart = l.i #[^\r\n]*\n l.mstart = l.i
[\r\n \t]+ l.mstart = l.i [\r\n \t]+ l.mstart = l.i
{L}({L}|{D})*\{ s = lstateLabels {S}({M}|{D})*\{ s = lstateLabels
l.offsets = append(l.offsets, l.i-1) l.offsets = append(l.offsets, l.i-1)
{L}({L}|{D})* s = lstateValue {S}({M}|{D})* s = lstateValue
l.mend = l.i l.mend = l.i
l.offsets = append(l.offsets, l.i) l.offsets = append(l.offsets, l.i)
@ -75,7 +76,7 @@ M [a-zA-Z_:]
<lstateLabels>,? s = lstateLName <lstateLabels>,? s = lstateLName
l.offsets = append(l.offsets, l.i) l.offsets = append(l.offsets, l.i)
<lstateLName>{M}({M}|{D})*= s = lstateLValue <lstateLName>{S}({L}|{D})*= s = lstateLValue
l.offsets = append(l.offsets, l.i-1) l.offsets = append(l.offsets, l.i-1)
<lstateLValue>\"(\\.|[^\\"])*\" s = lstateLabels <lstateLValue>\"(\\.|[^\\"])*\" s = lstateLabels

View file

@ -77,7 +77,7 @@ yystart1:
goto yystate3 goto yystate3
case c == '\x00': case c == '\x00':
goto yystate2 goto yystate2
case c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z': case c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z':
goto yystate6 goto yystate6
} }
@ -116,7 +116,7 @@ yystate6:
goto yyrule5 goto yyrule5
case c == '{': case c == '{':
goto yystate7 goto yystate7
case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z': case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
goto yystate6 goto yystate6
} }
@ -275,7 +275,7 @@ yystart23:
switch { switch {
default: default:
goto yyabort goto yyabort
case c == ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z': case c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z':
goto yystate24 goto yystate24
} }
@ -286,7 +286,7 @@ yystate24:
goto yyabort goto yyabort
case c == '=': case c == '=':
goto yystate25 goto yystate25
case c >= '0' && c <= ':' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z': case c >= '0' && c <= '9' || c >= 'A' && c <= 'Z' || c == '_' || c >= 'a' && c <= 'z':
goto yystate24 goto yystate24
} }
@ -373,13 +373,13 @@ yyrule3: // [\r\n \t]+
l.mstart = l.i l.mstart = l.i
goto yystate0 goto yystate0
} }
yyrule4: // {L}({L}|{D})*\{ yyrule4: // {S}({M}|{D})*\{
{ {
s = lstateLabels s = lstateLabels
l.offsets = append(l.offsets, l.i-1) l.offsets = append(l.offsets, l.i-1)
goto yystate0 goto yystate0
} }
yyrule5: // {L}({L}|{D})* yyrule5: // {S}({M}|{D})*
{ {
s = lstateValue s = lstateValue
l.mend = l.i l.mend = l.i
@ -401,7 +401,7 @@ yyrule8: // ,?
l.offsets = append(l.offsets, l.i) l.offsets = append(l.offsets, l.i)
goto yystate0 goto yystate0
} }
yyrule9: // {M}({M}|{D})*= yyrule9: // {S}({L}|{D})*=
{ {
s = lstateLValue s = lstateLValue
l.offsets = append(l.offsets, l.i-1) l.offsets = append(l.offsets, l.i-1)

View file

@ -34,6 +34,7 @@ go_gc_duration_seconds{quantile="0"} 4.9351e-05
go_gc_duration_seconds{quantile="0.25"} 7.424100000000001e-05 go_gc_duration_seconds{quantile="0.25"} 7.424100000000001e-05
go_gc_duration_seconds{quantile="0.5",a="b"} 8.3835e-05 go_gc_duration_seconds{quantile="0.5",a="b"} 8.3835e-05
go_gc_duration_seconds_count 99 go_gc_duration_seconds_count 99
some:aggregate:rate5m{a_b="c"} 1
# HELP go_goroutines Number of goroutines that currently exist. # HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge # TYPE go_goroutines gauge
go_goroutines 33 123123` go_goroutines 33 123123`
@ -62,6 +63,10 @@ go_goroutines 33 123123`
m: `go_gc_duration_seconds_count`, m: `go_gc_duration_seconds_count`,
v: 99, v: 99,
lset: labels.FromStrings("__name__", "go_gc_duration_seconds_count"), lset: labels.FromStrings("__name__", "go_gc_duration_seconds_count"),
}, {
m: `some:aggregate:rate5m{a_b="c"}`,
v: 1,
lset: labels.FromStrings("__name__", "some:aggregate:rate5m", "a_b", "c"),
}, { }, {
m: `go_goroutines`, m: `go_goroutines`,
v: 33, v: 33,