mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	update vendor prometheus/common to newest release
This commit is contained in:
		
							
								
								
									
										9
									
								
								Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										9
									
								
								Godeps/Godeps.json
									
									
									
										generated
									
									
									
								
							@@ -3048,15 +3048,18 @@
 | 
				
			|||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"ImportPath": "github.com/prometheus/common/expfmt",
 | 
								"ImportPath": "github.com/prometheus/common/expfmt",
 | 
				
			||||||
			"Rev": "13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207"
 | 
								"Comment": "v0.2.0",
 | 
				
			||||||
 | 
								"Rev": "cfeb6f9992ffa54aaa4f2170ade4067ee478b250"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"ImportPath": "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg",
 | 
								"ImportPath": "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg",
 | 
				
			||||||
			"Rev": "13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207"
 | 
								"Comment": "v0.2.0",
 | 
				
			||||||
 | 
								"Rev": "cfeb6f9992ffa54aaa4f2170ade4067ee478b250"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"ImportPath": "github.com/prometheus/common/model",
 | 
								"ImportPath": "github.com/prometheus/common/model",
 | 
				
			||||||
			"Rev": "13ba4ddd0caa9c28ca7b7bffe1dfa9ed8d5ef207"
 | 
								"Comment": "v0.2.0",
 | 
				
			||||||
 | 
								"Rev": "cfeb6f9992ffa54aaa4f2170ade4067ee478b250"
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			"ImportPath": "github.com/prometheus/procfs",
 | 
								"ImportPath": "github.com/prometheus/procfs",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								vendor/github.com/prometheus/common/expfmt/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/prometheus/common/expfmt/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -164,9 +164,9 @@ func (sd *SampleDecoder) Decode(s *model.Vector) error {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ExtractSamples builds a slice of samples from the provided metric
 | 
					// ExtractSamples builds a slice of samples from the provided metric
 | 
				
			||||||
// families. If an error occurs during sample extraction, it continues to
 | 
					// families. If an error occurrs during sample extraction, it continues to
 | 
				
			||||||
// extract from the remaining metric families. The returned error is the last
 | 
					// extract from the remaining metric families. The returned error is the last
 | 
				
			||||||
// error that has occured.
 | 
					// error that has occurred.
 | 
				
			||||||
func ExtractSamples(o *DecodeOptions, fams ...*dto.MetricFamily) (model.Vector, error) {
 | 
					func ExtractSamples(o *DecodeOptions, fams ...*dto.MetricFamily) (model.Vector, error) {
 | 
				
			||||||
	var (
 | 
						var (
 | 
				
			||||||
		all     model.Vector
 | 
							all     model.Vector
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								vendor/github.com/prometheus/common/expfmt/expfmt.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/prometheus/common/expfmt/expfmt.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -26,7 +26,7 @@ const (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// The Content-Type values for the different wire protocols.
 | 
						// The Content-Type values for the different wire protocols.
 | 
				
			||||||
	FmtUnknown      Format = `<unknown>`
 | 
						FmtUnknown      Format = `<unknown>`
 | 
				
			||||||
	FmtText         Format = `text/plain; version=` + TextVersion
 | 
						FmtText         Format = `text/plain; version=` + TextVersion + `; charset=utf-8`
 | 
				
			||||||
	FmtProtoDelim   Format = ProtoFmt + ` encoding=delimited`
 | 
						FmtProtoDelim   Format = ProtoFmt + ` encoding=delimited`
 | 
				
			||||||
	FmtProtoText    Format = ProtoFmt + ` encoding=text`
 | 
						FmtProtoText    Format = ProtoFmt + ` encoding=text`
 | 
				
			||||||
	FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text`
 | 
						FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text`
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										385
									
								
								vendor/github.com/prometheus/common/expfmt/text_create.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										385
									
								
								vendor/github.com/prometheus/common/expfmt/text_create.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -14,13 +14,45 @@
 | 
				
			|||||||
package expfmt
 | 
					package expfmt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"bytes"
 | 
				
			||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
	"io"
 | 
						"io"
 | 
				
			||||||
	"math"
 | 
						"math"
 | 
				
			||||||
 | 
						"strconv"
 | 
				
			||||||
	"strings"
 | 
						"strings"
 | 
				
			||||||
 | 
						"sync"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"github.com/prometheus/common/model"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dto "github.com/prometheus/client_model/go"
 | 
						dto "github.com/prometheus/client_model/go"
 | 
				
			||||||
	"github.com/prometheus/common/model"
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// enhancedWriter has all the enhanced write functions needed here. bytes.Buffer
 | 
				
			||||||
 | 
					// implements it.
 | 
				
			||||||
 | 
					type enhancedWriter interface {
 | 
				
			||||||
 | 
						io.Writer
 | 
				
			||||||
 | 
						WriteRune(r rune) (n int, err error)
 | 
				
			||||||
 | 
						WriteString(s string) (n int, err error)
 | 
				
			||||||
 | 
						WriteByte(c byte) error
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const (
 | 
				
			||||||
 | 
						initialBufSize    = 512
 | 
				
			||||||
 | 
						initialNumBufSize = 24
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var (
 | 
				
			||||||
 | 
						bufPool = sync.Pool{
 | 
				
			||||||
 | 
							New: func() interface{} {
 | 
				
			||||||
 | 
								return bytes.NewBuffer(make([]byte, 0, initialBufSize))
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						numBufPool = sync.Pool{
 | 
				
			||||||
 | 
							New: func() interface{} {
 | 
				
			||||||
 | 
								b := make([]byte, 0, initialNumBufSize)
 | 
				
			||||||
 | 
								return &b
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// MetricFamilyToText converts a MetricFamily proto message into text format and
 | 
					// MetricFamilyToText converts a MetricFamily proto message into text format and
 | 
				
			||||||
@@ -32,37 +64,92 @@ import (
 | 
				
			|||||||
// will result in invalid text format output.
 | 
					// will result in invalid text format output.
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
// This method fulfills the type 'prometheus.encoder'.
 | 
					// This method fulfills the type 'prometheus.encoder'.
 | 
				
			||||||
func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (int, error) {
 | 
					func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err error) {
 | 
				
			||||||
	var written int
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// Fail-fast checks.
 | 
						// Fail-fast checks.
 | 
				
			||||||
	if len(in.Metric) == 0 {
 | 
						if len(in.Metric) == 0 {
 | 
				
			||||||
		return written, fmt.Errorf("MetricFamily has no metrics: %s", in)
 | 
							return 0, fmt.Errorf("MetricFamily has no metrics: %s", in)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	name := in.GetName()
 | 
						name := in.GetName()
 | 
				
			||||||
	if name == "" {
 | 
						if name == "" {
 | 
				
			||||||
		return written, fmt.Errorf("MetricFamily has no name: %s", in)
 | 
							return 0, fmt.Errorf("MetricFamily has no name: %s", in)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// Try the interface upgrade. If it doesn't work, we'll use a
 | 
				
			||||||
 | 
						// bytes.Buffer from the sync.Pool and write out its content to out in a
 | 
				
			||||||
 | 
						// single go in the end.
 | 
				
			||||||
 | 
						w, ok := out.(enhancedWriter)
 | 
				
			||||||
 | 
						if !ok {
 | 
				
			||||||
 | 
							b := bufPool.Get().(*bytes.Buffer)
 | 
				
			||||||
 | 
							b.Reset()
 | 
				
			||||||
 | 
							w = b
 | 
				
			||||||
 | 
							defer func() {
 | 
				
			||||||
 | 
								bWritten, bErr := out.Write(b.Bytes())
 | 
				
			||||||
 | 
								written = bWritten
 | 
				
			||||||
 | 
								if err == nil {
 | 
				
			||||||
 | 
									err = bErr
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								bufPool.Put(b)
 | 
				
			||||||
 | 
							}()
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var n int
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Comments, first HELP, then TYPE.
 | 
						// Comments, first HELP, then TYPE.
 | 
				
			||||||
	if in.Help != nil {
 | 
						if in.Help != nil {
 | 
				
			||||||
		n, err := fmt.Fprintf(
 | 
							n, err = w.WriteString("# HELP ")
 | 
				
			||||||
			out, "# HELP %s %s\n",
 | 
					 | 
				
			||||||
			name, escapeString(*in.Help, false),
 | 
					 | 
				
			||||||
		)
 | 
					 | 
				
			||||||
		written += n
 | 
							written += n
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return written, err
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							n, err = w.WriteString(name)
 | 
				
			||||||
 | 
							written += n
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err = w.WriteByte(' ')
 | 
				
			||||||
 | 
							written++
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							n, err = writeEscapedString(w, *in.Help, false)
 | 
				
			||||||
 | 
							written += n
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err = w.WriteByte('\n')
 | 
				
			||||||
 | 
							written++
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	metricType := in.GetType()
 | 
						n, err = w.WriteString("# TYPE ")
 | 
				
			||||||
	n, err := fmt.Fprintf(
 | 
					 | 
				
			||||||
		out, "# TYPE %s %s\n",
 | 
					 | 
				
			||||||
		name, strings.ToLower(metricType.String()),
 | 
					 | 
				
			||||||
	)
 | 
					 | 
				
			||||||
	written += n
 | 
						written += n
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return written, err
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						n, err = w.WriteString(name)
 | 
				
			||||||
 | 
						written += n
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						metricType := in.GetType()
 | 
				
			||||||
 | 
						switch metricType {
 | 
				
			||||||
 | 
						case dto.MetricType_COUNTER:
 | 
				
			||||||
 | 
							n, err = w.WriteString(" counter\n")
 | 
				
			||||||
 | 
						case dto.MetricType_GAUGE:
 | 
				
			||||||
 | 
							n, err = w.WriteString(" gauge\n")
 | 
				
			||||||
 | 
						case dto.MetricType_SUMMARY:
 | 
				
			||||||
 | 
							n, err = w.WriteString(" summary\n")
 | 
				
			||||||
 | 
						case dto.MetricType_UNTYPED:
 | 
				
			||||||
 | 
							n, err = w.WriteString(" untyped\n")
 | 
				
			||||||
 | 
						case dto.MetricType_HISTOGRAM:
 | 
				
			||||||
 | 
							n, err = w.WriteString(" histogram\n")
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
							return written, fmt.Errorf("unknown metric type %s", metricType.String())
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						written += n
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Finally the samples, one line for each.
 | 
						// Finally the samples, one line for each.
 | 
				
			||||||
@@ -75,9 +162,8 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (int, error) {
 | 
				
			|||||||
				)
 | 
									)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			n, err = writeSample(
 | 
								n, err = writeSample(
 | 
				
			||||||
				name, metric, "", "",
 | 
									w, name, "", metric, "", 0,
 | 
				
			||||||
				metric.Counter.GetValue(),
 | 
									metric.Counter.GetValue(),
 | 
				
			||||||
				out,
 | 
					 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
		case dto.MetricType_GAUGE:
 | 
							case dto.MetricType_GAUGE:
 | 
				
			||||||
			if metric.Gauge == nil {
 | 
								if metric.Gauge == nil {
 | 
				
			||||||
@@ -86,9 +172,8 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (int, error) {
 | 
				
			|||||||
				)
 | 
									)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			n, err = writeSample(
 | 
								n, err = writeSample(
 | 
				
			||||||
				name, metric, "", "",
 | 
									w, name, "", metric, "", 0,
 | 
				
			||||||
				metric.Gauge.GetValue(),
 | 
									metric.Gauge.GetValue(),
 | 
				
			||||||
				out,
 | 
					 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
		case dto.MetricType_UNTYPED:
 | 
							case dto.MetricType_UNTYPED:
 | 
				
			||||||
			if metric.Untyped == nil {
 | 
								if metric.Untyped == nil {
 | 
				
			||||||
@@ -97,9 +182,8 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (int, error) {
 | 
				
			|||||||
				)
 | 
									)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			n, err = writeSample(
 | 
								n, err = writeSample(
 | 
				
			||||||
				name, metric, "", "",
 | 
									w, name, "", metric, "", 0,
 | 
				
			||||||
				metric.Untyped.GetValue(),
 | 
									metric.Untyped.GetValue(),
 | 
				
			||||||
				out,
 | 
					 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
		case dto.MetricType_SUMMARY:
 | 
							case dto.MetricType_SUMMARY:
 | 
				
			||||||
			if metric.Summary == nil {
 | 
								if metric.Summary == nil {
 | 
				
			||||||
@@ -109,29 +193,26 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (int, error) {
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			for _, q := range metric.Summary.Quantile {
 | 
								for _, q := range metric.Summary.Quantile {
 | 
				
			||||||
				n, err = writeSample(
 | 
									n, err = writeSample(
 | 
				
			||||||
					name, metric,
 | 
										w, name, "", metric,
 | 
				
			||||||
					model.QuantileLabel, fmt.Sprint(q.GetQuantile()),
 | 
										model.QuantileLabel, q.GetQuantile(),
 | 
				
			||||||
					q.GetValue(),
 | 
										q.GetValue(),
 | 
				
			||||||
					out,
 | 
					 | 
				
			||||||
				)
 | 
									)
 | 
				
			||||||
				written += n
 | 
									written += n
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					return written, err
 | 
										return
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			n, err = writeSample(
 | 
								n, err = writeSample(
 | 
				
			||||||
				name+"_sum", metric, "", "",
 | 
									w, name, "_sum", metric, "", 0,
 | 
				
			||||||
				metric.Summary.GetSampleSum(),
 | 
									metric.Summary.GetSampleSum(),
 | 
				
			||||||
				out,
 | 
					 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return written, err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			written += n
 | 
								written += n
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			n, err = writeSample(
 | 
								n, err = writeSample(
 | 
				
			||||||
				name+"_count", metric, "", "",
 | 
									w, name, "_count", metric, "", 0,
 | 
				
			||||||
				float64(metric.Summary.GetSampleCount()),
 | 
									float64(metric.Summary.GetSampleCount()),
 | 
				
			||||||
				out,
 | 
					 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
		case dto.MetricType_HISTOGRAM:
 | 
							case dto.MetricType_HISTOGRAM:
 | 
				
			||||||
			if metric.Histogram == nil {
 | 
								if metric.Histogram == nil {
 | 
				
			||||||
@@ -140,46 +221,42 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (int, error) {
 | 
				
			|||||||
				)
 | 
									)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			infSeen := false
 | 
								infSeen := false
 | 
				
			||||||
			for _, q := range metric.Histogram.Bucket {
 | 
								for _, b := range metric.Histogram.Bucket {
 | 
				
			||||||
				n, err = writeSample(
 | 
									n, err = writeSample(
 | 
				
			||||||
					name+"_bucket", metric,
 | 
										w, name, "_bucket", metric,
 | 
				
			||||||
					model.BucketLabel, fmt.Sprint(q.GetUpperBound()),
 | 
										model.BucketLabel, b.GetUpperBound(),
 | 
				
			||||||
					float64(q.GetCumulativeCount()),
 | 
										float64(b.GetCumulativeCount()),
 | 
				
			||||||
					out,
 | 
					 | 
				
			||||||
				)
 | 
									)
 | 
				
			||||||
				written += n
 | 
									written += n
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					return written, err
 | 
										return
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				if math.IsInf(q.GetUpperBound(), +1) {
 | 
									if math.IsInf(b.GetUpperBound(), +1) {
 | 
				
			||||||
					infSeen = true
 | 
										infSeen = true
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if !infSeen {
 | 
								if !infSeen {
 | 
				
			||||||
				n, err = writeSample(
 | 
									n, err = writeSample(
 | 
				
			||||||
					name+"_bucket", metric,
 | 
										w, name, "_bucket", metric,
 | 
				
			||||||
					model.BucketLabel, "+Inf",
 | 
										model.BucketLabel, math.Inf(+1),
 | 
				
			||||||
					float64(metric.Histogram.GetSampleCount()),
 | 
										float64(metric.Histogram.GetSampleCount()),
 | 
				
			||||||
					out,
 | 
					 | 
				
			||||||
				)
 | 
									)
 | 
				
			||||||
				if err != nil {
 | 
					 | 
				
			||||||
					return written, err
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				written += n
 | 
									written += n
 | 
				
			||||||
 | 
									if err != nil {
 | 
				
			||||||
 | 
										return
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			n, err = writeSample(
 | 
								n, err = writeSample(
 | 
				
			||||||
				name+"_sum", metric, "", "",
 | 
									w, name, "_sum", metric, "", 0,
 | 
				
			||||||
				metric.Histogram.GetSampleSum(),
 | 
									metric.Histogram.GetSampleSum(),
 | 
				
			||||||
				out,
 | 
					 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return written, err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			written += n
 | 
								written += n
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			n, err = writeSample(
 | 
								n, err = writeSample(
 | 
				
			||||||
				name+"_count", metric, "", "",
 | 
									w, name, "_count", metric, "", 0,
 | 
				
			||||||
				float64(metric.Histogram.GetSampleCount()),
 | 
									float64(metric.Histogram.GetSampleCount()),
 | 
				
			||||||
				out,
 | 
					 | 
				
			||||||
			)
 | 
								)
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			return written, fmt.Errorf(
 | 
								return written, fmt.Errorf(
 | 
				
			||||||
@@ -188,116 +265,204 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (int, error) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		written += n
 | 
							written += n
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return written, err
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return written, nil
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// writeSample writes a single sample in text format to out, given the metric
 | 
					// writeSample writes a single sample in text format to w, given the metric
 | 
				
			||||||
// name, the metric proto message itself, optionally an additional label name
 | 
					// name, the metric proto message itself, optionally an additional label name
 | 
				
			||||||
// and value (use empty strings if not required), and the value. The function
 | 
					// with a float64 value (use empty string as label name if not required), and
 | 
				
			||||||
// returns the number of bytes written and any error encountered.
 | 
					// the value. The function returns the number of bytes written and any error
 | 
				
			||||||
 | 
					// encountered.
 | 
				
			||||||
func writeSample(
 | 
					func writeSample(
 | 
				
			||||||
	name string,
 | 
						w enhancedWriter,
 | 
				
			||||||
 | 
						name, suffix string,
 | 
				
			||||||
	metric *dto.Metric,
 | 
						metric *dto.Metric,
 | 
				
			||||||
	additionalLabelName, additionalLabelValue string,
 | 
						additionalLabelName string, additionalLabelValue float64,
 | 
				
			||||||
	value float64,
 | 
						value float64,
 | 
				
			||||||
	out io.Writer,
 | 
					 | 
				
			||||||
) (int, error) {
 | 
					) (int, error) {
 | 
				
			||||||
	var written int
 | 
						var written int
 | 
				
			||||||
	n, err := fmt.Fprint(out, name)
 | 
						n, err := w.WriteString(name)
 | 
				
			||||||
	written += n
 | 
						written += n
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return written, err
 | 
							return written, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	n, err = labelPairsToText(
 | 
						if suffix != "" {
 | 
				
			||||||
		metric.Label,
 | 
							n, err = w.WriteString(suffix)
 | 
				
			||||||
		additionalLabelName, additionalLabelValue,
 | 
					 | 
				
			||||||
		out,
 | 
					 | 
				
			||||||
	)
 | 
					 | 
				
			||||||
	written += n
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return written, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	n, err = fmt.Fprintf(out, " %v", value)
 | 
					 | 
				
			||||||
	written += n
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return written, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if metric.TimestampMs != nil {
 | 
					 | 
				
			||||||
		n, err = fmt.Fprintf(out, " %v", *metric.TimestampMs)
 | 
					 | 
				
			||||||
		written += n
 | 
							written += n
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return written, err
 | 
								return written, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	n, err = out.Write([]byte{'\n'})
 | 
						n, err = writeLabelPairs(
 | 
				
			||||||
 | 
							w, metric.Label, additionalLabelName, additionalLabelValue,
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
	written += n
 | 
						written += n
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return written, err
 | 
							return written, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						err = w.WriteByte(' ')
 | 
				
			||||||
 | 
						written++
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return written, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						n, err = writeFloat(w, value)
 | 
				
			||||||
 | 
						written += n
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return written, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if metric.TimestampMs != nil {
 | 
				
			||||||
 | 
							err = w.WriteByte(' ')
 | 
				
			||||||
 | 
							written++
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							n, err = writeInt(w, *metric.TimestampMs)
 | 
				
			||||||
 | 
							written += n
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						err = w.WriteByte('\n')
 | 
				
			||||||
 | 
						written++
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return written, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	return written, nil
 | 
						return written, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// labelPairsToText converts a slice of LabelPair proto messages plus the
 | 
					// writeLabelPairs converts a slice of LabelPair proto messages plus the
 | 
				
			||||||
// explicitly given additional label pair into text formatted as required by the
 | 
					// explicitly given additional label pair into text formatted as required by the
 | 
				
			||||||
// text format and writes it to 'out'. An empty slice in combination with an
 | 
					// text format and writes it to 'w'. An empty slice in combination with an empty
 | 
				
			||||||
// empty string 'additionalLabelName' results in nothing being
 | 
					// string 'additionalLabelName' results in nothing being written. Otherwise, the
 | 
				
			||||||
// written. Otherwise, the label pairs are written, escaped as required by the
 | 
					// label pairs are written, escaped as required by the text format, and enclosed
 | 
				
			||||||
// text format, and enclosed in '{...}'. The function returns the number of
 | 
					// in '{...}'. The function returns the number of bytes written and any error
 | 
				
			||||||
// bytes written and any error encountered.
 | 
					// encountered.
 | 
				
			||||||
func labelPairsToText(
 | 
					func writeLabelPairs(
 | 
				
			||||||
 | 
						w enhancedWriter,
 | 
				
			||||||
	in []*dto.LabelPair,
 | 
						in []*dto.LabelPair,
 | 
				
			||||||
	additionalLabelName, additionalLabelValue string,
 | 
						additionalLabelName string, additionalLabelValue float64,
 | 
				
			||||||
	out io.Writer,
 | 
					 | 
				
			||||||
) (int, error) {
 | 
					) (int, error) {
 | 
				
			||||||
	if len(in) == 0 && additionalLabelName == "" {
 | 
						if len(in) == 0 && additionalLabelName == "" {
 | 
				
			||||||
		return 0, nil
 | 
							return 0, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var written int
 | 
						var (
 | 
				
			||||||
	separator := '{'
 | 
							written   int
 | 
				
			||||||
 | 
							separator byte = '{'
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
	for _, lp := range in {
 | 
						for _, lp := range in {
 | 
				
			||||||
		n, err := fmt.Fprintf(
 | 
							err := w.WriteByte(separator)
 | 
				
			||||||
			out, `%c%s="%s"`,
 | 
							written++
 | 
				
			||||||
			separator, lp.GetName(), escapeString(lp.GetValue(), true),
 | 
							if err != nil {
 | 
				
			||||||
		)
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							n, err := w.WriteString(lp.GetName())
 | 
				
			||||||
		written += n
 | 
							written += n
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return written, err
 | 
								return written, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							n, err = w.WriteString(`="`)
 | 
				
			||||||
 | 
							written += n
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							n, err = writeEscapedString(w, lp.GetValue(), true)
 | 
				
			||||||
 | 
							written += n
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err = w.WriteByte('"')
 | 
				
			||||||
 | 
							written++
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		separator = ','
 | 
							separator = ','
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if additionalLabelName != "" {
 | 
						if additionalLabelName != "" {
 | 
				
			||||||
		n, err := fmt.Fprintf(
 | 
							err := w.WriteByte(separator)
 | 
				
			||||||
			out, `%c%s="%s"`,
 | 
							written++
 | 
				
			||||||
			separator, additionalLabelName,
 | 
							if err != nil {
 | 
				
			||||||
			escapeString(additionalLabelValue, true),
 | 
								return written, err
 | 
				
			||||||
		)
 | 
							}
 | 
				
			||||||
 | 
							n, err := w.WriteString(additionalLabelName)
 | 
				
			||||||
		written += n
 | 
							written += n
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return written, err
 | 
								return written, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							n, err = w.WriteString(`="`)
 | 
				
			||||||
 | 
							written += n
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							n, err = writeFloat(w, additionalLabelValue)
 | 
				
			||||||
 | 
							written += n
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							err = w.WriteByte('"')
 | 
				
			||||||
 | 
							written++
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								return written, err
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	n, err := out.Write([]byte{'}'})
 | 
						err := w.WriteByte('}')
 | 
				
			||||||
	written += n
 | 
						written++
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return written, err
 | 
							return written, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return written, nil
 | 
						return written, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// writeEscapedString replaces '\' by '\\', new line character by '\n', and - if
 | 
				
			||||||
 | 
					// includeDoubleQuote is true - '"' by '\"'.
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	escape                = strings.NewReplacer("\\", `\\`, "\n", `\n`)
 | 
						escaper       = strings.NewReplacer("\\", `\\`, "\n", `\n`)
 | 
				
			||||||
	escapeWithDoubleQuote = strings.NewReplacer("\\", `\\`, "\n", `\n`, "\"", `\"`)
 | 
						quotedEscaper = strings.NewReplacer("\\", `\\`, "\n", `\n`, "\"", `\"`)
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// escapeString replaces '\' by '\\', new line character by '\n', and - if
 | 
					func writeEscapedString(w enhancedWriter, v string, includeDoubleQuote bool) (int, error) {
 | 
				
			||||||
// includeDoubleQuote is true - '"' by '\"'.
 | 
					 | 
				
			||||||
func escapeString(v string, includeDoubleQuote bool) string {
 | 
					 | 
				
			||||||
	if includeDoubleQuote {
 | 
						if includeDoubleQuote {
 | 
				
			||||||
		return escapeWithDoubleQuote.Replace(v)
 | 
							return quotedEscaper.WriteString(w, v)
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							return escaper.WriteString(w, v)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
	return escape.Replace(v)
 | 
					
 | 
				
			||||||
 | 
					// writeFloat is equivalent to fmt.Fprint with a float64 argument but hardcodes
 | 
				
			||||||
 | 
					// a few common cases for increased efficiency. For non-hardcoded cases, it uses
 | 
				
			||||||
 | 
					// strconv.AppendFloat to avoid allocations, similar to writeInt.
 | 
				
			||||||
 | 
					func writeFloat(w enhancedWriter, f float64) (int, error) {
 | 
				
			||||||
 | 
						switch {
 | 
				
			||||||
 | 
						case f == 1:
 | 
				
			||||||
 | 
							return 1, w.WriteByte('1')
 | 
				
			||||||
 | 
						case f == 0:
 | 
				
			||||||
 | 
							return 1, w.WriteByte('0')
 | 
				
			||||||
 | 
						case f == -1:
 | 
				
			||||||
 | 
							return w.WriteString("-1")
 | 
				
			||||||
 | 
						case math.IsNaN(f):
 | 
				
			||||||
 | 
							return w.WriteString("NaN")
 | 
				
			||||||
 | 
						case math.IsInf(f, +1):
 | 
				
			||||||
 | 
							return w.WriteString("+Inf")
 | 
				
			||||||
 | 
						case math.IsInf(f, -1):
 | 
				
			||||||
 | 
							return w.WriteString("-Inf")
 | 
				
			||||||
 | 
						default:
 | 
				
			||||||
 | 
							bp := numBufPool.Get().(*[]byte)
 | 
				
			||||||
 | 
							*bp = strconv.AppendFloat((*bp)[:0], f, 'g', -1, 64)
 | 
				
			||||||
 | 
							written, err := w.Write(*bp)
 | 
				
			||||||
 | 
							numBufPool.Put(bp)
 | 
				
			||||||
 | 
							return written, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// writeInt is equivalent to fmt.Fprint with an int64 argument but uses
 | 
				
			||||||
 | 
					// strconv.AppendInt with a byte slice taken from a sync.Pool to avoid
 | 
				
			||||||
 | 
					// allocations.
 | 
				
			||||||
 | 
					func writeInt(w enhancedWriter, i int64) (int, error) {
 | 
				
			||||||
 | 
						bp := numBufPool.Get().(*[]byte)
 | 
				
			||||||
 | 
						*bp = strconv.AppendInt((*bp)[:0], i, 10)
 | 
				
			||||||
 | 
						written, err := w.Write(*bp)
 | 
				
			||||||
 | 
						numBufPool.Put(bp)
 | 
				
			||||||
 | 
						return written, err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								vendor/github.com/prometheus/common/expfmt/text_parse.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/prometheus/common/expfmt/text_parse.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -315,6 +315,10 @@ func (p *TextParser) startLabelValue() stateFn {
 | 
				
			|||||||
	if p.readTokenAsLabelValue(); p.err != nil {
 | 
						if p.readTokenAsLabelValue(); p.err != nil {
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if !model.LabelValue(p.currentToken.String()).IsValid() {
 | 
				
			||||||
 | 
							p.parseError(fmt.Sprintf("invalid label value %q", p.currentToken.String()))
 | 
				
			||||||
 | 
							return nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	p.currentLabelPair.Value = proto.String(p.currentToken.String())
 | 
						p.currentLabelPair.Value = proto.String(p.currentToken.String())
 | 
				
			||||||
	// Special treatment of summaries:
 | 
						// Special treatment of summaries:
 | 
				
			||||||
	// - Quantile labels are special, will result in dto.Quantile later.
 | 
						// - Quantile labels are special, will result in dto.Quantile later.
 | 
				
			||||||
@@ -355,7 +359,7 @@ func (p *TextParser) startLabelValue() stateFn {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		return p.readingValue
 | 
							return p.readingValue
 | 
				
			||||||
	default:
 | 
						default:
 | 
				
			||||||
		p.parseError(fmt.Sprintf("unexpected end of label value %q", p.currentLabelPair.Value))
 | 
							p.parseError(fmt.Sprintf("unexpected end of label value %q", p.currentLabelPair.GetValue()))
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -552,8 +556,8 @@ func (p *TextParser) readTokenUntilWhitespace() {
 | 
				
			|||||||
// byte considered is the byte already read (now in p.currentByte).  The first
 | 
					// byte considered is the byte already read (now in p.currentByte).  The first
 | 
				
			||||||
// newline byte encountered is still copied into p.currentByte, but not into
 | 
					// newline byte encountered is still copied into p.currentByte, but not into
 | 
				
			||||||
// p.currentToken. If recognizeEscapeSequence is true, two escape sequences are
 | 
					// p.currentToken. If recognizeEscapeSequence is true, two escape sequences are
 | 
				
			||||||
// recognized: '\\' tranlates into '\', and '\n' into a line-feed character. All
 | 
					// recognized: '\\' translates into '\', and '\n' into a line-feed character.
 | 
				
			||||||
// other escape sequences are invalid and cause an error.
 | 
					// All other escape sequences are invalid and cause an error.
 | 
				
			||||||
func (p *TextParser) readTokenUntilNewline(recognizeEscapeSequence bool) {
 | 
					func (p *TextParser) readTokenUntilNewline(recognizeEscapeSequence bool) {
 | 
				
			||||||
	p.currentToken.Reset()
 | 
						p.currentToken.Reset()
 | 
				
			||||||
	escaped := false
 | 
						escaped := false
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/autoneg.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,12 +1,12 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
 | 
					Copyright (c) 2011, Open Knowledge Foundation Ltd.
 | 
				
			||||||
 | 
					All rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HTTP Content-Type Autonegotiation.
 | 
					HTTP Content-Type Autonegotiation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The functions in this package implement the behaviour specified in
 | 
					The functions in this package implement the behaviour specified in
 | 
				
			||||||
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
 | 
					http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Copyright (c) 2011, Open Knowledge Foundation Ltd.
 | 
					 | 
				
			||||||
All rights reserved.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Redistribution and use in source and binary forms, with or without
 | 
					Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
modification, are permitted provided that the following conditions are
 | 
					modification, are permitted provided that the following conditions are
 | 
				
			||||||
met:
 | 
					met:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								vendor/github.com/prometheus/common/model/metric.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/prometheus/common/model/metric.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -21,7 +21,6 @@ import (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var (
 | 
					var (
 | 
				
			||||||
	separator = []byte{0}
 | 
					 | 
				
			||||||
	// MetricNameRE is a regular expression matching valid metric
 | 
						// MetricNameRE is a regular expression matching valid metric
 | 
				
			||||||
	// names. Note that the IsValidMetricName function performs the same
 | 
						// names. Note that the IsValidMetricName function performs the same
 | 
				
			||||||
	// check but faster than a match with this regular expression.
 | 
						// check but faster than a match with this regular expression.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								vendor/github.com/prometheus/common/model/silence.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/prometheus/common/model/silence.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -59,8 +59,8 @@ func (m *Matcher) Validate() error {
 | 
				
			|||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Silence defines the representation of a silence definiton
 | 
					// Silence defines the representation of a silence definition in the Prometheus
 | 
				
			||||||
// in the Prometheus eco-system.
 | 
					// eco-system.
 | 
				
			||||||
type Silence struct {
 | 
					type Silence struct {
 | 
				
			||||||
	ID uint64 `json:"id,omitempty"`
 | 
						ID uint64 `json:"id,omitempty"`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										19
									
								
								vendor/github.com/prometheus/common/model/time.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/prometheus/common/model/time.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -43,7 +43,7 @@ const (
 | 
				
			|||||||
// (1970-01-01 00:00 UTC) excluding leap seconds.
 | 
					// (1970-01-01 00:00 UTC) excluding leap seconds.
 | 
				
			||||||
type Time int64
 | 
					type Time int64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Interval describes and interval between two timestamps.
 | 
					// Interval describes an interval between two timestamps.
 | 
				
			||||||
type Interval struct {
 | 
					type Interval struct {
 | 
				
			||||||
	Start, End Time
 | 
						Start, End Time
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -163,9 +163,21 @@ func (t *Time) UnmarshalJSON(b []byte) error {
 | 
				
			|||||||
// This type should not propagate beyond the scope of input/output processing.
 | 
					// This type should not propagate beyond the scope of input/output processing.
 | 
				
			||||||
type Duration time.Duration
 | 
					type Duration time.Duration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Set implements pflag/flag.Value
 | 
				
			||||||
 | 
					func (d *Duration) Set(s string) error {
 | 
				
			||||||
 | 
						var err error
 | 
				
			||||||
 | 
						*d, err = ParseDuration(s)
 | 
				
			||||||
 | 
						return err
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Type implements pflag.Value
 | 
				
			||||||
 | 
					func (d *Duration) Type() string {
 | 
				
			||||||
 | 
						return "duration"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var durationRE = regexp.MustCompile("^([0-9]+)(y|w|d|h|m|s|ms)$")
 | 
					var durationRE = regexp.MustCompile("^([0-9]+)(y|w|d|h|m|s|ms)$")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// StringToDuration parses a string into a time.Duration, assuming that a year
 | 
					// ParseDuration parses a string into a time.Duration, assuming that a year
 | 
				
			||||||
// always has 365d, a week always has 7d, and a day always has 24h.
 | 
					// always has 365d, a week always has 7d, and a day always has 24h.
 | 
				
			||||||
func ParseDuration(durationStr string) (Duration, error) {
 | 
					func ParseDuration(durationStr string) (Duration, error) {
 | 
				
			||||||
	matches := durationRE.FindStringSubmatch(durationStr)
 | 
						matches := durationRE.FindStringSubmatch(durationStr)
 | 
				
			||||||
@@ -202,6 +214,9 @@ func (d Duration) String() string {
 | 
				
			|||||||
		ms   = int64(time.Duration(d) / time.Millisecond)
 | 
							ms   = int64(time.Duration(d) / time.Millisecond)
 | 
				
			||||||
		unit = "ms"
 | 
							unit = "ms"
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
 | 
						if ms == 0 {
 | 
				
			||||||
 | 
							return "0s"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	factors := map[string]int64{
 | 
						factors := map[string]int64{
 | 
				
			||||||
		"y":  1000 * 60 * 60 * 24 * 365,
 | 
							"y":  1000 * 60 * 60 * 24 * 365,
 | 
				
			||||||
		"w":  1000 * 60 * 60 * 24 * 7,
 | 
							"w":  1000 * 60 * 60 * 24 * 7,
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								vendor/github.com/prometheus/common/model/value.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/prometheus/common/model/value.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -100,7 +100,7 @@ func (s *SamplePair) UnmarshalJSON(b []byte) error {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Equal returns true if this SamplePair and o have equal Values and equal
 | 
					// Equal returns true if this SamplePair and o have equal Values and equal
 | 
				
			||||||
// Timestamps. The sematics of Value equality is defined by SampleValue.Equal.
 | 
					// Timestamps. The semantics of Value equality is defined by SampleValue.Equal.
 | 
				
			||||||
func (s *SamplePair) Equal(o *SamplePair) bool {
 | 
					func (s *SamplePair) Equal(o *SamplePair) bool {
 | 
				
			||||||
	return s == o || (s.Value.Equal(o.Value) && s.Timestamp.Equal(o.Timestamp))
 | 
						return s == o || (s.Value.Equal(o.Value) && s.Timestamp.Equal(o.Timestamp))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -117,7 +117,7 @@ type Sample struct {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Equal compares first the metrics, then the timestamp, then the value. The
 | 
					// Equal compares first the metrics, then the timestamp, then the value. The
 | 
				
			||||||
// sematics of value equality is defined by SampleValue.Equal.
 | 
					// semantics of value equality is defined by SampleValue.Equal.
 | 
				
			||||||
func (s *Sample) Equal(o *Sample) bool {
 | 
					func (s *Sample) Equal(o *Sample) bool {
 | 
				
			||||||
	if s == o {
 | 
						if s == o {
 | 
				
			||||||
		return true
 | 
							return true
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user