refactor: move v2/v1/models to v2/models

pull/19446/head
Stuart Carnie 2020-07-28 15:59:11 -07:00
parent a71b43ff17
commit 89532f0c29
No known key found for this signature in database
GPG Key ID: 848D9C9718D78B4F
126 changed files with 800 additions and 8477 deletions

View File

@ -16,8 +16,8 @@ import (
"sync/atomic"
"github.com/influxdata/influxdb/v2/logger"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/file"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxdb/v2/v1/tsdb/engine/tsm1"
"github.com/influxdata/influxdb/v2/v1/tsdb/index/tsi1"

View File

@ -10,7 +10,7 @@ import (
"time"
"github.com/influxdata/influxdb/v2/cmd/influx_inspect/verify/seriesfile"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"go.uber.org/zap"
)

View File

@ -7,7 +7,7 @@ import (
"github.com/gogo/protobuf/proto"
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
// MetricsCollection is the struct including metrics and other requirements.

View File

@ -16,8 +16,8 @@ import (
kitio "github.com/influxdata/influxdb/v2/kit/io"
"github.com/influxdata/influxdb/v2/kit/tracing"
kithttp "github.com/influxdata/influxdb/v2/kit/transport/http"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/storage"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/opentracing/opentracing-go"
"go.uber.org/zap"
"istio.io/pkg/log"

View File

@ -16,7 +16,6 @@ import (
httpmock "github.com/influxdata/influxdb/v2/http/mock"
kithttp "github.com/influxdata/influxdb/v2/kit/transport/http"
"github.com/influxdata/influxdb/v2/mock"
"github.com/influxdata/influxdb/v2/models"
influxtesting "github.com/influxdata/influxdb/v2/testing"
"go.uber.org/zap/zaptest"
)
@ -293,60 +292,6 @@ func TestWriteHandler_handleWrite(t *testing.T) {
body: `{"code":"request too large","message":"unable to read data: points batch is too large"}`,
},
},
{
name: "bytes limit rejected",
request: request{
org: "043e0780ee2b1000",
bucket: "04504b356e23b000",
body: "m1,t1=v1 f1=1",
auth: bucketWritePermission("043e0780ee2b1000", "04504b356e23b000"),
},
state: state{
org: testOrg("043e0780ee2b1000"),
bucket: testBucket("043e0780ee2b1000", "04504b356e23b000"),
opts: []WriteHandlerOption{WithParserOptions(models.WithParserMaxBytes(5))},
},
wants: wants{
code: 413,
body: `{"code":"request too large","message":"points: number of allocated bytes exceeded"}`,
},
},
{
name: "lines limit rejected",
request: request{
org: "043e0780ee2b1000",
bucket: "04504b356e23b000",
body: "m1,t1=v1 f1=1\nm1,t1=v1 f1=1\nm1,t1=v1 f1=1\n",
auth: bucketWritePermission("043e0780ee2b1000", "04504b356e23b000"),
},
state: state{
org: testOrg("043e0780ee2b1000"),
bucket: testBucket("043e0780ee2b1000", "04504b356e23b000"),
opts: []WriteHandlerOption{WithParserOptions(models.WithParserMaxLines(2))},
},
wants: wants{
code: 413,
body: `{"code":"request too large","message":"points: number of lines exceeded"}`,
},
},
{
name: "values limit rejected",
request: request{
org: "043e0780ee2b1000",
bucket: "04504b356e23b000",
body: "m1,t1=v1 f1=1,f2=2\nm1,t1=v1 f1=1,f2=2\nm1,t1=v1 f1=1,f2=2\n",
auth: bucketWritePermission("043e0780ee2b1000", "04504b356e23b000"),
},
state: state{
org: testOrg("043e0780ee2b1000"),
bucket: testBucket("043e0780ee2b1000", "04504b356e23b000"),
opts: []WriteHandlerOption{WithParserOptions(models.WithParserMaxValues(4))},
},
wants: wants{
code: 413,
body: `{"code":"request too large","message":"points: number of values exceeded"}`,
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {

View File

@ -6,7 +6,7 @@ import (
"strings"
"time"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -1,7 +1,7 @@
package query
import (
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
// Emitter reads from a cursor into rows.

View File

@ -11,7 +11,7 @@ import (
"sync/atomic"
"time"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
"go.uber.org/zap"
)

View File

@ -5,7 +5,7 @@ import (
"errors"
"fmt"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -7,7 +7,7 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -8,7 +8,7 @@ import (
"sync"
"time"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
"go.uber.org/zap"
)

View File

@ -5,7 +5,7 @@ import (
"sync"
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
// PointsWriter is a mock structure for writing points.

View File

@ -1,9 +1,9 @@
package mock
import (
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/data/gen"
"github.com/influxdata/influxdb/v2/storage/reads"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)

View File

@ -74,14 +74,6 @@ var (
// ErrInvalidKevValuePairs is returned when the number of key, value pairs
// is odd, indicating a missing value.
ErrInvalidKevValuePairs = errors.New("key/value pairs is an odd length")
// ErrMeasurementTagExpected is returned by ParseMeasurement when parsing a
// series key where the first tag key is not a measurement.
ErrMeasurementTagExpected = errors.New("measurement tag expected")
// ErrInvalidKey is returned by ParseMeasurement when parsing a an empty
// or invalid series key.
ErrInvalidKey = errors.New("invalid key")
)
const (
@ -191,25 +183,6 @@ const (
Unsigned
)
func (t FieldType) String() string {
switch t {
case Integer:
return "Integer"
case Float:
return "Float"
case Boolean:
return "Boolean"
case String:
return "String"
case Empty:
return "Empty"
case Unsigned:
return "Unsigned"
default:
return "<unknown>"
}
}
// FieldIterator provides a low-allocation interface to iterate through a point's fields.
type FieldIterator interface {
// Next indicates whether there any fields remaining.
@ -244,32 +217,13 @@ type FieldIterator interface {
type Points []Point
// Len implements sort.Interface.
func (p Points) Len() int { return len(p) }
func (a Points) Len() int { return len(a) }
// Less implements sort.Interface.
func (p Points) Less(i, j int) bool { return p[i].Time().Before(p[j].Time()) }
func (a Points) Less(i, j int) bool { return a[i].Time().Before(a[j].Time()) }
// Swap implements sort.Interface.
func (p Points) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
func (p Points) String() string {
const sep = "\n"
switch len(p) {
case 0:
return ""
case 1:
return p[0].String()
}
var b strings.Builder
b.WriteString(p[0].String())
for _, s := range p[1:] {
b.WriteString(sep)
b.WriteString(s.String())
}
return b.String()
}
func (a Points) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
// point is the default implementation of Point.
type point struct {
@ -283,6 +237,9 @@ type point struct {
// text encoding of field data
fields []byte
// text encoding of timestamp
ts []byte
// cached version of parsed fields from data
cachedFields map[string]interface{}
@ -323,17 +280,13 @@ const (
// ParsePoints returns a slice of Points from a text representation of a point
// with each point separated by newlines. If any points fail to parse, a non-nil error
// will be returned in addition to the points that parsed successfully.
//
// The mm argument supplies the new measurement which is generated by calling
// EscapeMeasurement(EncodeName(orgID, bucketID)). The existing measurement is
// moved to the "_m" tag.
func ParsePoints(buf, mm []byte) ([]Point, error) {
return ParsePointsWithPrecision(buf, mm, time.Now().UTC(), "n")
func ParsePoints(buf []byte) ([]Point, error) {
return ParsePointsWithPrecision(buf, time.Now().UTC(), "n")
}
// ParsePointsString is identical to ParsePoints but accepts a string.
func ParsePointsString(buf, mm string) ([]Point, error) {
return ParsePoints([]byte(buf), []byte(mm))
func ParsePointsString(buf string) ([]Point, error) {
return ParsePoints([]byte(buf))
}
// ParseKey returns the measurement name and tags from a point.
@ -362,7 +315,7 @@ func ParseKeyBytesWithTags(buf []byte, tags Tags) ([]byte, Tags) {
} else {
name = buf[:i]
}
return UnescapeMeasurement(name), tags
return unescapeMeasurement(name), tags
}
func ParseTags(buf []byte) Tags {
@ -384,35 +337,7 @@ func ParseName(buf []byte) []byte {
name = buf[:i]
}
return UnescapeMeasurement(name)
}
// ParseMeasurement returns the value of the tag identified by MeasurementTagKey; otherwise,
// an error is returned.
//
// buf must be a normalized series key, such that the tags are
// lexicographically sorted and therefore the measurement tag is first.
func ParseMeasurement(buf []byte) ([]byte, error) {
pos, name := scanTo(buf, 0, ',')
// it's an empty key, so there are no tags
if len(name) == 0 {
return nil, ErrInvalidKey
}
i := pos + 1
var key, value []byte
i, key = scanTo(buf, i, '=')
if string(key) != MeasurementTagKey {
return nil, ErrMeasurementTagExpected
}
_, value = scanTagValue(buf, i+1)
if bytes.IndexByte(value, '\\') != -1 {
// hasEscape
return unescapeTag(value), nil
}
return value, nil
return unescapeMeasurement(name)
}
// ValidPrecision checks if the precision is known.
@ -425,21 +350,137 @@ func ValidPrecision(precision string) bool {
}
}
func ParsePointsWithOptions(buf []byte, mm []byte, opts ...ParserOption) (_ []Point, err error) {
pp := newPointsParser(mm, opts...)
err = pp.parsePoints(buf)
return pp.points, err
}
// ParsePointsWithPrecision is similar to ParsePoints, but allows the
// caller to provide a precision for time.
//
// NOTE: to minimize heap allocations, the returned Points will refer to subslices of buf.
// This can have the unintended effect preventing buf from being garbage collected.
func ParsePointsWithPrecision(buf []byte, mm []byte, defaultTime time.Time, precision string) (_ []Point, err error) {
pp := newPointsParser(mm, WithParserDefaultTime(defaultTime), WithParserPrecision(precision))
err = pp.parsePoints(buf)
return pp.points, err
func ParsePointsWithPrecision(buf []byte, defaultTime time.Time, precision string) ([]Point, error) {
points := make([]Point, 0, bytes.Count(buf, []byte{'\n'})+1)
var (
pos int
block []byte
failed []string
)
for pos < len(buf) {
pos, block = scanLine(buf, pos)
pos++
if len(block) == 0 {
continue
}
start := skipWhitespace(block, 0)
// If line is all whitespace, just skip it
if start >= len(block) {
continue
}
// lines which start with '#' are comments
if block[start] == '#' {
continue
}
// strip the newline if one is present
if block[len(block)-1] == '\n' {
block = block[:len(block)-1]
}
pt, err := parsePoint(block[start:], defaultTime, precision)
if err != nil {
failed = append(failed, fmt.Sprintf("unable to parse '%s': %v", string(block[start:]), err))
} else {
points = append(points, pt)
}
}
if len(failed) > 0 {
return points, fmt.Errorf("%s", strings.Join(failed, "\n"))
}
return points, nil
}
func parsePoint(buf []byte, defaultTime time.Time, precision string) (Point, error) {
// scan the first block which is measurement[,tag1=value1,tag2=value2...]
pos, key, err := scanKey(buf, 0)
if err != nil {
return nil, err
}
// measurement name is required
if len(key) == 0 {
return nil, fmt.Errorf("missing measurement")
}
if len(key) > MaxKeyLength {
return nil, fmt.Errorf("max key length exceeded: %v > %v", len(key), MaxKeyLength)
}
// scan the second block is which is field1=value1[,field2=value2,...]
pos, fields, err := scanFields(buf, pos)
if err != nil {
return nil, err
}
// at least one field is required
if len(fields) == 0 {
return nil, fmt.Errorf("missing fields")
}
var maxKeyErr error
err = walkFields(fields, func(k, v []byte) bool {
if sz := seriesKeySize(key, k); sz > MaxKeyLength {
maxKeyErr = fmt.Errorf("max key length exceeded: %v > %v", sz, MaxKeyLength)
return false
}
return true
})
if err != nil {
return nil, err
}
if maxKeyErr != nil {
return nil, maxKeyErr
}
// scan the last block which is an optional integer timestamp
pos, ts, err := scanTime(buf, pos)
if err != nil {
return nil, err
}
pt := &point{
key: key,
fields: fields,
ts: ts,
}
if len(ts) == 0 {
pt.time = defaultTime
pt.SetPrecision(precision)
} else {
ts, err := parseIntBytes(ts, 10, 64)
if err != nil {
return nil, err
}
pt.time, err = SafeCalcTime(ts, precision)
if err != nil {
return nil, err
}
// Determine if there are illegal non-whitespace characters after the
// timestamp block.
for pos < len(buf) {
if buf[pos] != ' ' {
return nil, ErrInvalidPoint
}
pos++
}
}
return pt, nil
}
// GetPrecisionMultiplier will return a multiplier for the precision specified.
@ -1229,7 +1270,7 @@ func EscapeMeasurement(in []byte) []byte {
return in
}
func UnescapeMeasurement(in []byte) []byte {
func unescapeMeasurement(in []byte) []byte {
if bytes.IndexByte(in, '\\') == -1 {
return in
}
@ -1328,15 +1369,6 @@ func NewPoint(name string, tags Tags, fields Fields, t time.Time) (Point, error)
}, nil
}
// NewPointFromSeries returns a Point given the serialized key, some fields, and a time.
func NewPointFromSeries(key []byte, fields Fields, t time.Time) Point {
return &point{
key: key,
time: t,
fields: fields.MarshalBinary(),
}
}
// pointKey checks some basic requirements for valid points, and returns the
// key, along with an possible error.
func pointKey(measurement string, tags Tags, fields Fields, t time.Time) ([]byte, error) {
@ -1358,7 +1390,7 @@ func pointKey(measurement string, tags Tags, fields Fields, t time.Time) ([]byte
return nil, fmt.Errorf("+/-Inf is an unsupported value for field %s", key)
}
if math.IsNaN(value) {
return nil, fmt.Errorf("NAN is an unsupported value for field %s", key)
return nil, fmt.Errorf("NaN is an unsupported value for field %s", key)
}
case float32:
// Ensure the caller validates and handles invalid field values
@ -1366,7 +1398,7 @@ func pointKey(measurement string, tags Tags, fields Fields, t time.Time) ([]byte
return nil, fmt.Errorf("+/-Inf is an unsupported value for field %s", key)
}
if math.IsNaN(float64(value)) {
return nil, fmt.Errorf("NAN is an unsupported value for field %s", key)
return nil, fmt.Errorf("NaN is an unsupported value for field %s", key)
}
}
if len(key) == 0 {
@ -1374,15 +1406,9 @@ func pointKey(measurement string, tags Tags, fields Fields, t time.Time) ([]byte
}
}
estimatedSize := len(measurement) + 10 // add additional buffer for escaping & spaces
for _, t := range tags {
estimatedSize += len(t.Key) + len(t.Value) + 2
}
buf := make([]byte, 0, estimatedSize)
key := AppendMakeKey(buf, []byte(measurement), tags)
key := MakeKey([]byte(measurement), tags)
for field := range fields {
sz := seriesKeySizeV1(key, []byte(field))
sz := seriesKeySize(key, []byte(field))
if sz > MaxKeyLength {
return nil, fmt.Errorf("max key length exceeded: %v > %v", sz, MaxKeyLength)
}
@ -1391,12 +1417,10 @@ func pointKey(measurement string, tags Tags, fields Fields, t time.Time) ([]byte
return key, nil
}
func seriesKeySizeV1(key, field []byte) int {
return len(key) + len("#!~#") + len(field)
}
func seriesKeySizeV2(key, mm, field []byte) int {
return len(mm) + len(",\xFF=") + len(field) + len(",\x00=") + len(key) + len("#!~#") + len(field)
func seriesKeySize(key, field []byte) int {
// 4 is the length of the tsm1.fieldKeySeparator constant. It's inlined here to avoid a circular
// dependency.
return len(key) + 4 + len(field)
}
// NewPointFromBytes returns a new Point from a marshalled Point.
@ -1565,12 +1589,10 @@ func walkTags(buf []byte, fn func(key, value []byte) bool) {
// walkFields walks each field key and value via fn. If fn returns false, the iteration
// is stopped. The values are the raw byte slices and not the converted types.
func walkFields(buf []byte, fn func(key, value, data []byte) bool) error {
func walkFields(buf []byte, fn func(key, value []byte) bool) error {
var i int
var key, val []byte
for len(buf) > 0 {
data := buf
i, key = scanTo(buf, 0, '=')
if i > len(buf)-2 {
return fmt.Errorf("invalid value: field-key=%s", key)
@ -1578,7 +1600,7 @@ func walkFields(buf []byte, fn func(key, value, data []byte) bool) error {
buf = buf[i+1:]
i, val = scanFieldValue(buf, 0)
buf = buf[i:]
if !fn(key, val, data[:len(data)-len(buf)]) {
if !fn(key, val) {
break
}
@ -1630,7 +1652,7 @@ func MakeKey(name []byte, tags Tags) []byte {
func AppendMakeKey(dst []byte, name []byte, tags Tags) []byte {
// unescape the name and then re-escape it to avoid double escaping.
// The key should always be stored in escaped form.
dst = append(dst, EscapeMeasurement(UnescapeMeasurement(name))...)
dst = append(dst, EscapeMeasurement(unescapeMeasurement(name))...)
dst = tags.AppendHashKey(dst)
return dst
}
@ -2569,3 +2591,12 @@ func ValidTagTokens(tags Tags) bool {
}
return true
}
// ValidKeyTokens returns true if the measurement name and all tags are valid.
func ValidKeyTokens(name string, tags Tags) bool {
if !ValidToken([]byte(name)) {
return false
}
return ValidTagTokens(tags)
}

View File

@ -3,7 +3,7 @@ package models
import "testing"
func TestMarshalPointNoFields(t *testing.T) {
points, err := ParsePointsString("m,k=v f=0i", "foo")
points, err := ParsePointsString("m,k=v f=0i")
if err != nil {
t.Fatal(err)
}

View File

@ -1,349 +0,0 @@
package models
import (
"bytes"
"errors"
"fmt"
"strings"
"time"
"unsafe"
)
// Limits errors
var (
// ErrLimitMaxLinesExceeded is the error returned by ParsePointsWithOptions when
// the number of lines in the source buffer exceeds the specified limit.
ErrLimitMaxLinesExceeded = errors.New("points: number of lines exceeded")
// ErrLimitMaxValuesExceeded is the error returned by ParsePointsWithOptions when
// the number of parsed values exceeds the specified limit.
ErrLimitMaxValuesExceeded = errors.New("points: number of values exceeded")
// ErrLimitMaxBytesExceeded is the error returned by ParsePointsWithOptions when
// the number of allocated bytes to parse the source buffer exceeds the specified limit.
ErrLimitMaxBytesExceeded = errors.New("points: number of allocated bytes exceeded")
errLimit = errors.New("points: limit exceeded")
)
type ParserStats struct {
// BytesN reports the number of bytes allocated to parse the request.
BytesN int
}
type ParserOption func(*pointsParser)
// WithParserPrecision specifies the default precision for to use to truncate timestamps.
func WithParserPrecision(precision string) ParserOption {
return func(pp *pointsParser) {
pp.precision = precision
}
}
// WithParserDefaultTime specifies the default time to assign to values when no timestamp is provided.
func WithParserDefaultTime(t time.Time) ParserOption {
return func(pp *pointsParser) {
pp.defaultTime = t
}
}
// WithParserMaxBytes specifies the maximum number of bytes that may be allocated when processing a single request.
func WithParserMaxBytes(n int) ParserOption {
return func(pp *pointsParser) {
pp.maxBytes = n
}
}
// WithParserMaxLines specifies the maximum number of lines that may be parsed when processing a single request.
func WithParserMaxLines(n int) ParserOption {
return func(pp *pointsParser) {
pp.maxLines = n
}
}
// WithParserMaxValues specifies the maximum number of values that may be parsed when processing a single request.
func WithParserMaxValues(n int) ParserOption {
return func(pp *pointsParser) {
pp.maxValues = n
}
}
// WithParserStats specifies that s will contain statistics about the parsed request.
func WithParserStats(s *ParserStats) ParserOption {
return func(pp *pointsParser) {
pp.stats = s
}
}
type parserState int
const (
parserStateOK parserState = iota
parserStateBytesLimit
parserStateValueLimit
)
type pointsParser struct {
maxLines int
maxBytes int
maxValues int
bytesN int
orgBucket []byte
defaultTime time.Time // truncated time to assign to points which have no associated timestamp.
precision string
points []Point
state parserState
stats *ParserStats
}
func newPointsParser(orgBucket []byte, opts ...ParserOption) *pointsParser {
pp := &pointsParser{
orgBucket: orgBucket,
defaultTime: time.Now(),
precision: "ns",
state: parserStateOK,
}
for _, opt := range opts {
opt(pp)
}
// truncate the time based in the specified precision
pp.defaultTime = truncateTimeWithPrecision(pp.defaultTime, pp.precision)
return pp
}
func (pp *pointsParser) parsePoints(buf []byte) (err error) {
lineCount := bytes.Count(buf, []byte{'\n'})
if pp.maxLines > 0 && lineCount > pp.maxLines {
return ErrLimitMaxLinesExceeded
}
if !pp.checkAlloc(lineCount+1, int(unsafe.Sizeof(Point(nil)))) {
return ErrLimitMaxBytesExceeded
}
pp.points = make([]Point, 0, lineCount+1)
var (
pos int
block []byte
failed []string
)
for pos < len(buf) && pp.state == parserStateOK {
pos, block = scanLine(buf, pos)
pos++
if len(block) == 0 {
continue
}
// lines which start with '#' are comments
start := skipWhitespace(block, 0)
// If line is all whitespace, just skip it
if start >= len(block) {
continue
}
if block[start] == '#' {
continue
}
// strip the newline if one is present
if lb := block[len(block)-1]; lb == '\n' || lb == '\r' {
block = block[:len(block)-1]
}
err = pp.parsePointsAppend(block[start:])
if err != nil {
if errors.Is(err, errLimit) {
break
}
if !pp.checkAlloc(1, len(block[start:])) {
pp.state = parserStateBytesLimit
break
}
failed = append(failed, fmt.Sprintf("unable to parse '%s': %v", string(block[start:]), err))
}
}
if pp.stats != nil {
pp.stats.BytesN = pp.bytesN
}
if pp.state != parserStateOK {
switch pp.state {
case parserStateBytesLimit:
return ErrLimitMaxBytesExceeded
case parserStateValueLimit:
return ErrLimitMaxValuesExceeded
default:
panic("unreachable")
}
}
if len(failed) > 0 {
return fmt.Errorf("%s", strings.Join(failed, "\n"))
}
return nil
}
func (pp *pointsParser) parsePointsAppend(buf []byte) error {
// scan the first block which is measurement[,tag1=value1,tag2=value=2...]
pos, key, err := scanKey(buf, 0)
if err != nil {
return err
}
// measurement name is required
if len(key) == 0 {
return fmt.Errorf("missing measurement")
}
if len(key) > MaxKeyLength {
return fmt.Errorf("max key length exceeded: %v > %v", len(key), MaxKeyLength)
}
// Since the measurement is converted to a tag and measurements & tags have
// different escaping rules, we need to check if the measurement needs escaping.
_, i, _ := scanMeasurement(key, 0)
keyMeasurement := key[:i-1]
if bytes.IndexByte(keyMeasurement, '=') != -1 {
escapedKeyMeasurement := bytes.Replace(keyMeasurement, []byte("="), []byte(`\=`), -1)
sz := len(escapedKeyMeasurement) + (len(key) - len(keyMeasurement))
if !pp.checkAlloc(1, sz) {
return errLimit
}
newKey := make([]byte, sz)
copy(newKey, escapedKeyMeasurement)
copy(newKey[len(escapedKeyMeasurement):], key[len(keyMeasurement):])
key = newKey
}
// scan the second block is which is field1=value1[,field2=value2,...]
// at least one field is required
pos, fields, err := scanFields(buf, pos)
if err != nil {
return err
} else if len(fields) == 0 {
return fmt.Errorf("missing fields")
}
// scan the last block which is an optional integer timestamp
pos, ts, err := scanTime(buf, pos)
if err != nil {
return err
}
// Build point with timestamp only.
pt := point{}
if len(ts) == 0 {
pt.time = pp.defaultTime
} else {
ts, err := parseIntBytes(ts, 10, 64)
if err != nil {
return err
}
pt.time, err = SafeCalcTime(ts, pp.precision)
if err != nil {
return err
}
// Determine if there are illegal non-whitespace characters after the
// timestamp block.
for pos < len(buf) {
if buf[pos] != ' ' {
return ErrInvalidPoint
}
pos++
}
}
// Loop over fields and split points while validating field.
var walkFieldsErr error
if err := walkFields(fields, func(k, v, fieldBuf []byte) bool {
var newKey []byte
newKey, walkFieldsErr = pp.newV2Key(key, k)
if walkFieldsErr != nil {
return false
}
walkFieldsErr = pp.append(point{time: pt.time, key: newKey, fields: fieldBuf})
return walkFieldsErr == nil
}); err != nil {
return err
} else if walkFieldsErr != nil {
return walkFieldsErr
}
return nil
}
func (pp *pointsParser) append(p point) error {
if pp.maxValues > 0 && len(pp.points) > pp.maxValues {
pp.state = parserStateValueLimit
return errLimit
}
if !pp.checkAlloc(1, int(unsafe.Sizeof(p))) {
return errLimit
}
pp.points = append(pp.points, &p)
return nil
}
func (pp *pointsParser) checkAlloc(n, size int) bool {
newBytes := pp.bytesN + (n * size)
if pp.maxBytes > 0 && newBytes > pp.maxBytes {
pp.state = parserStateBytesLimit
return false
}
pp.bytesN = newBytes
return true
}
// newV2Key returns a new key by converting the old measurement & field into keys.
func (pp *pointsParser) newV2Key(oldKey, field []byte) ([]byte, error) {
mm := pp.orgBucket
if sz := seriesKeySizeV2(oldKey, mm, field); sz > MaxKeyLength {
return nil, fmt.Errorf("max key length exceeded: %v > %v", sz, MaxKeyLength)
}
sz := len(mm) + 1 + len(MeasurementTagKey) + 1 + len(oldKey) + 1 + len(FieldKeyTagKey) + 1 + len(field)
if !pp.checkAlloc(1, sz) {
return nil, errLimit
}
newKey := make([]byte, sz)
buf := newKey
copy(buf, mm)
buf = buf[len(mm):]
buf[0], buf[1], buf[2], buf = ',', MeasurementTagKeyBytes[0], '=', buf[3:]
copy(buf, oldKey)
buf = buf[len(oldKey):]
buf[0], buf[1], buf[2], buf = ',', FieldKeyTagKeyBytes[0], '=', buf[3:]
copy(buf, field)
return newKey, nil
}
func truncateTimeWithPrecision(t time.Time, precision string) time.Time {
switch precision {
case "us":
return t.Truncate(time.Microsecond)
case "ms":
return t.Truncate(time.Millisecond)
case "s":
return t.Truncate(time.Second)
default:
return t
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,554 +0,0 @@
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_redis_consecutive_successes=0 1578431517778522000
prometheus,endpoint=/api/v2/query,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=500 http_query_request_bytes=19098 1578431517778528000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_redis_total_successes=0 1578431517778535000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_frees_total=148566386293 1578431517778535000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_heap_inuse_bytes=134979584 1578431517778536000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_mspan_sys_bytes=23150592 1578431517778538000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_kafka_write_total_failures=0 1578431517778538000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_stack_inuse_bytes=5144576 1578431517778539000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_requests_total=2 1578431517778541000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_requests_total=2 1578431517778543000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_requests_total=1 1578431517778544000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_requests_total=1 1578431517778545000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_requests_total=1 1578431517778546000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_requests_total=22 1578431517778549000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_requests_total=1 1578431517778550000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_requests_total=569 1578431517778553000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_requests_total=569 1578431517778554000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_requests_total=569 1578431517778555000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_requests_total=569 1578431517778556000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_requests_total=569 1578431517778557000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_requests_total=569 1578431517778558000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_requests_total=569 1578431517778559000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_requests_total=17080 1578431517778561000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_requests_total=34165 1578431517778562000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_requests_total=68330 1578431517778563000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_requests_total=5 1578431517778564000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_requests_total=1499492 1578431517778564000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_requests_total=143641 1578431517778565000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_count=141578,storage_producer_node_request_duration_seconds_sum=201042.39155161564 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.001,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.0015,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.0022500000000000003,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.0033750000000000004,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.005062500000000001,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.0075937500000000015,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.011390625000000001,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.017085937500000002,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.025628906250000003,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.03844335937500001,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.057665039062500006,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.08649755859375001,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=0 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.129746337890625,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=3162 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.277ea440004d086e,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=12617 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.29192926025390625,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=21507 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.43789389038085935,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=30739 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.656840835571289,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=40151 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=0.0f52079ffbaba445,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=53068 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=1.39025843efc762bb,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=71804 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=2.30d0587a02d01d38,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=108711 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=3.3864f697e8d4ab0b,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=140717 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=4.987885095119475,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=141414 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=7.481827642679213,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=141503 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=11.222741464018819,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=141507 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=16.83411219602823,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=141526 1578431517778567000
prometheus,env=toolsus1,hostname=host1,le=+Inf,nodename=node1,role=gateway-internal,status=error storage_producer_node_request_duration_seconds_bucket=141578 1578431517778567000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_count=1501555,storage_producer_node_request_duration_seconds_sum=1188856.9056605487 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.001,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.0015,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.0022500000000000003,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.0033750000000000004,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.005062500000000001,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.0075937500000000015,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.011390625000000001,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.017085937500000002,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.025628906250000003,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.03844335937500001,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.057665039062500006,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.08649755859375001,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=0 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.129746337890625,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=22662 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.277ea440004d086e,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=170473 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.29192926025390625,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=360340 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.43789389038085935,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=559743 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.656840835571289,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=820196 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=0.0f52079ffbaba445,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1175909 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=1.39025843efc762bb,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1351424 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=2.30d0587a02d01d38,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1420019 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=3.3864f697e8d4ab0b,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1465150 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=4.987885095119475,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1493100 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=7.481827642679213,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1500952 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=11.222741464018819,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1501375 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=16.83411219602823,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1501491 1578431517778608000
prometheus,env=toolsus1,hostname=host1,le=+Inf,nodename=node1,role=gateway-internal,status=ok storage_producer_node_request_duration_seconds_bucket=1501555 1578431517778608000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=40c69bd39226fa67,role=gateway-internal,status=204 http_write_request_count=39558 1578431517778638000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=40c69bd39226fa67,role=gateway-internal,status=500 http_write_request_count=9751 1578431517778639000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=204 http_write_request_count=1459934 1578431517778641000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=500 http_write_request_count=133890 1578431517778642000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_redis_consecutive_failures=0 1578431517778643000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_mallocs_total=148566627376 1578431517778643000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_stack_sys_bytes=5144576 1578431517778644000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_kafka_write_consecutive_successes=0 1578431517778644000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_heap_alloc_bytes=119636872 1578431517778645000
prometheus,env=toolsus1,hostname=host1,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_count=2063,storage_backup_firehose_request_duration_seconds_sum=1187.3129012100005 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.001,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=79 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.0015,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=84 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.0022500000000000003,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=86 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.0033750000000000004,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=91 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.005062500000000001,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=93 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.0075937500000000015,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=93 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.011390625000000001,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=93 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.017085937500000002,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=94 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.025628906250000003,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=95 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.03844335937500001,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=95 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.057665039062500006,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=97 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.08649755859375001,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=100 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.129746337890625,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=100 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.277ea440004d086e,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=100 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.29192926025390625,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=104 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.43789389038085935,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=580 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.656840835571289,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=1431 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=0.0f52079ffbaba445,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=1977 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=1.39025843efc762bb,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=2019 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=2.30d0587a02d01d38,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=2063 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=3.3864f697e8d4ab0b,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=2063 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=4.987885095119475,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=2063 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=7.481827642679213,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=2063 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=11.222741464018819,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=2063 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=16.83411219602823,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=2063 1578431517778645000
prometheus,env=toolsus1,hostname=host1,le=+Inf,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_duration_seconds_bucket=2063 1578431517778645000
prometheus,env=toolsus1,hostname=host1,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_count=1499492,storage_backup_firehose_request_duration_seconds_sum=81862.25789057177 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.001,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=0 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.0015,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=0 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.0022500000000000003,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=0 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.0033750000000000004,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=0 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.005062500000000001,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=0 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.0075937500000000015,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=2 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.011390625000000001,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=14237 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.017085937500000002,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=185830 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.025628906250000003,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=411651 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.03844335937500001,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=805604 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.057665039062500006,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1140106 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.08649755859375001,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1308659 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.129746337890625,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1402601 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.277ea440004d086e,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1449158 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.29192926025390625,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1478115 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.43789389038085935,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1490317 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.656840835571289,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1496059 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=0.0f52079ffbaba445,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1498355 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=1.39025843efc762bb,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1499179 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=2.30d0587a02d01d38,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1499424 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=3.3864f697e8d4ab0b,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1499475 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=4.987885095119475,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1499491 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=7.481827642679213,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1499492 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=11.222741464018819,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1499492 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=16.83411219602823,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1499492 1578431517778682000
prometheus,env=toolsus1,hostname=host1,le=+Inf,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_duration_seconds_bucket=1499492 1578431517778682000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_goroutines=252 1578431517778716000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_alloc_bytes=119636872 1578431517778716000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_mspan_inuse_bytes=1254528 1578431517778717000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal,status=error storage_producer_node_requests_total=141578 1578431517778717000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal,status=ok storage_producer_node_requests_total=1501555 1578431517778718000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_heap_sys_bytes=1538359296 1578431517778719000
prometheus,endpoint=/api/v2/query,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=500 http_query_request_count=5 1578431517778720000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_buck_hash_sys_bytes=4219449 1578431517778721000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_gc_sys_bytes=59664384 1578431517778721000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=40c69bd39226fa67,role=gateway-internal,status=204 http_write_response_bytes=0 1578431517778723000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=40c69bd39226fa67,role=gateway-internal,status=500 http_write_response_bytes=1031089 1578431517778724000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=204 http_write_response_bytes=0 1578431517778725000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=500 http_write_response_bytes=15460253 1578431517778727000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_gc_duration_seconds_sum=3349.391384265,go_gc_duration_seconds_count=475295 1578431517778728000
prometheus,env=toolsus1,hostname=host1,nodename=node1,quantile=0,role=gateway-internal go_gc_duration_seconds=0.000016941 1578431517778728000
prometheus,env=toolsus1,hostname=host1,nodename=node1,quantile=0.25,role=gateway-internal go_gc_duration_seconds=0.000055612 1578431517778728000
prometheus,env=toolsus1,hostname=host1,nodename=node1,quantile=0.5,role=gateway-internal go_gc_duration_seconds=0.000138294 1578431517778728000
prometheus,env=toolsus1,hostname=host1,nodename=node1,quantile=0.75,role=gateway-internal go_gc_duration_seconds=0.000994865 1578431517778728000
prometheus,env=toolsus1,hostname=host1,nodename=node1,quantile=1,role=gateway-internal go_gc_duration_seconds=0.076084449 1578431517778728000
prometheus,endpoint=/api/v2/query,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=500 http_query_response_bytes=340 1578431517778735000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=40c69bd39226fa67,role=gateway-internal,status=204 http_write_request_bytes=267959637 1578431517778736000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=40c69bd39226fa67,role=gateway-internal,status=500 http_write_request_bytes=850922009 1578431517778737000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=204 http_write_request_bytes=536340398235 1578431517778737000
prometheus,endpoint=/api/v2/write,env=toolsus1,hostname=host1,nodename=node1,org_id=332e4ccb1c0d7943,role=gateway-internal,status=500 http_write_request_bytes=80176295201 1578431517778739000
prometheus,env=toolsus1,error=false,hostname=host1,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_sum=919.3827050980769,auth_prometheus_request_duration_seconds_count=1643133 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.001,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1606623 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.0015,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1613702 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.0022500000000000003,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1618370 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.0033750000000000004,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1622331 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.005062500000000001,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1626334 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.0075937500000000015,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1630070 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.011390625000000001,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1633208 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.017085937500000002,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1635693 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.025628906250000003,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1637696 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.03844335937500001,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1639178 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.057665039062500006,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1640358 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.08649755859375001,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1641226 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.129746337890625,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1641864 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.277ea440004d086e,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1642312 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.29192926025390625,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1642645 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.43789389038085935,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1642901 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.656840835571289,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643045 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=0.0f52079ffbaba445,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643109 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=1.39025843efc762bb,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643127 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=2.30d0587a02d01d38,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643133 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=3.3864f697e8d4ab0b,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643133 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=4.987885095119475,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643133 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=7.481827642679213,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643133 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=11.222741464018819,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643133 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=16.83411219602823,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643133 1578431517778741000
prometheus,env=toolsus1,error=false,hostname=host1,le=+Inf,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_request_duration_seconds_bucket=1643133 1578431517778741000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_kafka_write_total_successes=0 1578431517778773000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_lookups_total=0 1578431517778775000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal,status=error storage_producer_node_values_total=793441442 1578431517778775000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal,status=ok storage_producer_node_values_total=4795395785 1578431517778776000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_mcache_inuse_bytes=27776 1578431517778776000
prometheus,env=toolsus1,hostname=host1,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_count=2063,storage_backup_firehose_request_bytes_sum=151485142 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=1,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=1.75,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=3.0625,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=5.359375,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=9.37890625,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=16.4130859375,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=28.722900390625,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=50.26507568359375,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=87.96388244628906,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=153.93679428100586,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=269.38938999176025,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=0 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=471.43143248558044,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=45 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=825.0050068497658,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=77 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=1443.75876198709,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=85 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=2526.5778334774077,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=99 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=4421.5112085854635,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=102 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=7737.644615024561,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=109 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=13540.878076292982,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=264 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=23696.53663351272,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=801 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=41468.93910864726,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=983 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=72570.6434401327,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=1282 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=126998.62602023222,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=1577 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=222247.59553540638,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2021 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=388933.29218696116,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2026 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=680633.2613271821,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=1.1911082073225686e+06,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=2.1777f6e4feb2ea86+06,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=3.6477688849253664e+06,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=6.3b589ca9a39b4eee+06,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=1.1171292210083935e+07,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=1.9549761367646888e+07,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=3.2fcf160832c9145b+07,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=5.98711441884186e+07,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=1.0477450232973254e+08,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=1.8335537907703194e+08,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,le=+Inf,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_request_bytes_bucket=2063 1578431517778777000
prometheus,env=toolsus1,hostname=host1,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_count=1499492,storage_backup_firehose_request_bytes_sum=71314743155 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=1,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=1.75,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=3.0625,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=5.359375,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=9.37890625,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=16.4130859375,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=28.722900390625,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=50.26507568359375,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=87.96388244628906,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=153.93679428100586,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=0 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=269.38938999176025,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=7 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=471.43143248558044,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=9309 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=825.0050068497658,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=16030 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=1443.75876198709,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=93295 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=2526.5778334774077,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=135980 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=4421.5112085854635,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=194000 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=7737.644615024561,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=244271 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=13540.878076292982,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=416897 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=23696.53663351272,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=679904 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=41468.93910864726,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=851773 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=72570.6434401327,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1147159 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=126998.62602023222,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1353875 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=222247.59553540638,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1497154 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=388933.29218696116,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499466 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=680633.2613271821,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=1.1911082073225686e+06,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=2.1777f6e4feb2ea86+06,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=3.6477688849253664e+06,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=6.3b589ca9a39b4eee+06,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=1.1171292210083935e+07,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=1.9549761367646888e+07,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=3.2fcf160832c9145b+07,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=5.98711441884186e+07,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=1.0477450232973254e+08,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=1.8335537907703194e+08,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,le=+Inf,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_request_bytes_bucket=1499492 1578431517778821000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal,version=go1.12.14 go_info=1 1578431517778868000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_alloc_bytes_total=44851926126768 1578431517778869000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_heap_objects=241083 1578431517778869000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_last_gc_time_seconds=1578417663.9609165 1578431517778870000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_other_sys_bytes=6473663 1578431517778871000
prometheus,env=toolsus1,error=false,hostname=host1,method=FindAuthorizationByToken,nodename=node1,role=gateway-internal auth_prometheus_requests_total=1643133 1578431517778872000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_kafka_write_requests=0 1578431517778872000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_mcache_sys_bytes=32768 1578431517778873000
prometheus,env=toolsus1,hostname=host1,msg=write,nodename=node1,role=gateway-internal,status=error storage_backup_firehose_requests_total=2063 1578431517778873000
prometheus,env=toolsus1,hostname=host1,msg=write,nodename=node1,role=gateway-internal,status=ok storage_backup_firehose_requests_total=1499492 1578431517778874000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_threads=41 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_count=2,http_api_request_duration_seconds_sum=0.00017243 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/api/v2,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778875000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_sum=0.015926886,http_api_request_duration_seconds_count=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/api/v2/dashboards,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=2 1578431517778895000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_count=1,http_api_request_duration_seconds_sum=0.013298411 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/68f629c9e1766828/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778915000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_count=1,http_api_request_duration_seconds_sum=0.034666319 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/api/v2/dashboards/3f7cfe811c58e9bc/cells/6de7b64431004afd/view,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778931000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_count=1,http_api_request_duration_seconds_sum=0.011593125 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/api/v2/labels,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517778949000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_sum=0.412263942,http_api_request_duration_seconds_count=22 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=3 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=18 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=20 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=21 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=21 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=21 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=22 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=22 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=22 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=22 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=22 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/api/v2/me,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=22 1578431517778988000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_count=1,http_api_request_duration_seconds_sum=0.000062196 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/api/v2/setup,role=gateway-internal,status=2XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779019000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_count=569,http_api_request_duration_seconds_sum=62.762816807000014 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=24 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=414 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=482 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=523 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=543 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=558 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=568 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/debug/pprof/allocs,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779036000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_count=569,http_api_request_duration_seconds_sum=6.49957022300001 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=446 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=501 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=527 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=542 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=559 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=565 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=567 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/debug/pprof/block,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779055000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_count=569,http_api_request_duration_seconds_sum=29.609671701999982 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=300 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=414 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=479 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=501 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=523 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=546 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=551 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=563 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/debug/pprof/goroutine,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779072000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_count=569,http_api_request_duration_seconds_sum=62.90559356000006 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=31 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=412 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=484 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=527 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=542 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=558 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=567 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/debug/pprof/heap,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779092000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_count=569,http_api_request_duration_seconds_sum=6.235567286000004 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=444 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=504 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=538 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=544 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=558 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=562 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=568 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/debug/pprof/mutex,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779108000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_count=569,http_api_request_duration_seconds_sum=17129.434994090017 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=0 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/debug/pprof/profile,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779129000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_count=569,http_api_request_duration_seconds_sum=7.0344016 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=435 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=493 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=532 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=547 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=558 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=565 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=567 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=568 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/debug/pprof/threadcreate,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=569 1578431517779145000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_count=17080,http_api_request_duration_seconds_sum=107.89479148400041 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=14892 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=16117 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=16670 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=16845 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=16944 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=17049 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=17068 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=17080 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=17080 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=17080 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=17080 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/health,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=17080 1578431517779163000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_count=34165,http_api_request_duration_seconds_sum=442.01653550500083 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=20433 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=28136 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=32252 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=33182 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=33562 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=33868 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=34038 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=34141 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=34165 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=34165 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=34165 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/metrics,role=gateway-internal,status=2XX,user_agent=Go-http-client http_api_request_duration_seconds_bucket=34165 1578431517779180000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_count=68330,http_api_request_duration_seconds_sum=6.938958378999966 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68262 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68278 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68292 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68310 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68315 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68324 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68329 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68330 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68330 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68330 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68330 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=GET,nodename=node1,path=/ready,role=gateway-internal,status=2XX,user_agent=kube-probe http_api_request_duration_seconds_bucket=68330 1578431517779197000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_count=5,http_api_request_duration_seconds_sum=198.594680122 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=0 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=1 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=POST,nodename=node1,path=/api/v2/query,role=gateway-internal,status=5XX,user_agent=Chrome http_api_request_duration_seconds_bucket=5 1578431517779213000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_count=1499492,http_api_request_duration_seconds_sum=1597291.4117566838 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=123231 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=456270 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=983538 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=1375813 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=1472021 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=1499185 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=2XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=1499492 1578431517779237000
prometheus,env=toolsus1,handler=gateway,hostname=host1,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_count=143641,http_api_request_duration_seconds_sum=237157.3812770574 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.005,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.01,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.025,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.05,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.1,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=0 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.25,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=14335 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=0.5,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=28882 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=1,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=45498 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=2.5,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=109858 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=5,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=143159 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=10,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=143564 1578431517779255000
prometheus,env=toolsus1,handler=gateway,hostname=host1,le=+Inf,method=POST,nodename=node1,path=/api/v2/write,role=gateway-internal,status=5XX,user_agent=Telegraf http_api_request_duration_seconds_bucket=143641 1578431517779255000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_gc_cpu_fraction=0.030752107927046763 1578431517779273000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_heap_released_bytes=774291456 1578431517779274000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_next_gc_bytes=140163248 1578431517779274000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_sys_bytes=1637044728 1578431517779275000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_kafka_write_consecutive_failures=0 1578431517779275000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_redis_requests=0 1578431517779275000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal circuitbreaker_redis_total_failures=0 1578431517779276000
prometheus,env=toolsus1,hostname=host1,nodename=node1,role=gateway-internal go_memstats_heap_idle_bytes=1403379712 1578431517779276000

View File

@ -4,7 +4,7 @@ import (
"container/heap"
"math"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
type mergedSeriesGenerator struct {

View File

@ -4,7 +4,7 @@ import (
"math"
"time"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
type SeriesGenerator interface {

View File

@ -11,7 +11,7 @@ import (
"unicode/utf8"
"github.com/BurntSushi/toml"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/pkg/errors"
)

View File

@ -6,7 +6,7 @@ import (
"github.com/BurntSushi/toml"
"github.com/google/go-cmp/cmp"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
func countableSequenceFnCmp(a, b NewCountableSequenceFn) bool {

View File

@ -6,7 +6,7 @@ import (
"math/rand"
"sort"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
type TagsSequence interface {

View File

@ -7,7 +7,7 @@
package gen
import (
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
)

View File

@ -1,7 +1,7 @@
package gen
import (
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
)

View File

@ -12,10 +12,10 @@ import (
"github.com/influxdata/flux/semantic"
"github.com/influxdata/flux/stdlib/experimental"
platform "github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/query"
"github.com/influxdata/influxdb/v2/query/stdlib/influxdata/influxdb"
"github.com/influxdata/influxdb/v2/storage"
"github.com/influxdata/influxdb/v2/v1/models"
)
// ToKind is the kind for the `to` flux function

View File

@ -15,11 +15,11 @@ import (
"github.com/influxdata/flux/stdlib/universe"
platform "github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/mock"
"github.com/influxdata/influxdb/v2/models"
_ "github.com/influxdata/influxdb/v2/query/builtin"
pquerytest "github.com/influxdata/influxdb/v2/query/querytest"
"github.com/influxdata/influxdb/v2/query/stdlib/experimental"
"github.com/influxdata/influxdb/v2/query/stdlib/influxdata/influxdb"
"github.com/influxdata/influxdb/v2/v1/models"
)
func TestTo_Query(t *testing.T) {

View File

@ -19,9 +19,9 @@ import (
"github.com/influxdata/flux/values"
platform "github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/kit/tracing"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/query"
"github.com/influxdata/influxdb/v2/storage"
"github.com/influxdata/influxdb/v2/v1/models"
)
// ToKind is the kind for the `to` flux function

View File

@ -21,7 +21,6 @@ import (
_ "github.com/influxdata/influxdb/v2/query/builtin"
pquerytest "github.com/influxdata/influxdb/v2/query/querytest"
"github.com/influxdata/influxdb/v2/query/stdlib/influxdata/influxdb"
"github.com/influxdata/influxdb/v2/v1/tsdb"
)
func TestTo_Query(t *testing.T) {
@ -133,8 +132,6 @@ func TestToOpSpec_BucketsAccessed(t *testing.T) {
}
func TestTo_Process(t *testing.T) {
oid, _ := mock.OrganizationLookup{}.Lookup(context.Background(), "my-org")
bid, _ := mock.BucketLookup{}.Lookup(context.Background(), oid, "my-bucket")
type wanted struct {
result *mock.PointsWriter
tables []*executetest.Table
@ -174,7 +171,7 @@ func TestTo_Process(t *testing.T) {
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `a _value=2 11
Points: mockPoints(`a _value=2 11
a _value=2 21
b _value=1 21
a _value=3 31
@ -249,7 +246,7 @@ c _value=4 41`),
},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `a,tag1=a,tag2=aa _value=2 11
Points: mockPoints(`a,tag1=a,tag2=aa _value=2 11
a,tag1=a,tag2=bb _value=2 21
a,tag1=b,tag2=cc _value=1 21
a,tag1=a,tag2=dd _value=3 31
@ -328,7 +325,7 @@ b,tagA=c,tagB=ee,tagC=jj _value=4 41`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `a,tag2=aa _value=2 11
Points: mockPoints(`a,tag2=aa _value=2 11
a,tag2=bb _value=2 21
b,tag2=cc _value=1 21
a,tag2=dd _value=3 31
@ -382,7 +379,7 @@ c,tag2=ee _value=4 41`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `m,tag1=a,tag2=aa _value=2 11
Points: mockPoints(`m,tag1=a,tag2=aa _value=2 11
m,tag1=a,tag2=bb _value=2 21
m,tag1=b,tag2=cc _value=1 21
m,tag1=a,tag2=dd _value=3 31
@ -458,7 +455,7 @@ m,tag1=c,tag2=ee _value=4 41`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `a temperature=2 11
Points: mockPoints(`a temperature=2 11
a temperature=2 21
b temperature=1 21
a temperature=3 31
@ -561,7 +558,7 @@ c temperature=4 41`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `a day="Monday",humidity=1,ratio=2,temperature=2 11
Points: mockPoints(`a day="Monday",humidity=1,ratio=2,temperature=2 11
a day="Tuesday",humidity=2,ratio=1,temperature=2 21
b day="Wednesday",humidity=4,ratio=0.25,temperature=1 21
a day="Thursday",humidity=3,ratio=1,temperature=3 31
@ -650,7 +647,7 @@ c day="Friday",humidity=5,ratio=0.8,temperature=4 41`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `a,tag2=d humidity=50i,temperature=2 11
Points: mockPoints(`a,tag2=d humidity=50i,temperature=2 11
a,tag2=d humidity=50i,temperature=2 21
b,tag2=d humidity=50i,temperature=1 21
a,tag2=e humidity=60i,temperature=3 31
@ -707,7 +704,7 @@ c,tag2=e humidity=65i,temperature=4 41`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `a _value=2 11
Points: mockPoints(`a _value=2 11
a _value=2 21
b _value=1 21
a _hello=3 31
@ -762,7 +759,7 @@ c _hello=4 41`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `m,tag1=a,tag2=aa _value=2 11
Points: mockPoints(`m,tag1=a,tag2=aa _value=2 11
m,tag1=a,tag2=bb _value=2 21
m,tag1=b,tag2=cc _value=1 21
m,tag1=a,tag2=dd _value=3 31
@ -817,7 +814,7 @@ m,tag1=c,tag2=ee _value=4 41`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `m,tag1=a,tag2=aa _value=2 11
Points: mockPoints(`m,tag1=a,tag2=aa _value=2 11
m,tag1=a,tag2=bb _value=2 21
m,tag1=b,tag2=cc _value=1 21
m,tag1=a,tag2=dd _value=3 31`),
@ -870,7 +867,7 @@ m,tag1=a,tag2=dd _value=3 31`),
})},
want: wanted{
result: &mock.PointsWriter{
Points: mockPoints(oid, bid, `m,tag1=a,tag2=aa _value=2 11
Points: mockPoints(`m,tag1=a,tag2=aa _value=2 11
m,tag1=a,tag2=bb _value=2 21
m,tag1=b,tag2=cc _value=1 21
m,tag1=a,tag2=dd _value=3 31
@ -951,9 +948,8 @@ func pointsToStr(points []models.Point) string {
return outStr
}
func mockPoints(org, bucket platform.ID, pointdata string) []models.Point {
name := tsdb.EncodeName(org, bucket)
points, err := models.ParsePoints([]byte(pointdata), name[:])
func mockPoints(pointdata string) []models.Point {
points, err := models.ParsePoints([]byte(pointdata))
if err != nil {
return nil
}

View File

@ -14,8 +14,8 @@ import (
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/kit/tracing"
"github.com/influxdata/influxdb/v2/logger"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/coordinator"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/services/meta"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/pkg/errors"

View File

@ -5,8 +5,8 @@ import (
"github.com/influxdata/flux/ast"
"github.com/influxdata/flux/semantic"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/storage/reads/datatypes"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/pkg/errors"
)

View File

@ -10,10 +10,10 @@ import (
"github.com/influxdata/flux/execute"
"github.com/influxdata/flux/memory"
"github.com/influxdata/flux/values"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/query/stdlib/influxdata/influxdb"
storage "github.com/influxdata/influxdb/v2/storage/reads"
"github.com/influxdata/influxdb/v2/storage/reads/datatypes"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)

View File

@ -14,8 +14,8 @@ import (
"github.com/influxdata/flux/execute"
"github.com/influxdata/flux/memory"
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/models"
storage "github.com/influxdata/influxdb/v2/storage/reads"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)

View File

@ -9,7 +9,7 @@ import (
"github.com/influxdata/flux/memory"
"github.com/influxdata/influxdb/v2"
storage "github.com/influxdata/influxdb/v2/storage/reads"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)
{{range .}}

View File

@ -11,7 +11,7 @@ import (
"github.com/influxdata/flux/arrow"
"github.com/influxdata/flux/execute"
"github.com/influxdata/flux/memory"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
type table struct {

View File

@ -6,7 +6,7 @@ import (
"time"
"github.com/influxdata/influxdb/v2"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
// PointsWriter describes the ability to write points into a storage engine.

View File

@ -7,8 +7,8 @@ import (
"math"
"sort"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/storage/reads/datatypes"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)

View File

@ -7,10 +7,10 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/data/gen"
"github.com/influxdata/influxdb/v2/storage/reads"
"github.com/influxdata/influxdb/v2/storage/reads/datatypes"
"github.com/influxdata/influxdb/v2/v1/models"
)
func TestNewGroupResultSet_Sorting(t *testing.T) {

View File

@ -4,7 +4,7 @@ import (
"bytes"
"strings"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
// tagsKeyMerger is responsible for determining a merged set of tag keys

View File

@ -7,7 +7,7 @@ import (
"testing"
"github.com/google/go-cmp/cmp"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
func TestKeyMerger_MergeTagKeys(t *testing.T) {

View File

@ -4,8 +4,8 @@ import (
"context"
"math"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/storage/reads/datatypes"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)

View File

@ -5,7 +5,7 @@ import (
"io"
"strconv"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)

View File

@ -3,7 +3,7 @@ package reads
import (
"context"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
"github.com/influxdata/influxql"
)

View File

@ -4,8 +4,8 @@ import (
"context"
"github.com/gogo/protobuf/proto"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/storage/reads/datatypes"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)

View File

@ -6,8 +6,8 @@ import (
"io"
"strings"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/storage/reads"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"
)

View File

@ -1,7 +1,7 @@
package reads
import (
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
type tagsBuffer struct {

View File

@ -8,8 +8,8 @@ import (
"sync/atomic"
"time"
"github.com/influxdata/influxdb/v2/models"
influxdb "github.com/influxdata/influxdb/v2/v1"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/services/meta"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"go.uber.org/zap"

View File

@ -8,9 +8,9 @@ import (
"testing"
"time"
"github.com/influxdata/influxdb/v2/models"
influxdb "github.com/influxdata/influxdb/v2/v1"
"github.com/influxdata/influxdb/v2/v1/coordinator"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/services/meta"
"github.com/influxdata/influxdb/v2/v1/tsdb"
)

View File

@ -12,10 +12,10 @@ import (
"time"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/tracing"
"github.com/influxdata/influxdb/v2/pkg/tracing/fields"
influxdb "github.com/influxdata/influxdb/v2/v1"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/monitor"
"github.com/influxdata/influxdb/v2/v1/services/meta"
"github.com/influxdata/influxdb/v2/v1/tsdb"

View File

@ -15,9 +15,9 @@ import (
"github.com/davecgh/go-spew/spew"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/logger"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/coordinator"
"github.com/influxdata/influxdb/v2/v1/internal"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/services/meta"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxql"

View File

@ -1,7 +1,7 @@
package internal
import (
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -5,7 +5,7 @@ import (
"time"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxql"
"go.uber.org/zap"

View File

@ -1,32 +0,0 @@
package models // import "github.com/influxdata/influxdb/v2/v1/models"
// from stdlib hash/fnv/fnv.go
const (
prime64 = 1099511628211
offset64 = 14695981039346656037
)
// InlineFNV64a is an alloc-free port of the standard library's fnv64a.
// See https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function.
type InlineFNV64a uint64
// NewInlineFNV64a returns a new instance of InlineFNV64a.
func NewInlineFNV64a() InlineFNV64a {
return offset64
}
// Write adds data to the running hash.
func (s *InlineFNV64a) Write(data []byte) (int, error) {
hash := uint64(*s)
for _, c := range data {
hash ^= uint64(c)
hash *= prime64
}
*s = InlineFNV64a(hash)
return len(data), nil
}
// Sum64 returns the uint64 of the current resulting hash.
func (s *InlineFNV64a) Sum64() uint64 {
return uint64(*s)
}

View File

@ -1,29 +0,0 @@
package models_test
import (
"hash/fnv"
"testing"
"testing/quick"
"github.com/influxdata/influxdb/v2/v1/models"
)
func TestInlineFNV64aEquivalenceFuzz(t *testing.T) {
f := func(data []byte) bool {
stdlibFNV := fnv.New64a()
stdlibFNV.Write(data)
want := stdlibFNV.Sum64()
inlineFNV := models.NewInlineFNV64a()
inlineFNV.Write(data)
got := inlineFNV.Sum64()
return want == got
}
cfg := &quick.Config{
MaxCount: 10000,
}
if err := quick.Check(f, cfg); err != nil {
t.Fatal(err)
}
}

View File

@ -1,44 +0,0 @@
package models // import "github.com/influxdata/influxdb/v2/v1/models"
import (
"reflect"
"strconv"
"unsafe"
)
// parseIntBytes is a zero-alloc wrapper around strconv.ParseInt.
func parseIntBytes(b []byte, base int, bitSize int) (i int64, err error) {
s := unsafeBytesToString(b)
return strconv.ParseInt(s, base, bitSize)
}
// parseUintBytes is a zero-alloc wrapper around strconv.ParseUint.
func parseUintBytes(b []byte, base int, bitSize int) (i uint64, err error) {
s := unsafeBytesToString(b)
return strconv.ParseUint(s, base, bitSize)
}
// parseFloatBytes is a zero-alloc wrapper around strconv.ParseFloat.
func parseFloatBytes(b []byte, bitSize int) (float64, error) {
s := unsafeBytesToString(b)
return strconv.ParseFloat(s, bitSize)
}
// parseBoolBytes is a zero-alloc wrapper around strconv.ParseBool.
func parseBoolBytes(b []byte) (bool, error) {
return strconv.ParseBool(unsafeBytesToString(b))
}
// unsafeBytesToString converts a []byte to a string without a heap allocation.
//
// It is unsafe, and is intended to prepare input to short-lived functions
// that require strings.
func unsafeBytesToString(in []byte) string {
src := *(*reflect.SliceHeader)(unsafe.Pointer(&in))
dst := reflect.StringHeader{
Data: src.Data,
Len: src.Len,
}
s := *(*string)(unsafe.Pointer(&dst))
return s
}

View File

@ -1,103 +0,0 @@
package models
import (
"strconv"
"testing"
"testing/quick"
)
func TestParseIntBytesEquivalenceFuzz(t *testing.T) {
f := func(b []byte, base int, bitSize int) bool {
exp, expErr := strconv.ParseInt(string(b), base, bitSize)
got, gotErr := parseIntBytes(b, base, bitSize)
return exp == got && checkErrs(expErr, gotErr)
}
cfg := &quick.Config{
MaxCount: 10000,
}
if err := quick.Check(f, cfg); err != nil {
t.Fatal(err)
}
}
func TestParseIntBytesValid64bitBase10EquivalenceFuzz(t *testing.T) {
buf := []byte{}
f := func(n int64) bool {
buf = strconv.AppendInt(buf[:0], n, 10)
exp, expErr := strconv.ParseInt(string(buf), 10, 64)
got, gotErr := parseIntBytes(buf, 10, 64)
return exp == got && checkErrs(expErr, gotErr)
}
cfg := &quick.Config{
MaxCount: 10000,
}
if err := quick.Check(f, cfg); err != nil {
t.Fatal(err)
}
}
func TestParseFloatBytesEquivalenceFuzz(t *testing.T) {
f := func(b []byte, bitSize int) bool {
exp, expErr := strconv.ParseFloat(string(b), bitSize)
got, gotErr := parseFloatBytes(b, bitSize)
return exp == got && checkErrs(expErr, gotErr)
}
cfg := &quick.Config{
MaxCount: 10000,
}
if err := quick.Check(f, cfg); err != nil {
t.Fatal(err)
}
}
func TestParseFloatBytesValid64bitEquivalenceFuzz(t *testing.T) {
buf := []byte{}
f := func(n float64) bool {
buf = strconv.AppendFloat(buf[:0], n, 'f', -1, 64)
exp, expErr := strconv.ParseFloat(string(buf), 64)
got, gotErr := parseFloatBytes(buf, 64)
return exp == got && checkErrs(expErr, gotErr)
}
cfg := &quick.Config{
MaxCount: 10000,
}
if err := quick.Check(f, cfg); err != nil {
t.Fatal(err)
}
}
func TestParseBoolBytesEquivalence(t *testing.T) {
var buf []byte
for _, s := range []string{"1", "t", "T", "TRUE", "true", "True", "0", "f", "F", "FALSE", "false", "False", "fail", "TrUe", "FAlSE", "numbers", ""} {
buf = append(buf[:0], s...)
exp, expErr := strconv.ParseBool(s)
got, gotErr := parseBoolBytes(buf)
if got != exp || !checkErrs(expErr, gotErr) {
t.Errorf("Failed to parse boolean value %q correctly: wanted (%t, %v), got (%t, %v)", s, exp, expErr, got, gotErr)
}
}
}
func checkErrs(a, b error) bool {
if (a == nil) != (b == nil) {
return false
}
return a == nil || a.Error() == b.Error()
}

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +0,0 @@
package models
import "testing"
func TestMarshalPointNoFields(t *testing.T) {
points, err := ParsePointsString("m,k=v f=0i")
if err != nil {
t.Fatal(err)
}
// It's unclear how this can ever happen, but we've observed points that were marshalled without any fields.
points[0].(*point).fields = []byte{}
if _, err := points[0].MarshalBinary(); err != ErrPointMustHaveAField {
t.Fatalf("got error %v, exp %v", err, ErrPointMustHaveAField)
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,62 +0,0 @@
package models
import (
"sort"
)
// Row represents a single row returned from the execution of a statement.
type Row struct {
Name string `json:"name,omitempty"`
Tags map[string]string `json:"tags,omitempty"`
Columns []string `json:"columns,omitempty"`
Values [][]interface{} `json:"values,omitempty"`
Partial bool `json:"partial,omitempty"`
}
// SameSeries returns true if r contains values for the same series as o.
func (r *Row) SameSeries(o *Row) bool {
return r.tagsHash() == o.tagsHash() && r.Name == o.Name
}
// tagsHash returns a hash of tag key/value pairs.
func (r *Row) tagsHash() uint64 {
h := NewInlineFNV64a()
keys := r.tagsKeys()
for _, k := range keys {
h.Write([]byte(k))
h.Write([]byte(r.Tags[k]))
}
return h.Sum64()
}
// tagKeys returns a sorted list of tag keys.
func (r *Row) tagsKeys() []string {
a := make([]string, 0, len(r.Tags))
for k := range r.Tags {
a = append(a, k)
}
sort.Strings(a)
return a
}
// Rows represents a collection of rows. Rows implements sort.Interface.
type Rows []*Row
// Len implements sort.Interface.
func (p Rows) Len() int { return len(p) }
// Less implements sort.Interface.
func (p Rows) Less(i, j int) bool {
// Sort by name first.
if p[i].Name != p[j].Name {
return p[i].Name < p[j].Name
}
// Sort by tag set hash. Tags don't have a meaningful sort order so we
// just compute a hash and sort by that instead. This allows the tests
// to receive rows in a predictable order every time.
return p[i].tagsHash() < p[j].tagsHash()
}
// Swap implements sort.Interface.
func (p Rows) Swap(i, j int) { p[i], p[j] = p[j], p[i] }

View File

@ -1,42 +0,0 @@
package models
// Statistic is the representation of a statistic used by the monitoring service.
type Statistic struct {
Name string `json:"name"`
Tags map[string]string `json:"tags"`
Values map[string]interface{} `json:"values"`
}
// NewStatistic returns an initialized Statistic.
func NewStatistic(name string) Statistic {
return Statistic{
Name: name,
Tags: make(map[string]string),
Values: make(map[string]interface{}),
}
}
// StatisticTags is a map that can be merged with others without causing
// mutations to either map.
type StatisticTags map[string]string
// Merge creates a new map containing the merged contents of tags and t.
// If both tags and the receiver map contain the same key, the value in tags
// is used in the resulting map.
//
// Merge always returns a usable map.
func (t StatisticTags) Merge(tags map[string]string) map[string]string {
// Add everything in tags to the result.
out := make(map[string]string, len(tags))
for k, v := range tags {
out[k] = v
}
// Only add values from t that don't appear in tags.
for k, v := range t {
if _, ok := tags[k]; !ok {
out[k] = v
}
}
return out
}

View File

@ -1,55 +0,0 @@
package models_test
import (
"reflect"
"testing"
"github.com/influxdata/influxdb/v2/v1/models"
)
func TestTags_Merge(t *testing.T) {
examples := []struct {
Base map[string]string
Arg map[string]string
Result map[string]string
}{
{
Base: nil,
Arg: nil,
Result: map[string]string{},
},
{
Base: nil,
Arg: map[string]string{"foo": "foo"},
Result: map[string]string{"foo": "foo"},
},
{
Base: map[string]string{"foo": "foo"},
Arg: nil,
Result: map[string]string{"foo": "foo"},
},
{
Base: map[string]string{"foo": "foo"},
Arg: map[string]string{"bar": "bar"},
Result: map[string]string{"foo": "foo", "bar": "bar"},
},
{
Base: map[string]string{"foo": "foo", "bar": "bar"},
Arg: map[string]string{"zoo": "zoo"},
Result: map[string]string{"foo": "foo", "bar": "bar", "zoo": "zoo"},
},
{
Base: map[string]string{"foo": "foo", "bar": "bar"},
Arg: map[string]string{"bar": "newbar"},
Result: map[string]string{"foo": "foo", "bar": "newbar"},
},
}
for i, example := range examples {
i++
result := models.StatisticTags(example.Base).Merge(example.Arg)
if got, exp := result, example.Result; !reflect.DeepEqual(got, exp) {
t.Errorf("[Example %d] got %#v, expected %#v", i, got, exp)
}
}
}

View File

@ -1,156 +0,0 @@
package models
import (
"bytes"
"strings"
)
// TagKeysSet provides set operations for combining Tags.
type TagKeysSet struct {
i int
keys [2][][]byte
tmp [][]byte
}
// Clear removes all the elements of TagKeysSet and ensures all internal
// buffers are reset.
func (set *TagKeysSet) Clear() {
set.clear(set.keys[0])
set.clear(set.keys[1])
set.clear(set.tmp)
set.i = 0
set.keys[0] = set.keys[0][:0]
}
func (set *TagKeysSet) clear(b [][]byte) {
b = b[:cap(b)]
for i := range b {
b[i] = nil
}
}
// KeysBytes returns the merged keys in lexicographical order.
// The slice is valid until the next call to UnionKeys, UnionBytes or Reset.
func (set *TagKeysSet) KeysBytes() [][]byte {
return set.keys[set.i&1]
}
// Keys returns a copy of the merged keys in lexicographical order.
func (set *TagKeysSet) Keys() []string {
keys := set.KeysBytes()
s := make([]string, 0, len(keys))
for i := range keys {
s = append(s, string(keys[i]))
}
return s
}
func (set *TagKeysSet) String() string {
var s []string
for _, k := range set.KeysBytes() {
s = append(s, string(k))
}
return strings.Join(s, ",")
}
// IsSupersetKeys returns true if the TagKeysSet is a superset of all the keys
// contained in other.
func (set *TagKeysSet) IsSupersetKeys(other Tags) bool {
keys := set.keys[set.i&1]
i, j := 0, 0
for i < len(keys) && j < len(other) {
if cmp := bytes.Compare(keys[i], other[j].Key); cmp > 0 {
return false
} else if cmp == 0 {
j++
}
i++
}
return j == len(other)
}
// IsSupersetBytes returns true if the TagKeysSet is a superset of all the keys
// in other.
// Other must be lexicographically sorted or the results are undefined.
func (set *TagKeysSet) IsSupersetBytes(other [][]byte) bool {
keys := set.keys[set.i&1]
i, j := 0, 0
for i < len(keys) && j < len(other) {
if cmp := bytes.Compare(keys[i], other[j]); cmp > 0 {
return false
} else if cmp == 0 {
j++
}
i++
}
return j == len(other)
}
// UnionKeys updates the set so that it is the union of itself and all the
// keys contained in other.
func (set *TagKeysSet) UnionKeys(other Tags) {
if set.IsSupersetKeys(other) {
return
}
if l := len(other); cap(set.tmp) < l {
set.tmp = make([][]byte, l)
} else {
set.tmp = set.tmp[:l]
}
for i := range other {
set.tmp[i] = other[i].Key
}
set.merge(set.tmp)
}
// UnionBytes updates the set so that it is the union of itself and all the
// keys contained in other.
// Other must be lexicographically sorted or the results are undefined.
func (set *TagKeysSet) UnionBytes(other [][]byte) {
if set.IsSupersetBytes(other) {
return
}
set.merge(other)
}
func (set *TagKeysSet) merge(in [][]byte) {
keys := set.keys[set.i&1]
l := len(keys) + len(in)
set.i = (set.i + 1) & 1
keya := set.keys[set.i&1]
if cap(keya) < l {
keya = make([][]byte, 0, l)
} else {
keya = keya[:0]
}
i, j := 0, 0
for i < len(keys) && j < len(in) {
ki, kj := keys[i], in[j]
if cmp := bytes.Compare(ki, kj); cmp < 0 {
i++
} else if cmp > 0 {
ki = kj
j++
} else {
i++
j++
}
keya = append(keya, ki)
}
if i < len(keys) {
keya = append(keya, keys[i:]...)
} else if j < len(in) {
keya = append(keya, in[j:]...)
}
set.keys[set.i&1] = keya
}

View File

@ -1,325 +0,0 @@
package models_test
import (
"bytes"
"math/rand"
"strconv"
"testing"
"github.com/google/go-cmp/cmp"
"github.com/influxdata/influxdb/v2/v1/models"
)
func TestTagKeysSet_UnionKeys(t *testing.T) {
tests := []struct {
name string
tags []models.Tags
exp string
}{
{
name: "mixed",
tags: []models.Tags{
models.ParseTags([]byte("foo,tag0=v0,tag1=v0,tag2=v0")),
models.ParseTags([]byte("foo,tag0=v0,tag1=v0,tag2=v1")),
models.ParseTags([]byte("foo,tag0=v0")),
models.ParseTags([]byte("foo,tag0=v0,tag3=v0")),
},
exp: "tag0,tag1,tag2,tag3",
},
{
name: "mixed 2",
tags: []models.Tags{
models.ParseTags([]byte("foo,tag0=v0")),
models.ParseTags([]byte("foo,tag0=v0,tag3=v0")),
models.ParseTags([]byte("foo,tag0=v0,tag1=v0,tag2=v0")),
models.ParseTags([]byte("foo,tag0=v0,tag1=v0,tag2=v1")),
},
exp: "tag0,tag1,tag2,tag3",
},
{
name: "all different",
tags: []models.Tags{
models.ParseTags([]byte("foo,tag0=v0")),
models.ParseTags([]byte("foo,tag1=v0")),
models.ParseTags([]byte("foo,tag2=v1")),
models.ParseTags([]byte("foo,tag3=v0")),
},
exp: "tag0,tag1,tag2,tag3",
},
{
name: "new tags,verify clear",
tags: []models.Tags{
models.ParseTags([]byte("foo,tag9=v0")),
models.ParseTags([]byte("foo,tag8=v0")),
},
exp: "tag8,tag9",
},
}
var km models.TagKeysSet
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
km.Clear()
for _, tags := range tt.tags {
km.UnionKeys(tags)
}
if got := km.String(); !cmp.Equal(got, tt.exp) {
t.Errorf("unexpected keys -got/+exp\n%s", cmp.Diff(got, tt.exp))
}
})
}
}
func TestTagKeysSet_IsSuperset(t *testing.T) {
var km models.TagKeysSet
km.UnionBytes(bytes.Split([]byte("tag0,tag3,tag5,tag7"), commaB))
tests := []struct {
name string
tags models.Tags
exp bool
}{
{
tags: models.ParseTags([]byte("foo,tag0=v,tag3=v")),
exp: true,
},
{
tags: models.ParseTags([]byte("foo,tag3=v")),
exp: true,
},
{
tags: models.ParseTags([]byte("foo,tag7=v")),
exp: true,
},
{
tags: models.ParseTags([]byte("foo,tag3=v,tag7=v")),
exp: true,
},
{
tags: models.ParseTags([]byte("foo,tag0=v,tag3=v,tag5=v,tag7=v")),
exp: true,
},
{
tags: models.ParseTags([]byte("foo")),
exp: true,
},
{
tags: models.ParseTags([]byte("foo,tag0=v,tag2=v")),
exp: false,
},
{
tags: models.ParseTags([]byte("foo,tag1=v")),
exp: false,
},
{
tags: models.ParseTags([]byte("foo,tag6=v")),
exp: false,
},
{
tags: models.ParseTags([]byte("foo,tag8=v")),
exp: false,
},
{
tags: models.ParseTags([]byte("foo,tag0=v,tag3=v,tag5=v,tag8=v")),
exp: false,
},
{
tags: models.ParseTags([]byte("foo,tag0=v,tag3=v,tag5=v,tag6=v")),
exp: false,
},
{
tags: models.ParseTags([]byte("foo,tag0=v,tag3=v,tag5=v,tag7=v,tag8=v")),
exp: false,
},
}
for _, tt := range tests {
t.Run("tags/"+tt.name, func(t *testing.T) {
if got := km.IsSupersetKeys(tt.tags); got != tt.exp {
t.Errorf("unexpected IsSuperset -got/+exp\n%s", cmp.Diff(got, tt.exp))
}
})
}
for _, tt := range tests {
t.Run("bytes/"+tt.name, func(t *testing.T) {
var keys [][]byte
for i := range tt.tags {
keys = append(keys, tt.tags[i].Key)
}
if got := km.IsSupersetBytes(keys); got != tt.exp {
t.Errorf("unexpected IsSupersetBytes -got/+exp\n%s", cmp.Diff(got, tt.exp))
}
})
}
}
var commaB = []byte(",")
func TestTagKeysSet_UnionBytes(t *testing.T) {
tests := []struct {
name string
keys [][][]byte
exp string
}{
{
name: "mixed",
keys: [][][]byte{
bytes.Split([]byte("tag0,tag1,tag2"), commaB),
bytes.Split([]byte("tag0,tag1,tag2"), commaB),
bytes.Split([]byte("tag0"), commaB),
bytes.Split([]byte("tag0,tag3"), commaB),
},
exp: "tag0,tag1,tag2,tag3",
},
{
name: "mixed 2",
keys: [][][]byte{
bytes.Split([]byte("tag0"), commaB),
bytes.Split([]byte("tag0,tag3"), commaB),
bytes.Split([]byte("tag0,tag1,tag2"), commaB),
bytes.Split([]byte("tag0,tag1,tag2"), commaB),
},
exp: "tag0,tag1,tag2,tag3",
},
{
name: "all different",
keys: [][][]byte{
bytes.Split([]byte("tag0"), commaB),
bytes.Split([]byte("tag3"), commaB),
bytes.Split([]byte("tag1"), commaB),
bytes.Split([]byte("tag2"), commaB),
},
exp: "tag0,tag1,tag2,tag3",
},
{
name: "new tags,verify clear",
keys: [][][]byte{
bytes.Split([]byte("tag9"), commaB),
bytes.Split([]byte("tag8"), commaB),
},
exp: "tag8,tag9",
},
}
var km models.TagKeysSet
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
km.Clear()
for _, keys := range tt.keys {
km.UnionBytes(keys)
}
if got := km.String(); !cmp.Equal(got, tt.exp) {
t.Errorf("unexpected keys -got/+exp\n%s", cmp.Diff(got, tt.exp))
}
})
}
}
func BenchmarkTagKeysSet_UnionBytes(b *testing.B) {
keys := [][][]byte{
bytes.Split([]byte("tag00,tag01,tag02"), commaB),
bytes.Split([]byte("tag00,tag01,tag02"), commaB),
bytes.Split([]byte("tag00,tag01,tag05,tag06,tag10,tag11,tag12,tag13,tag14,tag15"), commaB),
bytes.Split([]byte("tag00"), commaB),
bytes.Split([]byte("tag00,tag03"), commaB),
bytes.Split([]byte("tag01,tag03,tag13,tag14,tag15"), commaB),
bytes.Split([]byte("tag04,tag05"), commaB),
}
rand.Seed(20040409)
tests := []int{
10,
1000,
1000000,
}
for _, n := range tests {
b.Run(strconv.Itoa(n), func(b *testing.B) {
b.ResetTimer()
var km models.TagKeysSet
for i := 0; i < b.N; i++ {
for j := 0; j < n; j++ {
km.UnionBytes(keys[rand.Int()%len(keys)])
}
km.Clear()
}
})
}
}
type XorShift64Star struct {
state uint64
}
func (x *XorShift64Star) Next() uint64 {
x.state ^= x.state >> 12
x.state ^= x.state << 25
x.state ^= x.state >> 27
return x.state * 2685821657736338717
}
func BenchmarkTagKeysSet_UnionKeys(b *testing.B) {
tags := []models.Tags{
models.ParseTags([]byte("foo,tag00=v0,tag01=v0,tag02=v0")),
models.ParseTags([]byte("foo,tag00=v0,tag01=v0,tag02=v0")),
models.ParseTags([]byte("foo,tag00=v0,tag01=v0,tag05=v0,tag06=v0,tag10=v0,tag11=v0,tag12=v0,tag13=v0,tag14=v0,tag15=v0")),
models.ParseTags([]byte("foo,tag00=v0")),
models.ParseTags([]byte("foo,tag00=v0,tag03=v0")),
models.ParseTags([]byte("foo,tag01=v0,tag03=v0,tag13=v0,tag14=v0,tag15=v0")),
models.ParseTags([]byte("foo,tag04=v0,tag05=v0")),
}
rnd := XorShift64Star{state: 20040409}
tests := []int{
10,
1000,
1000000,
}
for _, n := range tests {
b.Run(strconv.Itoa(n), func(b *testing.B) {
b.ResetTimer()
var km models.TagKeysSet
for i := 0; i < b.N; i++ {
for j := 0; j < n; j++ {
km.UnionKeys(tags[rnd.Next()%uint64(len(tags))])
}
km.Clear()
}
})
}
}
func BenchmarkTagKeysSet_IsSuperset(b *testing.B) {
var km models.TagKeysSet
km.UnionBytes(bytes.Split([]byte("tag0,tag3,tag5,tag7"), commaB))
tests := []struct {
name string
tags models.Tags
}{
{name: "last/true", tags: models.ParseTags([]byte("foo,tag7=v"))},
{name: "last/false", tags: models.ParseTags([]byte("foo,tag8=v"))},
{name: "first_last/true", tags: models.ParseTags([]byte("foo,tag0=v,tag7=v"))},
{name: "all/true", tags: models.ParseTags([]byte("foo,tag0=v,tag3=v,tag5=v,tag7=v"))},
{name: "first not last/false", tags: models.ParseTags([]byte("foo,tag0=v,tag8=v"))},
{name: "all but last/false", tags: models.ParseTags([]byte("foo,tag0=v,tag3=v,tag5=v,tag7=v,tag8=v"))},
}
for _, n := range tests {
b.Run(n.name, func(b *testing.B) {
b.ResetTimer()
for i := 0; i < b.N; i++ {
km.IsSupersetKeys(n.tags)
}
})
}
}

View File

@ -1,74 +0,0 @@
package models
// Helper time methods since parsing time can easily overflow and we only support a
// specific time range.
import (
"fmt"
"math"
"time"
)
const (
// MinNanoTime is the minimum time that can be represented.
//
// 1677-09-21 00:12:43.145224194 +0000 UTC
//
// The two lowest minimum integers are used as sentinel values. The
// minimum value needs to be used as a value lower than any other value for
// comparisons and another separate value is needed to act as a sentinel
// default value that is unusable by the user, but usable internally.
// Because these two values need to be used for a special purpose, we do
// not allow users to write points at these two times.
MinNanoTime = int64(math.MinInt64) + 2
// MaxNanoTime is the maximum time that can be represented.
//
// 2262-04-11 23:47:16.854775806 +0000 UTC
//
// The highest time represented by a nanosecond needs to be used for an
// exclusive range in the shard group, so the maximum time needs to be one
// less than the possible maximum number of nanoseconds representable by an
// int64 so that we don't lose a point at that one time.
MaxNanoTime = int64(math.MaxInt64) - 1
)
var (
minNanoTime = time.Unix(0, MinNanoTime).UTC()
maxNanoTime = time.Unix(0, MaxNanoTime).UTC()
// ErrTimeOutOfRange gets returned when time is out of the representable range using int64 nanoseconds since the epoch.
ErrTimeOutOfRange = fmt.Errorf("time outside range %d - %d", MinNanoTime, MaxNanoTime)
)
// SafeCalcTime safely calculates the time given. Will return error if the time is outside the
// supported range.
func SafeCalcTime(timestamp int64, precision string) (time.Time, error) {
mult := GetPrecisionMultiplier(precision)
if t, ok := safeSignedMult(timestamp, mult); ok {
tme := time.Unix(0, t).UTC()
return tme, CheckTime(tme)
}
return time.Time{}, ErrTimeOutOfRange
}
// CheckTime checks that a time is within the safe range.
func CheckTime(t time.Time) error {
if t.Before(minNanoTime) || t.After(maxNanoTime) {
return ErrTimeOutOfRange
}
return nil
}
// Perform the multiplication and check to make sure it didn't overflow.
func safeSignedMult(a, b int64) (int64, bool) {
if a == 0 || b == 0 || a == 1 || b == 1 {
return a * b, true
}
if a == MinNanoTime || b == MaxNanoTime {
return 0, false
}
c := a * b
return c, c/b == a
}

View File

@ -1,7 +0,0 @@
// +build uint uint64
package models
func init() {
EnableUintSupport()
}

View File

@ -1,6 +1,6 @@
package monitor
import "github.com/influxdata/influxdb/v2/v1/models"
import "github.com/influxdata/influxdb/v2/models"
// Reporter is an interface for gathering internal statistics.
type Reporter interface {

View File

@ -14,7 +14,7 @@ import (
"time"
"github.com/influxdata/influxdb/v2/logger"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/monitor/diagnostics"
"github.com/influxdata/influxdb/v2/v1/services/meta"
"go.uber.org/zap"

View File

@ -11,8 +11,8 @@ import (
"testing"
"time"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/toml"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/monitor"
"github.com/influxdata/influxdb/v2/v1/services/meta"
"go.uber.org/zap"

View File

@ -13,8 +13,8 @@ import (
"github.com/gogo/protobuf/proto"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
influxdb "github.com/influxdata/influxdb/v2/v1"
"github.com/influxdata/influxdb/v2/v1/models"
internal "github.com/influxdata/influxdb/v2/v1/services/meta/internal"
"github.com/influxdata/influxql"
)

View File

@ -55,9 +55,13 @@ It has these top-level messages:
*/
package meta
import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import (
fmt "fmt"
proto "github.com/gogo/protobuf/proto"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal

View File

@ -1,7 +1,7 @@
package storage
import (
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -6,9 +6,9 @@ import (
"sort"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/storage/reads"
"github.com/influxdata/influxdb/v2/storage/reads/datatypes"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxql"
opentracing "github.com/opentracing/opentracing-go"

View File

@ -4,7 +4,7 @@ import (
"testing"
"github.com/google/go-cmp/cmp"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -12,12 +12,17 @@
*/
package storage
import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "github.com/gogo/protobuf/gogoproto"
import (
fmt "fmt"
import io "io"
proto "github.com/gogo/protobuf/proto"
math "math"
_ "github.com/gogo/protobuf/gogoproto"
io "io"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal

View File

@ -9,9 +9,9 @@ import (
"github.com/gogo/protobuf/proto"
"github.com/gogo/protobuf/types"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/storage/reads"
"github.com/influxdata/influxdb/v2/storage/reads/datatypes"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/services/meta"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxdb/v2/v1/tsdb/cursors"

View File

@ -5,7 +5,7 @@ import (
"sync/atomic"
"time"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
// PointBatcher accepts Points and will emit a batch of those points when either

View File

@ -4,7 +4,7 @@ import (
"testing"
"time"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
)

View File

@ -3,7 +3,7 @@ package cursors
import (
"context"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
)
const DefaultMaxPointsPerBlock = 1000

View File

@ -12,9 +12,9 @@ import (
"time"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/estimator"
"github.com/influxdata/influxdb/v2/pkg/limiter"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxql"
"go.uber.org/zap"
)

View File

@ -10,7 +10,7 @@ import (
"context"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
)

View File

@ -3,7 +3,7 @@ package tsm1
import (
"context"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/v1/tsdb"
)

View File

@ -5,8 +5,8 @@ import (
"fmt"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/metrics"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxql"
)

View File

@ -8,7 +8,7 @@ import (
"sync/atomic"
"time"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxql"
"go.uber.org/zap"

View File

@ -22,6 +22,7 @@ import (
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/logger"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/bytesutil"
"github.com/influxdata/influxdb/v2/pkg/estimator"
"github.com/influxdata/influxdb/v2/pkg/file"
@ -30,7 +31,6 @@ import (
"github.com/influxdata/influxdb/v2/pkg/radix"
intar "github.com/influxdata/influxdb/v2/pkg/tar"
"github.com/influxdata/influxdb/v2/pkg/tracing"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
_ "github.com/influxdata/influxdb/v2/v1/tsdb/index"
"github.com/influxdata/influxdb/v2/v1/tsdb/index/inmem"

View File

@ -22,8 +22,8 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/logger"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/deep"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxdb/v2/v1/tsdb/engine/tsm1"
"github.com/influxdata/influxdb/v2/v1/tsdb/index/inmem"

View File

@ -18,10 +18,10 @@ import (
"time"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/file"
"github.com/influxdata/influxdb/v2/pkg/limiter"
"github.com/influxdata/influxdb/v2/pkg/metrics"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"go.uber.org/zap"
)

View File

@ -149,34 +149,36 @@ func (t *mockTSMFile) KeyAt(idx int) ([]byte, byte) {
return []byte(t.keys[idx]), BlockFloat64
}
func (*mockTSMFile) Path() string { panic("implement me") }
func (*mockTSMFile) Read(key []byte, t int64) ([]Value, error) { panic("implement me") }
func (*mockTSMFile) ReadAt(entry *IndexEntry, values []Value) ([]Value, error) { panic("implement me") }
func (*mockTSMFile) Entries(key []byte) []IndexEntry { panic("implement me") }
func (*mockTSMFile) ReadEntries(key []byte, entries *[]IndexEntry) []IndexEntry { panic("implement me") }
func (*mockTSMFile) ContainsValue(key []byte, t int64) bool { panic("implement me") }
func (*mockTSMFile) Contains(key []byte) bool { panic("implement me") }
func (*mockTSMFile) OverlapsTimeRange(min, max int64) bool { panic("implement me") }
func (*mockTSMFile) OverlapsKeyRange(min, max []byte) bool { panic("implement me") }
func (*mockTSMFile) TimeRange() (int64, int64) { panic("implement me") }
func (*mockTSMFile) TombstoneRange(key []byte) []TimeRange { panic("implement me") }
func (*mockTSMFile) KeyRange() ([]byte, []byte) { panic("implement me") }
func (*mockTSMFile) Type(key []byte) (byte, error) { panic("implement me") }
func (*mockTSMFile) BatchDelete() BatchDeleter { panic("implement me") }
func (*mockTSMFile) Delete(keys [][]byte) error { panic("implement me") }
func (*mockTSMFile) DeleteRange(keys [][]byte, min, max int64) error { panic("implement me") }
func (*mockTSMFile) HasTombstones() bool { panic("implement me") }
func (*mockTSMFile) TombstoneFiles() []FileStat { panic("implement me") }
func (*mockTSMFile) Close() error { panic("implement me") }
func (*mockTSMFile) Size() uint32 { panic("implement me") }
func (*mockTSMFile) Rename(path string) error { panic("implement me") }
func (*mockTSMFile) Remove() error { panic("implement me") }
func (*mockTSMFile) InUse() bool { panic("implement me") }
func (*mockTSMFile) Ref() { panic("implement me") }
func (*mockTSMFile) Unref() { panic("implement me") }
func (*mockTSMFile) Stats() FileStat { panic("implement me") }
func (*mockTSMFile) BlockIterator() *BlockIterator { panic("implement me") }
func (*mockTSMFile) Free() error { panic("implement me") }
func (*mockTSMFile) Path() string { panic("implement me") }
func (*mockTSMFile) Read(key []byte, t int64) ([]Value, error) { panic("implement me") }
func (*mockTSMFile) ReadAt(entry *IndexEntry, values []Value) ([]Value, error) { panic("implement me") }
func (*mockTSMFile) Entries(key []byte) []IndexEntry { panic("implement me") }
func (*mockTSMFile) ReadEntries(key []byte, entries *[]IndexEntry) []IndexEntry {
panic("implement me")
}
func (*mockTSMFile) ContainsValue(key []byte, t int64) bool { panic("implement me") }
func (*mockTSMFile) Contains(key []byte) bool { panic("implement me") }
func (*mockTSMFile) OverlapsTimeRange(min, max int64) bool { panic("implement me") }
func (*mockTSMFile) OverlapsKeyRange(min, max []byte) bool { panic("implement me") }
func (*mockTSMFile) TimeRange() (int64, int64) { panic("implement me") }
func (*mockTSMFile) TombstoneRange(key []byte) []TimeRange { panic("implement me") }
func (*mockTSMFile) KeyRange() ([]byte, []byte) { panic("implement me") }
func (*mockTSMFile) Type(key []byte) (byte, error) { panic("implement me") }
func (*mockTSMFile) BatchDelete() BatchDeleter { panic("implement me") }
func (*mockTSMFile) Delete(keys [][]byte) error { panic("implement me") }
func (*mockTSMFile) DeleteRange(keys [][]byte, min, max int64) error { panic("implement me") }
func (*mockTSMFile) HasTombstones() bool { panic("implement me") }
func (*mockTSMFile) TombstoneFiles() []FileStat { panic("implement me") }
func (*mockTSMFile) Close() error { panic("implement me") }
func (*mockTSMFile) Size() uint32 { panic("implement me") }
func (*mockTSMFile) Rename(path string) error { panic("implement me") }
func (*mockTSMFile) Remove() error { panic("implement me") }
func (*mockTSMFile) InUse() bool { panic("implement me") }
func (*mockTSMFile) Ref() { panic("implement me") }
func (*mockTSMFile) Unref() { panic("implement me") }
func (*mockTSMFile) Stats() FileStat { panic("implement me") }
func (*mockTSMFile) BlockIterator() *BlockIterator { panic("implement me") }
func (*mockTSMFile) Free() error { panic("implement me") }
func (*mockTSMFile) ReadFloatBlockAt(*IndexEntry, *[]FloatValue) ([]FloatValue, error) {
panic("implement me")

View File

@ -79,7 +79,9 @@ func benchmarkRingGetPartition(b *testing.B, r *ring, keys int) {
}
}
func BenchmarkRing_getPartition_100(b *testing.B) { benchmarkRingGetPartition(b, MustNewRing(256), 100) }
func BenchmarkRing_getPartition_100(b *testing.B) {
benchmarkRingGetPartition(b, MustNewRing(256), 100)
}
func BenchmarkRing_getPartition_1000(b *testing.B) {
benchmarkRingGetPartition(b, MustNewRing(256), 1000)
}

View File

@ -18,9 +18,9 @@ import (
"time"
"github.com/golang/snappy"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/limiter"
"github.com/influxdata/influxdb/v2/pkg/pool"
"github.com/influxdata/influxdb/v2/v1/models"
"go.uber.org/zap"
)

View File

@ -4,7 +4,7 @@ import (
"bytes"
"fmt"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -4,7 +4,7 @@ import (
"bytes"
"sync"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -5,7 +5,7 @@ import (
"time"
"github.com/davecgh/go-spew/spew"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxql"
)

View File

@ -10,10 +10,10 @@ import (
"sync"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/bytesutil"
"github.com/influxdata/influxdb/v2/pkg/estimator"
"github.com/influxdata/influxdb/v2/pkg/slices"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxql"
"go.uber.org/zap"
)

View File

@ -20,11 +20,11 @@ import (
"unsafe"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/bytesutil"
"github.com/influxdata/influxdb/v2/pkg/escape"
"github.com/influxdata/influxdb/v2/pkg/estimator"
"github.com/influxdata/influxdb/v2/pkg/estimator/hll"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxql"
"go.uber.org/zap"

View File

@ -6,7 +6,7 @@ import (
"os"
"testing"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxdb/v2/v1/tsdb/index/inmem"
)

View File

@ -9,9 +9,9 @@ import (
"unsafe"
"github.com/influxdata/influxdb/v2/influxql/query"
"github.com/influxdata/influxdb/v2/models"
"github.com/influxdata/influxdb/v2/pkg/bytesutil"
"github.com/influxdata/influxdb/v2/pkg/radix"
"github.com/influxdata/influxdb/v2/v1/models"
"github.com/influxdata/influxdb/v2/v1/tsdb"
"github.com/influxdata/influxql"
)

Some files were not shown because too many files have changed in this diff Show More