pkg/textparse: add more benchmarking, align lex defs

This commit is contained in:
Fabian Reinartz 2017-01-15 13:55:53 +01:00
parent e44d80314d
commit fb3ab9bdb7
6 changed files with 583 additions and 61 deletions

BIN
pkg/textparse/cpu.prof Normal file

Binary file not shown.

View File

@ -7,8 +7,6 @@ import (
"strconv"
)
//type lstate int
// Lex is called by the parser generated by "go tool yacc" to obtain each
// token. The method is opened before the matching rules block and closed at
@ -45,40 +43,40 @@ M [a-zA-Z_:]
%%
\0 return 0
#[^\r\n]*\n l.mstart = l.i
[\r\n \t]+ l.mstart = l.i
\0 return eof
#[^\r\n]*\n l.mstart = l.i
[\r\n \t]+ l.mstart = l.i
{L}({L}|{D})*\{ s = lstateLabels
l.offsets = append(l.offsets, l.i-1)
{L}({L}|{D})* s = lstateValue
l.mend = l.i
l.offsets = append(l.offsets, l.i)
{L}({L}|{D})*\{ s = lstateLabels
l.offsets = append(l.offsets, l.i-1)
{L}({L}|{D})* s = lstateValue
l.mend = l.i
l.offsets = append(l.offsets, l.i)
<lstateLabels>[ \t]+
<lstateLabels>\} s = lstateValue
l.mend = l.i
<lstateLabels>,? s = lstateLName
l.offsets = append(l.offsets, l.i)
<lstateLabels>\} s = lstateValue
l.mend = l.i
<lstateLabels>,? s = lstateLName
l.offsets = append(l.offsets, l.i)
<lstateLName>{M}({M}|{D})*= s = lstateLValue
l.offsets = append(l.offsets, l.i-1)
<lstateLName>{M}({M}|{D})*= s = lstateLValue
l.offsets = append(l.offsets, l.i-1)
<lstateLValue>\"(\\.|[^\\"])*\" s = lstateLabels
l.offsets = append(l.offsets, l.i-1)
<lstateLValue>\'(\\.|[^\\'])*\' s = lstateLabels
l.offsets = append(l.offsets, l.i-1)
<lstateValue>[ \t]+ l.vstart = l.i
<lstateValue>(NaN) l.val = math.NaN()
return 1
<lstateValue>[^\n \t\r]+ // We don't parse strictly correct floats as the conversion
// repeats the effort anyway.
l.val, l.err = strconv.ParseFloat(yoloString(l.b[l.vstart:l.i]), 64)
if l.err != nil {
return -1
}
return 1
<lstateValue>[ \t]+ l.vstart = l.i
<lstateValue>(NaN) l.val = math.NaN()
return 1
<lstateValue>[^\n \t\r]+ // We don't parse strictly correct floats as the conversion
// repeats the effort anyway.
l.val, l.err = strconv.ParseFloat(yoloString(l.b[l.vstart:l.i]), 64)
if l.err != nil {
return -1
}
return 1
%%
return -1

View File

@ -8,8 +8,6 @@ import (
"strconv"
)
//type lstate int
// Lex is called by the parser generated by "go tool yacc" to obtain each
// token. The method is opened before the matching rules block and closed at
// the end of the file.

View File

@ -1,11 +1,15 @@
package textparse
import (
"fmt"
"bytes"
"compress/gzip"
"io"
"io/ioutil"
"os"
"testing"
"github.com/prometheus/common/expfmt"
"github.com/prometheus/common/model"
"github.com/prometheus/prometheus/pkg/labels"
"github.com/stretchr/testify/require"
)
@ -71,41 +75,153 @@ go_goroutines 33`
}
const (
testdataSampleCount = 410
)
func BenchmarkParse(b *testing.B) {
f, err := os.Open("testdata.txt")
require.NoError(b, err)
defer f.Close()
for _, fn := range []string{"testdata.txt", "testdata.nometa.txt"} {
f, err := os.Open(fn)
require.NoError(b, err)
defer f.Close()
var tbuf []byte
buf, err := ioutil.ReadAll(f)
require.NoError(b, err)
buf, err := ioutil.ReadAll(f)
require.NoError(b, err)
b.Run("no-decode-metric/"+fn, func(b *testing.B) {
total := 0
for i := 0; i*527 < b.N; i++ {
tbuf = append(tbuf, buf...)
tbuf = append(tbuf, '\n')
b.SetBytes(int64(len(buf) * (b.N / testdataSampleCount)))
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i += testdataSampleCount {
p := New(buf)
for p.Next() && i < b.N {
m, _, _ := p.At()
total += len(m)
i++
}
require.NoError(b, p.Err())
}
_ = total
})
b.Run("decode-metric/"+fn, func(b *testing.B) {
total := 0
b.SetBytes(int64(len(buf) * (b.N / testdataSampleCount)))
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i += testdataSampleCount {
p := New(buf)
for p.Next() && i < b.N {
m, _, _ := p.At()
res := make(labels.Labels, 0, 5)
p.Metric(&res)
total += len(m)
i++
}
require.NoError(b, p.Err())
}
_ = total
})
b.Run("decode-metric-reuse/"+fn, func(b *testing.B) {
total := 0
res := make(labels.Labels, 0, 5)
b.SetBytes(int64(len(buf) * (b.N / testdataSampleCount)))
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i += testdataSampleCount {
p := New(buf)
for p.Next() && i < b.N {
m, _, _ := p.At()
p.Metric(&res)
total += len(m)
i++
res = res[:0]
}
require.NoError(b, p.Err())
}
_ = total
})
b.Run("expfmt-text/"+fn, func(b *testing.B) {
b.SetBytes(int64(len(buf) * (b.N / testdataSampleCount)))
b.ReportAllocs()
b.ResetTimer()
total := 0
for i := 0; i < b.N; i += testdataSampleCount {
var (
decSamples = make(model.Vector, 0, 50)
)
sdec := expfmt.SampleDecoder{
Dec: expfmt.NewDecoder(bytes.NewReader(buf), expfmt.FmtText),
Opts: &expfmt.DecodeOptions{
Timestamp: model.TimeFromUnixNano(0),
},
}
for {
if err = sdec.Decode(&decSamples); err != nil {
break
}
total += len(decSamples)
decSamples = decSamples[:0]
}
}
_ = total
})
}
}
func BenchmarkGzip(b *testing.B) {
for _, fn := range []string{"testdata.txt", "testdata.nometa.txt"} {
b.Run(fn, func(b *testing.B) {
f, err := os.Open(fn)
require.NoError(b, err)
defer f.Close()
var buf bytes.Buffer
gw := gzip.NewWriter(&buf)
n, err := io.Copy(gw, f)
require.NoError(b, err)
require.NoError(b, gw.Close())
gbuf, err := ioutil.ReadAll(&buf)
require.NoError(b, err)
k := b.N / testdataSampleCount
b.ReportAllocs()
b.SetBytes(int64(k) * int64(n))
b.ResetTimer()
total := 0
for i := 0; i < k; i++ {
gr, err := gzip.NewReader(bytes.NewReader(gbuf))
require.NoError(b, err)
d, err := ioutil.ReadAll(gr)
require.NoError(b, err)
require.NoError(b, gr.Close())
total += len(d)
}
_ = total
})
}
p := New(tbuf)
i := 0
var m labels.Labels
total := 0
b.ResetTimer()
b.ReportAllocs()
b.SetBytes(int64(len(tbuf)))
for p.Next() && i < b.N {
p.At()
res := make(labels.Labels, 0, 5)
p.Metric(&res)
total += len(res)
i++
res = res[:0]
}
_ = m
fmt.Println(total)
require.NoError(b, p.Err())
}

View File

@ -0,0 +1,410 @@
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.5"} 8.3835e-05
go_gc_duration_seconds{quantile="0.75"} 0.000106744
go_gc_duration_seconds{quantile="1"} 0.002072195
go_gc_duration_seconds_sum 0.012139815
go_gc_duration_seconds_count 99
go_goroutines 33
go_memstats_alloc_bytes 1.7518624e+07
go_memstats_alloc_bytes_total 8.3062296e+08
go_memstats_buck_hash_sys_bytes 1.494637e+06
go_memstats_frees_total 4.65658e+06
go_memstats_gc_sys_bytes 1.107968e+06
go_memstats_heap_alloc_bytes 1.7518624e+07
go_memstats_heap_idle_bytes 6.668288e+06
go_memstats_heap_inuse_bytes 1.8956288e+07
go_memstats_heap_objects 72755
go_memstats_heap_released_bytes_total 0
go_memstats_heap_sys_bytes 2.5624576e+07
go_memstats_last_gc_time_seconds 1.4843955586166437e+09
go_memstats_lookups_total 2089
go_memstats_mallocs_total 4.729335e+06
go_memstats_mcache_inuse_bytes 9600
go_memstats_mcache_sys_bytes 16384
go_memstats_mspan_inuse_bytes 211520
go_memstats_mspan_sys_bytes 245760
go_memstats_next_gc_bytes 2.033527e+07
go_memstats_other_sys_bytes 2.077323e+06
go_memstats_stack_inuse_bytes 1.6384e+06
go_memstats_stack_sys_bytes 1.6384e+06
go_memstats_sys_bytes 3.2205048e+07
http_request_duration_microseconds{handler="alerts",quantile="0.5"} NaN
http_request_duration_microseconds{handler="alerts",quantile="0.9"} NaN
http_request_duration_microseconds{handler="alerts",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="alerts"} 0
http_request_duration_microseconds_count{handler="alerts"} 0
http_request_duration_microseconds{handler="config",quantile="0.5"} NaN
http_request_duration_microseconds{handler="config",quantile="0.9"} NaN
http_request_duration_microseconds{handler="config",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="config"} 0
http_request_duration_microseconds_count{handler="config"} 0
http_request_duration_microseconds{handler="consoles",quantile="0.5"} NaN
http_request_duration_microseconds{handler="consoles",quantile="0.9"} NaN
http_request_duration_microseconds{handler="consoles",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="consoles"} 0
http_request_duration_microseconds_count{handler="consoles"} 0
http_request_duration_microseconds{handler="drop_series",quantile="0.5"} NaN
http_request_duration_microseconds{handler="drop_series",quantile="0.9"} NaN
http_request_duration_microseconds{handler="drop_series",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="drop_series"} 0
http_request_duration_microseconds_count{handler="drop_series"} 0
http_request_duration_microseconds{handler="federate",quantile="0.5"} NaN
http_request_duration_microseconds{handler="federate",quantile="0.9"} NaN
http_request_duration_microseconds{handler="federate",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="federate"} 0
http_request_duration_microseconds_count{handler="federate"} 0
http_request_duration_microseconds{handler="flags",quantile="0.5"} NaN
http_request_duration_microseconds{handler="flags",quantile="0.9"} NaN
http_request_duration_microseconds{handler="flags",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="flags"} 0
http_request_duration_microseconds_count{handler="flags"} 0
http_request_duration_microseconds{handler="graph",quantile="0.5"} 771.655
http_request_duration_microseconds{handler="graph",quantile="0.9"} 1761.823
http_request_duration_microseconds{handler="graph",quantile="0.99"} 1761.823
http_request_duration_microseconds_sum{handler="graph"} 5803.93
http_request_duration_microseconds_count{handler="graph"} 3
http_request_duration_microseconds{handler="heap",quantile="0.5"} NaN
http_request_duration_microseconds{handler="heap",quantile="0.9"} NaN
http_request_duration_microseconds{handler="heap",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="heap"} 0
http_request_duration_microseconds_count{handler="heap"} 0
http_request_duration_microseconds{handler="label_values",quantile="0.5"} 325.401
http_request_duration_microseconds{handler="label_values",quantile="0.9"} 414.708
http_request_duration_microseconds{handler="label_values",quantile="0.99"} 414.708
http_request_duration_microseconds_sum{handler="label_values"} 3995.574
http_request_duration_microseconds_count{handler="label_values"} 3
http_request_duration_microseconds{handler="options",quantile="0.5"} NaN
http_request_duration_microseconds{handler="options",quantile="0.9"} NaN
http_request_duration_microseconds{handler="options",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="options"} 0
http_request_duration_microseconds_count{handler="options"} 0
http_request_duration_microseconds{handler="prometheus",quantile="0.5"} 1351.859
http_request_duration_microseconds{handler="prometheus",quantile="0.9"} 1714.035
http_request_duration_microseconds{handler="prometheus",quantile="0.99"} 2833.523
http_request_duration_microseconds_sum{handler="prometheus"} 661851.54
http_request_duration_microseconds_count{handler="prometheus"} 462
http_request_duration_microseconds{handler="query",quantile="0.5"} 3885.448
http_request_duration_microseconds{handler="query",quantile="0.9"} 4390.558
http_request_duration_microseconds{handler="query",quantile="0.99"} 4390.558
http_request_duration_microseconds_sum{handler="query"} 26074.11
http_request_duration_microseconds_count{handler="query"} 6
http_request_duration_microseconds{handler="query_range",quantile="0.5"} NaN
http_request_duration_microseconds{handler="query_range",quantile="0.9"} NaN
http_request_duration_microseconds{handler="query_range",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="query_range"} 0
http_request_duration_microseconds_count{handler="query_range"} 0
http_request_duration_microseconds{handler="rules",quantile="0.5"} NaN
http_request_duration_microseconds{handler="rules",quantile="0.9"} NaN
http_request_duration_microseconds{handler="rules",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="rules"} 0
http_request_duration_microseconds_count{handler="rules"} 0
http_request_duration_microseconds{handler="series",quantile="0.5"} NaN
http_request_duration_microseconds{handler="series",quantile="0.9"} NaN
http_request_duration_microseconds{handler="series",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="series"} 0
http_request_duration_microseconds_count{handler="series"} 0
http_request_duration_microseconds{handler="static",quantile="0.5"} 212.311
http_request_duration_microseconds{handler="static",quantile="0.9"} 265.174
http_request_duration_microseconds{handler="static",quantile="0.99"} 265.174
http_request_duration_microseconds_sum{handler="static"} 6458.621
http_request_duration_microseconds_count{handler="static"} 3
http_request_duration_microseconds{handler="status",quantile="0.5"} NaN
http_request_duration_microseconds{handler="status",quantile="0.9"} NaN
http_request_duration_microseconds{handler="status",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="status"} 0
http_request_duration_microseconds_count{handler="status"} 0
http_request_duration_microseconds{handler="targets",quantile="0.5"} NaN
http_request_duration_microseconds{handler="targets",quantile="0.9"} NaN
http_request_duration_microseconds{handler="targets",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="targets"} 0
http_request_duration_microseconds_count{handler="targets"} 0
http_request_duration_microseconds{handler="version",quantile="0.5"} NaN
http_request_duration_microseconds{handler="version",quantile="0.9"} NaN
http_request_duration_microseconds{handler="version",quantile="0.99"} NaN
http_request_duration_microseconds_sum{handler="version"} 0
http_request_duration_microseconds_count{handler="version"} 0
http_request_size_bytes{handler="alerts",quantile="0.5"} NaN
http_request_size_bytes{handler="alerts",quantile="0.9"} NaN
http_request_size_bytes{handler="alerts",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="alerts"} 0
http_request_size_bytes_count{handler="alerts"} 0
http_request_size_bytes{handler="config",quantile="0.5"} NaN
http_request_size_bytes{handler="config",quantile="0.9"} NaN
http_request_size_bytes{handler="config",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="config"} 0
http_request_size_bytes_count{handler="config"} 0
http_request_size_bytes{handler="consoles",quantile="0.5"} NaN
http_request_size_bytes{handler="consoles",quantile="0.9"} NaN
http_request_size_bytes{handler="consoles",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="consoles"} 0
http_request_size_bytes_count{handler="consoles"} 0
http_request_size_bytes{handler="drop_series",quantile="0.5"} NaN
http_request_size_bytes{handler="drop_series",quantile="0.9"} NaN
http_request_size_bytes{handler="drop_series",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="drop_series"} 0
http_request_size_bytes_count{handler="drop_series"} 0
http_request_size_bytes{handler="federate",quantile="0.5"} NaN
http_request_size_bytes{handler="federate",quantile="0.9"} NaN
http_request_size_bytes{handler="federate",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="federate"} 0
http_request_size_bytes_count{handler="federate"} 0
http_request_size_bytes{handler="flags",quantile="0.5"} NaN
http_request_size_bytes{handler="flags",quantile="0.9"} NaN
http_request_size_bytes{handler="flags",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="flags"} 0
http_request_size_bytes_count{handler="flags"} 0
http_request_size_bytes{handler="graph",quantile="0.5"} 367
http_request_size_bytes{handler="graph",quantile="0.9"} 389
http_request_size_bytes{handler="graph",quantile="0.99"} 389
http_request_size_bytes_sum{handler="graph"} 1145
http_request_size_bytes_count{handler="graph"} 3
http_request_size_bytes{handler="heap",quantile="0.5"} NaN
http_request_size_bytes{handler="heap",quantile="0.9"} NaN
http_request_size_bytes{handler="heap",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="heap"} 0
http_request_size_bytes_count{handler="heap"} 0
http_request_size_bytes{handler="label_values",quantile="0.5"} 416
http_request_size_bytes{handler="label_values",quantile="0.9"} 416
http_request_size_bytes{handler="label_values",quantile="0.99"} 416
http_request_size_bytes_sum{handler="label_values"} 1248
http_request_size_bytes_count{handler="label_values"} 3
http_request_size_bytes{handler="options",quantile="0.5"} NaN
http_request_size_bytes{handler="options",quantile="0.9"} NaN
http_request_size_bytes{handler="options",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="options"} 0
http_request_size_bytes_count{handler="options"} 0
http_request_size_bytes{handler="prometheus",quantile="0.5"} 238
http_request_size_bytes{handler="prometheus",quantile="0.9"} 238
http_request_size_bytes{handler="prometheus",quantile="0.99"} 238
http_request_size_bytes_sum{handler="prometheus"} 109956
http_request_size_bytes_count{handler="prometheus"} 462
http_request_size_bytes{handler="query",quantile="0.5"} 531
http_request_size_bytes{handler="query",quantile="0.9"} 531
http_request_size_bytes{handler="query",quantile="0.99"} 531
http_request_size_bytes_sum{handler="query"} 3186
http_request_size_bytes_count{handler="query"} 6
http_request_size_bytes{handler="query_range",quantile="0.5"} NaN
http_request_size_bytes{handler="query_range",quantile="0.9"} NaN
http_request_size_bytes{handler="query_range",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="query_range"} 0
http_request_size_bytes_count{handler="query_range"} 0
http_request_size_bytes{handler="rules",quantile="0.5"} NaN
http_request_size_bytes{handler="rules",quantile="0.9"} NaN
http_request_size_bytes{handler="rules",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="rules"} 0
http_request_size_bytes_count{handler="rules"} 0
http_request_size_bytes{handler="series",quantile="0.5"} NaN
http_request_size_bytes{handler="series",quantile="0.9"} NaN
http_request_size_bytes{handler="series",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="series"} 0
http_request_size_bytes_count{handler="series"} 0
http_request_size_bytes{handler="static",quantile="0.5"} 379
http_request_size_bytes{handler="static",quantile="0.9"} 379
http_request_size_bytes{handler="static",quantile="0.99"} 379
http_request_size_bytes_sum{handler="static"} 1137
http_request_size_bytes_count{handler="static"} 3
http_request_size_bytes{handler="status",quantile="0.5"} NaN
http_request_size_bytes{handler="status",quantile="0.9"} NaN
http_request_size_bytes{handler="status",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="status"} 0
http_request_size_bytes_count{handler="status"} 0
http_request_size_bytes{handler="targets",quantile="0.5"} NaN
http_request_size_bytes{handler="targets",quantile="0.9"} NaN
http_request_size_bytes{handler="targets",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="targets"} 0
http_request_size_bytes_count{handler="targets"} 0
http_request_size_bytes{handler="version",quantile="0.5"} NaN
http_request_size_bytes{handler="version",quantile="0.9"} NaN
http_request_size_bytes{handler="version",quantile="0.99"} NaN
http_request_size_bytes_sum{handler="version"} 0
http_request_size_bytes_count{handler="version"} 0
http_requests_total{code="200",handler="graph",method="get"} 3
http_requests_total{code="200",handler="label_values",method="get"} 3
http_requests_total{code="200",handler="prometheus",method="get"} 462
http_requests_total{code="200",handler="query",method="get"} 6
http_requests_total{code="200",handler="static",method="get"} 3
http_response_size_bytes{handler="alerts",quantile="0.5"} NaN
http_response_size_bytes{handler="alerts",quantile="0.9"} NaN
http_response_size_bytes{handler="alerts",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="alerts"} 0
http_response_size_bytes_count{handler="alerts"} 0
http_response_size_bytes{handler="config",quantile="0.5"} NaN
http_response_size_bytes{handler="config",quantile="0.9"} NaN
http_response_size_bytes{handler="config",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="config"} 0
http_response_size_bytes_count{handler="config"} 0
http_response_size_bytes{handler="consoles",quantile="0.5"} NaN
http_response_size_bytes{handler="consoles",quantile="0.9"} NaN
http_response_size_bytes{handler="consoles",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="consoles"} 0
http_response_size_bytes_count{handler="consoles"} 0
http_response_size_bytes{handler="drop_series",quantile="0.5"} NaN
http_response_size_bytes{handler="drop_series",quantile="0.9"} NaN
http_response_size_bytes{handler="drop_series",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="drop_series"} 0
http_response_size_bytes_count{handler="drop_series"} 0
http_response_size_bytes{handler="federate",quantile="0.5"} NaN
http_response_size_bytes{handler="federate",quantile="0.9"} NaN
http_response_size_bytes{handler="federate",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="federate"} 0
http_response_size_bytes_count{handler="federate"} 0
http_response_size_bytes{handler="flags",quantile="0.5"} NaN
http_response_size_bytes{handler="flags",quantile="0.9"} NaN
http_response_size_bytes{handler="flags",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="flags"} 0
http_response_size_bytes_count{handler="flags"} 0
http_response_size_bytes{handler="graph",quantile="0.5"} 3619
http_response_size_bytes{handler="graph",quantile="0.9"} 3619
http_response_size_bytes{handler="graph",quantile="0.99"} 3619
http_response_size_bytes_sum{handler="graph"} 10857
http_response_size_bytes_count{handler="graph"} 3
http_response_size_bytes{handler="heap",quantile="0.5"} NaN
http_response_size_bytes{handler="heap",quantile="0.9"} NaN
http_response_size_bytes{handler="heap",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="heap"} 0
http_response_size_bytes_count{handler="heap"} 0
http_response_size_bytes{handler="label_values",quantile="0.5"} 642
http_response_size_bytes{handler="label_values",quantile="0.9"} 642
http_response_size_bytes{handler="label_values",quantile="0.99"} 642
http_response_size_bytes_sum{handler="label_values"} 1926
http_response_size_bytes_count{handler="label_values"} 3
http_response_size_bytes{handler="options",quantile="0.5"} NaN
http_response_size_bytes{handler="options",quantile="0.9"} NaN
http_response_size_bytes{handler="options",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="options"} 0
http_response_size_bytes_count{handler="options"} 0
http_response_size_bytes{handler="prometheus",quantile="0.5"} 3033
http_response_size_bytes{handler="prometheus",quantile="0.9"} 3123
http_response_size_bytes{handler="prometheus",quantile="0.99"} 3128
http_response_size_bytes_sum{handler="prometheus"} 1.374097e+06
http_response_size_bytes_count{handler="prometheus"} 462
http_response_size_bytes{handler="query",quantile="0.5"} 776
http_response_size_bytes{handler="query",quantile="0.9"} 781
http_response_size_bytes{handler="query",quantile="0.99"} 781
http_response_size_bytes_sum{handler="query"} 4656
http_response_size_bytes_count{handler="query"} 6
http_response_size_bytes{handler="query_range",quantile="0.5"} NaN
http_response_size_bytes{handler="query_range",quantile="0.9"} NaN
http_response_size_bytes{handler="query_range",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="query_range"} 0
http_response_size_bytes_count{handler="query_range"} 0
http_response_size_bytes{handler="rules",quantile="0.5"} NaN
http_response_size_bytes{handler="rules",quantile="0.9"} NaN
http_response_size_bytes{handler="rules",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="rules"} 0
http_response_size_bytes_count{handler="rules"} 0
http_response_size_bytes{handler="series",quantile="0.5"} NaN
http_response_size_bytes{handler="series",quantile="0.9"} NaN
http_response_size_bytes{handler="series",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="series"} 0
http_response_size_bytes_count{handler="series"} 0
http_response_size_bytes{handler="static",quantile="0.5"} 6316
http_response_size_bytes{handler="static",quantile="0.9"} 6316
http_response_size_bytes{handler="static",quantile="0.99"} 6316
http_response_size_bytes_sum{handler="static"} 18948
http_response_size_bytes_count{handler="static"} 3
http_response_size_bytes{handler="status",quantile="0.5"} NaN
http_response_size_bytes{handler="status",quantile="0.9"} NaN
http_response_size_bytes{handler="status",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="status"} 0
http_response_size_bytes_count{handler="status"} 0
http_response_size_bytes{handler="targets",quantile="0.5"} NaN
http_response_size_bytes{handler="targets",quantile="0.9"} NaN
http_response_size_bytes{handler="targets",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="targets"} 0
http_response_size_bytes_count{handler="targets"} 0
http_response_size_bytes{handler="version",quantile="0.5"} NaN
http_response_size_bytes{handler="version",quantile="0.9"} NaN
http_response_size_bytes{handler="version",quantile="0.99"} NaN
http_response_size_bytes_sum{handler="version"} 0
http_response_size_bytes_count{handler="version"} 0
prometheus_build_info{branch="",goversion="go1.7.3",revision="",version=""} 1
prometheus_config_last_reload_success_timestamp_seconds 1.484395547e+09
prometheus_config_last_reload_successful 1
prometheus_evaluator_duration_seconds{quantile="0.01"} 1.7890000000000002e-06
prometheus_evaluator_duration_seconds{quantile="0.05"} 1.7890000000000002e-06
prometheus_evaluator_duration_seconds{quantile="0.5"} 1.7890000000000002e-06
prometheus_evaluator_duration_seconds{quantile="0.9"} 1.7890000000000002e-06
prometheus_evaluator_duration_seconds{quantile="0.99"} 1.7890000000000002e-06
prometheus_evaluator_duration_seconds_sum 1.7890000000000002e-06
prometheus_evaluator_duration_seconds_count 1
prometheus_evaluator_iterations_skipped_total 0
prometheus_notifications_dropped_total 0
prometheus_notifications_queue_capacity 10000
prometheus_notifications_queue_length 0
prometheus_rule_evaluation_failures_total{rule_type="alerting"} 0
prometheus_rule_evaluation_failures_total{rule_type="recording"} 0
prometheus_sd_azure_refresh_duration_seconds{quantile="0.5"} NaN
prometheus_sd_azure_refresh_duration_seconds{quantile="0.9"} NaN
prometheus_sd_azure_refresh_duration_seconds{quantile="0.99"} NaN
prometheus_sd_azure_refresh_duration_seconds_sum 0
prometheus_sd_azure_refresh_duration_seconds_count 0
prometheus_sd_azure_refresh_failures_total 0
prometheus_sd_consul_rpc_duration_seconds{call="service",endpoint="catalog",quantile="0.5"} NaN
prometheus_sd_consul_rpc_duration_seconds{call="service",endpoint="catalog",quantile="0.9"} NaN
prometheus_sd_consul_rpc_duration_seconds{call="service",endpoint="catalog",quantile="0.99"} NaN
prometheus_sd_consul_rpc_duration_seconds_sum{call="service",endpoint="catalog"} 0
prometheus_sd_consul_rpc_duration_seconds_count{call="service",endpoint="catalog"} 0
prometheus_sd_consul_rpc_duration_seconds{call="services",endpoint="catalog",quantile="0.5"} NaN
prometheus_sd_consul_rpc_duration_seconds{call="services",endpoint="catalog",quantile="0.9"} NaN
prometheus_sd_consul_rpc_duration_seconds{call="services",endpoint="catalog",quantile="0.99"} NaN
prometheus_sd_consul_rpc_duration_seconds_sum{call="services",endpoint="catalog"} 0
prometheus_sd_consul_rpc_duration_seconds_count{call="services",endpoint="catalog"} 0
prometheus_sd_consul_rpc_failures_total 0
prometheus_sd_dns_lookup_failures_total 0
prometheus_sd_dns_lookups_total 0
prometheus_sd_ec2_refresh_duration_seconds{quantile="0.5"} NaN
prometheus_sd_ec2_refresh_duration_seconds{quantile="0.9"} NaN
prometheus_sd_ec2_refresh_duration_seconds{quantile="0.99"} NaN
prometheus_sd_ec2_refresh_duration_seconds_sum 0
prometheus_sd_ec2_refresh_duration_seconds_count 0
prometheus_sd_ec2_refresh_failures_total 0
prometheus_sd_file_read_errors_total 0
prometheus_sd_file_scan_duration_seconds{quantile="0.5"} NaN
prometheus_sd_file_scan_duration_seconds{quantile="0.9"} NaN
prometheus_sd_file_scan_duration_seconds{quantile="0.99"} NaN
prometheus_sd_file_scan_duration_seconds_sum 0
prometheus_sd_file_scan_duration_seconds_count 0
prometheus_sd_gce_refresh_duration{quantile="0.5"} NaN
prometheus_sd_gce_refresh_duration{quantile="0.9"} NaN
prometheus_sd_gce_refresh_duration{quantile="0.99"} NaN
prometheus_sd_gce_refresh_duration_sum 0
prometheus_sd_gce_refresh_duration_count 0
prometheus_sd_gce_refresh_failures_total 0
prometheus_sd_kubernetes_events_total{event="add",role="endpoints"} 0
prometheus_sd_kubernetes_events_total{event="add",role="node"} 0
prometheus_sd_kubernetes_events_total{event="add",role="pod"} 0
prometheus_sd_kubernetes_events_total{event="add",role="service"} 0
prometheus_sd_kubernetes_events_total{event="delete",role="endpoints"} 0
prometheus_sd_kubernetes_events_total{event="delete",role="node"} 0
prometheus_sd_kubernetes_events_total{event="delete",role="pod"} 0
prometheus_sd_kubernetes_events_total{event="delete",role="service"} 0
prometheus_sd_kubernetes_events_total{event="update",role="endpoints"} 0
prometheus_sd_kubernetes_events_total{event="update",role="node"} 0
prometheus_sd_kubernetes_events_total{event="update",role="pod"} 0
prometheus_sd_kubernetes_events_total{event="update",role="service"} 0
prometheus_sd_marathon_refresh_duration_seconds{quantile="0.5"} NaN
prometheus_sd_marathon_refresh_duration_seconds{quantile="0.9"} NaN
prometheus_sd_marathon_refresh_duration_seconds{quantile="0.99"} NaN
prometheus_sd_marathon_refresh_duration_seconds_sum 0
prometheus_sd_marathon_refresh_duration_seconds_count 0
prometheus_sd_marathon_refresh_failures_total 0
prometheus_target_interval_length_seconds{interval="50ms",quantile="0.01"} 0.046182157
prometheus_target_interval_length_seconds{interval="50ms",quantile="0.05"} 0.047306979000000006
prometheus_target_interval_length_seconds{interval="50ms",quantile="0.5"} 0.050381782
prometheus_target_interval_length_seconds{interval="50ms",quantile="0.9"} 0.052614556
prometheus_target_interval_length_seconds{interval="50ms",quantile="0.99"} 0.054404386000000006
prometheus_target_interval_length_seconds_sum{interval="50ms"} 34.512091221999995
prometheus_target_interval_length_seconds_count{interval="50ms"} 685
prometheus_target_scrape_pool_sync_total{scrape_job="prometheus"} 1
prometheus_target_skipped_scrapes_total 0
prometheus_target_sync_length_seconds{scrape_job="prometheus",quantile="0.01"} 0.00020043300000000002
prometheus_target_sync_length_seconds{scrape_job="prometheus",quantile="0.05"} 0.00020043300000000002
prometheus_target_sync_length_seconds{scrape_job="prometheus",quantile="0.5"} 0.00020043300000000002
prometheus_target_sync_length_seconds{scrape_job="prometheus",quantile="0.9"} 0.00020043300000000002
prometheus_target_sync_length_seconds{scrape_job="prometheus",quantile="0.99"} 0.00020043300000000002
prometheus_target_sync_length_seconds_sum{scrape_job="prometheus"} 0.00020043300000000002
prometheus_target_sync_length_seconds_count{scrape_job="prometheus"} 1
prometheus_treecache_watcher_goroutines 0
prometheus_treecache_zookeeper_failures_total 0

BIN
pkg/textparse/textparse.test Executable file

Binary file not shown.