build(deps): bump github.com/prometheus/client_golang
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.17.0 to 1.18.0. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.17.0...v1.18.0) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
		
							
								
								
									
										10
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								go.mod
									
									
									
									
									
								
							| @@ -50,7 +50,7 @@ require ( | ||||
| 	github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 | ||||
| 	github.com/opencontainers/selinux v1.11.0 | ||||
| 	github.com/pelletier/go-toml/v2 v2.1.1 | ||||
| 	github.com/prometheus/client_golang v1.17.0 | ||||
| 	github.com/prometheus/client_golang v1.18.0 | ||||
| 	github.com/sirupsen/logrus v1.9.3 | ||||
| 	github.com/stretchr/testify v1.8.4 | ||||
| 	github.com/tchap/go-patricia/v2 v2.3.1 | ||||
| @@ -103,7 +103,7 @@ require ( | ||||
| 	github.com/hashicorp/errwrap v1.1.0 // indirect | ||||
| 	github.com/json-iterator/go v1.1.12 // indirect | ||||
| 	github.com/klauspost/cpuid/v2 v2.2.5 // indirect | ||||
| 	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect | ||||
| 	github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect | ||||
| 	github.com/mdlayher/socket v0.4.1 // indirect | ||||
| 	github.com/moby/spdystream v0.2.0 // indirect | ||||
| 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect | ||||
| @@ -111,9 +111,9 @@ require ( | ||||
| 	github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect | ||||
| 	github.com/pkg/errors v0.9.1 // indirect | ||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||
| 	github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect | ||||
| 	github.com/prometheus/common v0.44.0 // indirect | ||||
| 	github.com/prometheus/procfs v0.11.1 // indirect | ||||
| 	github.com/prometheus/client_model v0.5.0 // indirect | ||||
| 	github.com/prometheus/common v0.45.0 // indirect | ||||
| 	github.com/prometheus/procfs v0.12.0 // indirect | ||||
| 	github.com/russross/blackfriday/v2 v2.1.0 // indirect | ||||
| 	github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect | ||||
| 	github.com/vishvananda/netns v0.0.4 // indirect | ||||
|   | ||||
							
								
								
									
										20
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								go.sum
									
									
									
									
									
								
							| @@ -282,8 +282,8 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | ||||
| github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= | ||||
| github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= | ||||
| github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= | ||||
| github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= | ||||
| github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= | ||||
| github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= | ||||
| github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= | ||||
| github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U= | ||||
| github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= | ||||
| github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= | ||||
| @@ -354,22 +354,22 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN | ||||
| github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= | ||||
| github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= | ||||
| github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= | ||||
| github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= | ||||
| github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= | ||||
| github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= | ||||
| github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= | ||||
| github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= | ||||
| github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= | ||||
| github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= | ||||
| github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= | ||||
| github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= | ||||
| github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= | ||||
| github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= | ||||
| github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= | ||||
| github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= | ||||
| github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= | ||||
| github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= | ||||
| github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= | ||||
| github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= | ||||
| github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= | ||||
| github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= | ||||
| github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= | ||||
| github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= | ||||
| github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= | ||||
| github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= | ||||
| github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= | ||||
| github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= | ||||
| github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= | ||||
|   | ||||
| @@ -19,9 +19,10 @@ import ( | ||||
| 	"errors" | ||||
| 	"io" | ||||
| 
 | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| 	"google.golang.org/protobuf/proto" | ||||
| ) | ||||
| 
 | ||||
| // TODO: Give error package name prefix in next minor release. | ||||
| var errInvalidVarint = errors.New("invalid varint32 encountered") | ||||
| 
 | ||||
| // ReadDelimited decodes a message from the provided length-delimited stream, | ||||
| @@ -36,6 +37,12 @@ var errInvalidVarint = errors.New("invalid varint32 encountered") | ||||
| // of the stream has been reached in doing so.  In that case, any subsequent | ||||
| // calls return (0, io.EOF). | ||||
| func ReadDelimited(r io.Reader, m proto.Message) (n int, err error) { | ||||
| 	// TODO: Consider allowing the caller to specify a decode buffer in the | ||||
| 	// next major version. | ||||
| 
 | ||||
| 	// TODO: Consider using error wrapping to annotate error state in pass- | ||||
| 	// through cases in the next minor version. | ||||
| 
 | ||||
| 	// Per AbstractParser#parsePartialDelimitedFrom with | ||||
| 	// CodedInputStream#readRawVarint32. | ||||
| 	var headerBuf [binary.MaxVarintLen32]byte | ||||
| @@ -53,15 +60,14 @@ func ReadDelimited(r io.Reader, m proto.Message) (n int, err error) { | ||||
| 			if err != nil { | ||||
| 				return bytesRead, err | ||||
| 			} | ||||
| 			// A Reader should not return (0, nil), but if it does, | ||||
| 			// it should be treated as no-op (according to the | ||||
| 			// Reader contract). So let's go on... | ||||
| 			// A Reader should not return (0, nil); but if it does, it should | ||||
| 			// be treated as no-op according to the Reader contract. | ||||
| 			continue | ||||
| 		} | ||||
| 		bytesRead += newBytesRead | ||||
| 		// Now present everything read so far to the varint decoder and | ||||
| 		// see if a varint can be decoded already. | ||||
| 		messageLength, varIntBytes = proto.DecodeVarint(headerBuf[:bytesRead]) | ||||
| 		messageLength, varIntBytes = binary.Uvarint(headerBuf[:bytesRead]) | ||||
| 	} | ||||
| 
 | ||||
| 	messageBuf := make([]byte, messageLength) | ||||
| @@ -18,7 +18,7 @@ import ( | ||||
| 	"encoding/binary" | ||||
| 	"io" | ||||
| 
 | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| 	"google.golang.org/protobuf/proto" | ||||
| ) | ||||
| 
 | ||||
| // WriteDelimited encodes and dumps a message to the provided writer prefixed | ||||
| @@ -28,6 +28,9 @@ import ( | ||||
| // number of bytes written and any applicable error.  This is roughly | ||||
| // equivalent to the companion Java API's MessageLite#writeDelimitedTo. | ||||
| func WriteDelimited(w io.Writer, m proto.Message) (n int, err error) { | ||||
| 	// TODO: Consider allowing the caller to specify an encode buffer in the | ||||
| 	// next major version. | ||||
| 
 | ||||
| 	buffer, err := proto.Marshal(m) | ||||
| 	if err != nil { | ||||
| 		return 0, err | ||||
							
								
								
									
										56
									
								
								vendor/github.com/prometheus/client_golang/prometheus/histogram.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										56
									
								
								vendor/github.com/prometheus/client_golang/prometheus/histogram.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -475,6 +475,9 @@ type HistogramOpts struct { | ||||
|  | ||||
| 	// now is for testing purposes, by default it's time.Now. | ||||
| 	now func() time.Time | ||||
|  | ||||
| 	// afterFunc is for testing purposes, by default it's time.AfterFunc. | ||||
| 	afterFunc func(time.Duration, func()) *time.Timer | ||||
| } | ||||
|  | ||||
| // HistogramVecOpts bundles the options to create a HistogramVec metric. | ||||
| @@ -526,7 +529,9 @@ func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogr | ||||
| 	if opts.now == nil { | ||||
| 		opts.now = time.Now | ||||
| 	} | ||||
|  | ||||
| 	if opts.afterFunc == nil { | ||||
| 		opts.afterFunc = time.AfterFunc | ||||
| 	} | ||||
| 	h := &histogram{ | ||||
| 		desc:                            desc, | ||||
| 		upperBounds:                     opts.Buckets, | ||||
| @@ -536,6 +541,7 @@ func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogr | ||||
| 		nativeHistogramMinResetDuration: opts.NativeHistogramMinResetDuration, | ||||
| 		lastResetTime:                   opts.now(), | ||||
| 		now:                             opts.now, | ||||
| 		afterFunc:                       opts.afterFunc, | ||||
| 	} | ||||
| 	if len(h.upperBounds) == 0 && opts.NativeHistogramBucketFactor <= 1 { | ||||
| 		h.upperBounds = DefBuckets | ||||
| @@ -716,9 +722,16 @@ type histogram struct { | ||||
| 	nativeHistogramMinResetDuration time.Duration | ||||
| 	// lastResetTime is protected by mtx. It is also used as created timestamp. | ||||
| 	lastResetTime time.Time | ||||
| 	// resetScheduled is protected by mtx. It is true if a reset is | ||||
| 	// scheduled for a later time (when nativeHistogramMinResetDuration has | ||||
| 	// passed). | ||||
| 	resetScheduled bool | ||||
|  | ||||
| 	// now is for testing purposes, by default it's time.Now. | ||||
| 	now func() time.Time | ||||
|  | ||||
| 	// afterFunc is for testing purposes, by default it's time.AfterFunc. | ||||
| 	afterFunc func(time.Duration, func()) *time.Timer | ||||
| } | ||||
|  | ||||
| func (h *histogram) Desc() *Desc { | ||||
| @@ -874,21 +887,31 @@ func (h *histogram) limitBuckets(counts *histogramCounts, value float64, bucket | ||||
| 	if h.maybeReset(hotCounts, coldCounts, coldIdx, value, bucket) { | ||||
| 		return | ||||
| 	} | ||||
| 	// One of the other strategies will happen. To undo what they will do as | ||||
| 	// soon as enough time has passed to satisfy | ||||
| 	// h.nativeHistogramMinResetDuration, schedule a reset at the right time | ||||
| 	// if we haven't done so already. | ||||
| 	if h.nativeHistogramMinResetDuration > 0 && !h.resetScheduled { | ||||
| 		h.resetScheduled = true | ||||
| 		h.afterFunc(h.nativeHistogramMinResetDuration-h.now().Sub(h.lastResetTime), h.reset) | ||||
| 	} | ||||
|  | ||||
| 	if h.maybeWidenZeroBucket(hotCounts, coldCounts) { | ||||
| 		return | ||||
| 	} | ||||
| 	h.doubleBucketWidth(hotCounts, coldCounts) | ||||
| } | ||||
|  | ||||
| // maybeReset resets the whole histogram if at least h.nativeHistogramMinResetDuration | ||||
| // has been passed. It returns true if the histogram has been reset. The caller | ||||
| // must have locked h.mtx. | ||||
| // maybeReset resets the whole histogram if at least | ||||
| // h.nativeHistogramMinResetDuration has been passed. It returns true if the | ||||
| // histogram has been reset. The caller must have locked h.mtx. | ||||
| func (h *histogram) maybeReset( | ||||
| 	hot, cold *histogramCounts, coldIdx uint64, value float64, bucket int, | ||||
| ) bool { | ||||
| 	// We are using the possibly mocked h.now() rather than | ||||
| 	// time.Since(h.lastResetTime) to enable testing. | ||||
| 	if h.nativeHistogramMinResetDuration == 0 || | ||||
| 	if h.nativeHistogramMinResetDuration == 0 || // No reset configured. | ||||
| 		h.resetScheduled || // Do not interefere if a reset is already scheduled. | ||||
| 		h.now().Sub(h.lastResetTime) < h.nativeHistogramMinResetDuration { | ||||
| 		return false | ||||
| 	} | ||||
| @@ -906,6 +929,29 @@ func (h *histogram) maybeReset( | ||||
| 	return true | ||||
| } | ||||
|  | ||||
| // reset resets the whole histogram. It locks h.mtx itself, i.e. it has to be | ||||
| // called without having locked h.mtx. | ||||
| func (h *histogram) reset() { | ||||
| 	h.mtx.Lock() | ||||
| 	defer h.mtx.Unlock() | ||||
|  | ||||
| 	n := atomic.LoadUint64(&h.countAndHotIdx) | ||||
| 	hotIdx := n >> 63 | ||||
| 	coldIdx := (^n) >> 63 | ||||
| 	hot := h.counts[hotIdx] | ||||
| 	cold := h.counts[coldIdx] | ||||
| 	// Completely reset coldCounts. | ||||
| 	h.resetCounts(cold) | ||||
| 	// Make coldCounts the new hot counts while resetting countAndHotIdx. | ||||
| 	n = atomic.SwapUint64(&h.countAndHotIdx, coldIdx<<63) | ||||
| 	count := n & ((1 << 63) - 1) | ||||
| 	waitForCooldown(count, hot) | ||||
| 	// Finally, reset the formerly hot counts, too. | ||||
| 	h.resetCounts(hot) | ||||
| 	h.lastResetTime = h.now() | ||||
| 	h.resetScheduled = false | ||||
| } | ||||
|  | ||||
| // maybeWidenZeroBucket widens the zero bucket until it includes the existing | ||||
| // buckets closest to the zero bucket (which could be two, if an equidistant | ||||
| // negative and a positive bucket exists, but usually it's only one bucket to be | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/prometheus/client_golang/prometheus/labels.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/prometheus/client_golang/prometheus/labels.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -165,6 +165,8 @@ func validateValuesInLabels(labels Labels, expectedNumberOfValues int) error { | ||||
|  | ||||
| func validateLabelValues(vals []string, expectedNumberOfValues int) error { | ||||
| 	if len(vals) != expectedNumberOfValues { | ||||
| 		// The call below makes vals escape, copy them to avoid that. | ||||
| 		vals := append([]string(nil), vals...) | ||||
| 		return fmt.Errorf( | ||||
| 			"%w: expected %d label values but got %d in %#v", | ||||
| 			errInconsistentCardinality, expectedNumberOfValues, | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/prometheus/client_golang/prometheus/process_collector_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,8 +11,8 @@ | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| //go:build !windows && !js | ||||
| // +build !windows,!js | ||||
| //go:build !windows && !js && !wasip1 | ||||
| // +build !windows,!js,!wasip1 | ||||
|  | ||||
| package prometheus | ||||
|  | ||||
|   | ||||
							
								
								
									
										26
									
								
								vendor/github.com/prometheus/client_golang/prometheus/process_collector_wasip1.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/prometheus/client_golang/prometheus/process_collector_wasip1.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| // Copyright 2023 The Prometheus Authors | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| // http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| //go:build wasip1 | ||||
| // +build wasip1 | ||||
|  | ||||
| package prometheus | ||||
|  | ||||
| func canCollectProcess() bool { | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| func (*processCollector) processCollect(chan<- Metric) { | ||||
| 	// noop on this platform | ||||
| 	return | ||||
| } | ||||
							
								
								
									
										3
									
								
								vendor/github.com/prometheus/client_model/go/metrics.pb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/prometheus/client_model/go/metrics.pb.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -474,6 +474,9 @@ type Histogram struct { | ||||
| 	NegativeDelta []int64   `protobuf:"zigzag64,10,rep,name=negative_delta,json=negativeDelta" json:"negative_delta,omitempty"` // Count delta of each bucket compared to previous one (or to zero for 1st bucket). | ||||
| 	NegativeCount []float64 `protobuf:"fixed64,11,rep,name=negative_count,json=negativeCount" json:"negative_count,omitempty"`  // Absolute count of each bucket. | ||||
| 	// Positive buckets for the native histogram. | ||||
| 	// Use a no-op span (offset 0, length 0) for a native histogram without any | ||||
| 	// observations yet and with a zero_threshold of 0. Otherwise, it would be | ||||
| 	// indistinguishable from a classic histogram. | ||||
| 	PositiveSpan []*BucketSpan `protobuf:"bytes,12,rep,name=positive_span,json=positiveSpan" json:"positive_span,omitempty"` | ||||
| 	// Use either "positive_delta" or "positive_count", the former for | ||||
| 	// regular histograms with integer counts, the latter for float | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/prometheus/common/expfmt/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/prometheus/common/expfmt/decode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -22,7 +22,7 @@ import ( | ||||
|  | ||||
| 	dto "github.com/prometheus/client_model/go" | ||||
|  | ||||
| 	"github.com/matttproud/golang_protobuf_extensions/pbutil" | ||||
| 	"github.com/matttproud/golang_protobuf_extensions/v2/pbutil" | ||||
| 	"github.com/prometheus/common/model" | ||||
| ) | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/prometheus/common/expfmt/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/prometheus/common/expfmt/encode.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -18,7 +18,7 @@ import ( | ||||
| 	"io" | ||||
| 	"net/http" | ||||
|  | ||||
| 	"github.com/matttproud/golang_protobuf_extensions/pbutil" | ||||
| 	"github.com/matttproud/golang_protobuf_extensions/v2/pbutil" | ||||
| 	"github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg" | ||||
| 	"google.golang.org/protobuf/encoding/prototext" | ||||
|  | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/prometheus/procfs/Makefile.common
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/prometheus/procfs/Makefile.common
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -61,7 +61,7 @@ PROMU_URL     := https://github.com/prometheus/promu/releases/download/v$(PROMU_ | ||||
| SKIP_GOLANGCI_LINT := | ||||
| GOLANGCI_LINT := | ||||
| GOLANGCI_LINT_OPTS ?= | ||||
| GOLANGCI_LINT_VERSION ?= v1.53.3 | ||||
| GOLANGCI_LINT_VERSION ?= v1.54.2 | ||||
| # golangci-lint only supports linux, darwin and windows platforms on i386/amd64. | ||||
| # windows isn't included here because of the path separator being different. | ||||
| ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin)) | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/prometheus/procfs/fs_statfs_notype.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/prometheus/procfs/fs_statfs_notype.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,8 +11,8 @@ | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| //go:build netbsd || openbsd || solaris || windows || nostatfs | ||||
| // +build netbsd openbsd solaris windows nostatfs | ||||
| //go:build !freebsd && !linux | ||||
| // +build !freebsd,!linux | ||||
|  | ||||
| package procfs | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/prometheus/procfs/fs_statfs_type.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/prometheus/procfs/fs_statfs_type.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -11,8 +11,8 @@ | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
|  | ||||
| //go:build !netbsd && !openbsd && !solaris && !windows && !nostatfs | ||||
| // +build !netbsd,!openbsd,!solaris,!windows,!nostatfs | ||||
| //go:build freebsd || linux | ||||
| // +build freebsd linux | ||||
|  | ||||
| package procfs | ||||
|  | ||||
|   | ||||
							
								
								
									
										83
									
								
								vendor/github.com/prometheus/procfs/mountstats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										83
									
								
								vendor/github.com/prometheus/procfs/mountstats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -44,6 +44,14 @@ const ( | ||||
|  | ||||
| 	fieldTransport11TCPLen = 13 | ||||
| 	fieldTransport11UDPLen = 10 | ||||
|  | ||||
| 	// kernel version >= 4.14 MaxLen | ||||
| 	// See: https://elixir.bootlin.com/linux/v6.4.8/source/net/sunrpc/xprtrdma/xprt_rdma.h#L393 | ||||
| 	fieldTransport11RDMAMaxLen = 28 | ||||
|  | ||||
| 	// kernel version <= 4.2 MinLen | ||||
| 	// See: https://elixir.bootlin.com/linux/v4.2.8/source/net/sunrpc/xprtrdma/xprt_rdma.h#L331 | ||||
| 	fieldTransport11RDMAMinLen = 20 | ||||
| ) | ||||
|  | ||||
| // A Mount is a device mount parsed from /proc/[pid]/mountstats. | ||||
| @@ -233,6 +241,33 @@ type NFSTransportStats struct { | ||||
| 	// A running counter, incremented on each request as the current size of the | ||||
| 	// pending queue. | ||||
| 	CumulativePendingQueue uint64 | ||||
|  | ||||
| 	// Stats below only available with stat version 1.1. | ||||
| 	// Transport over RDMA | ||||
|  | ||||
| 	// accessed when sending a call | ||||
| 	ReadChunkCount   uint64 | ||||
| 	WriteChunkCount  uint64 | ||||
| 	ReplyChunkCount  uint64 | ||||
| 	TotalRdmaRequest uint64 | ||||
|  | ||||
| 	// rarely accessed error counters | ||||
| 	PullupCopyCount      uint64 | ||||
| 	HardwayRegisterCount uint64 | ||||
| 	FailedMarshalCount   uint64 | ||||
| 	BadReplyCount        uint64 | ||||
| 	MrsRecovered         uint64 | ||||
| 	MrsOrphaned          uint64 | ||||
| 	MrsAllocated         uint64 | ||||
| 	EmptySendctxQ        uint64 | ||||
|  | ||||
| 	// accessed when receiving a reply | ||||
| 	TotalRdmaReply    uint64 | ||||
| 	FixupCopyCount    uint64 | ||||
| 	ReplyWaitsForSend uint64 | ||||
| 	LocalInvNeeded    uint64 | ||||
| 	NomsgCallCount    uint64 | ||||
| 	BcallCount        uint64 | ||||
| } | ||||
|  | ||||
| // parseMountStats parses a /proc/[pid]/mountstats file and returns a slice | ||||
| @@ -587,14 +622,17 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats | ||||
| 			expectedLength = fieldTransport11TCPLen | ||||
| 		} else if protocol == "udp" { | ||||
| 			expectedLength = fieldTransport11UDPLen | ||||
| 		} else if protocol == "rdma" { | ||||
| 			expectedLength = fieldTransport11RDMAMinLen | ||||
| 		} else { | ||||
| 			return nil, fmt.Errorf("%w: invalid NFS protocol \"%s\" in stats 1.1 statement: %v", ErrFileParse, protocol, ss) | ||||
| 		} | ||||
| 		if len(ss) != expectedLength { | ||||
| 			return nil, fmt.Errorf("%w: invalid NFS transport stats 1.1 statement: %v", ErrFileParse, ss) | ||||
| 		if (len(ss) != expectedLength && (protocol == "tcp" || protocol == "udp")) || | ||||
| 			(protocol == "rdma" && len(ss) < expectedLength) { | ||||
| 			return nil, fmt.Errorf("%w: invalid NFS transport stats 1.1 statement: %v, protocol: %v", ErrFileParse, ss, protocol) | ||||
| 		} | ||||
| 	default: | ||||
| 		return nil, fmt.Errorf("%s: Unrecognized NFS transport stats version: %q", ErrFileParse, statVersion) | ||||
| 		return nil, fmt.Errorf("%s: Unrecognized NFS transport stats version: %q, protocol: %v", ErrFileParse, statVersion, protocol) | ||||
| 	} | ||||
|  | ||||
| 	// Allocate enough for v1.1 stats since zero value for v1.1 stats will be okay | ||||
| @@ -604,7 +642,9 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats | ||||
| 	// Note: slice length must be set to length of v1.1 stats to avoid a panic when | ||||
| 	// only v1.0 stats are present. | ||||
| 	// See: https://github.com/prometheus/node_exporter/issues/571. | ||||
| 	ns := make([]uint64, fieldTransport11TCPLen) | ||||
| 	// | ||||
| 	// Note: NFS Over RDMA slice length is fieldTransport11RDMAMaxLen | ||||
| 	ns := make([]uint64, fieldTransport11RDMAMaxLen+3) | ||||
| 	for i, s := range ss { | ||||
| 		n, err := strconv.ParseUint(s, 10, 64) | ||||
| 		if err != nil { | ||||
| @@ -622,9 +662,14 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats | ||||
| 	// we set them to 0 here. | ||||
| 	if protocol == "udp" { | ||||
| 		ns = append(ns[:2], append(make([]uint64, 3), ns[2:]...)...) | ||||
| 	} else if protocol == "tcp" { | ||||
| 		ns = append(ns[:fieldTransport11TCPLen], make([]uint64, fieldTransport11RDMAMaxLen-fieldTransport11TCPLen+3)...) | ||||
| 	} else if protocol == "rdma" { | ||||
| 		ns = append(ns[:fieldTransport10TCPLen], append(make([]uint64, 3), ns[fieldTransport10TCPLen:]...)...) | ||||
| 	} | ||||
|  | ||||
| 	return &NFSTransportStats{ | ||||
| 		// NFS xprt over tcp or udp | ||||
| 		Protocol:                 protocol, | ||||
| 		Port:                     ns[0], | ||||
| 		Bind:                     ns[1], | ||||
| @@ -636,8 +681,32 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats | ||||
| 		BadTransactionIDs:        ns[7], | ||||
| 		CumulativeActiveRequests: ns[8], | ||||
| 		CumulativeBacklog:        ns[9], | ||||
| 		MaximumRPCSlotsUsed:      ns[10], | ||||
| 		CumulativeSendingQueue:   ns[11], | ||||
| 		CumulativePendingQueue:   ns[12], | ||||
|  | ||||
| 		// NFS xprt over tcp or udp | ||||
| 		// And statVersion 1.1 | ||||
| 		MaximumRPCSlotsUsed:    ns[10], | ||||
| 		CumulativeSendingQueue: ns[11], | ||||
| 		CumulativePendingQueue: ns[12], | ||||
|  | ||||
| 		// NFS xprt over rdma | ||||
| 		// And stat Version 1.1 | ||||
| 		ReadChunkCount:       ns[13], | ||||
| 		WriteChunkCount:      ns[14], | ||||
| 		ReplyChunkCount:      ns[15], | ||||
| 		TotalRdmaRequest:     ns[16], | ||||
| 		PullupCopyCount:      ns[17], | ||||
| 		HardwayRegisterCount: ns[18], | ||||
| 		FailedMarshalCount:   ns[19], | ||||
| 		BadReplyCount:        ns[20], | ||||
| 		MrsRecovered:         ns[21], | ||||
| 		MrsOrphaned:          ns[22], | ||||
| 		MrsAllocated:         ns[23], | ||||
| 		EmptySendctxQ:        ns[24], | ||||
| 		TotalRdmaReply:       ns[25], | ||||
| 		FixupCopyCount:       ns[26], | ||||
| 		ReplyWaitsForSend:    ns[27], | ||||
| 		LocalInvNeeded:       ns[28], | ||||
| 		NomsgCallCount:       ns[29], | ||||
| 		BcallCount:           ns[30], | ||||
| 	}, nil | ||||
| } | ||||
|   | ||||
							
								
								
									
										8
									
								
								vendor/github.com/prometheus/procfs/proc_fdinfo.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/prometheus/procfs/proc_fdinfo.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -26,6 +26,7 @@ var ( | ||||
| 	rPos          = regexp.MustCompile(`^pos:\s+(\d+)$`) | ||||
| 	rFlags        = regexp.MustCompile(`^flags:\s+(\d+)$`) | ||||
| 	rMntID        = regexp.MustCompile(`^mnt_id:\s+(\d+)$`) | ||||
| 	rIno          = regexp.MustCompile(`^ino:\s+(\d+)$`) | ||||
| 	rInotify      = regexp.MustCompile(`^inotify`) | ||||
| 	rInotifyParts = regexp.MustCompile(`^inotify\s+wd:([0-9a-f]+)\s+ino:([0-9a-f]+)\s+sdev:([0-9a-f]+)(?:\s+mask:([0-9a-f]+))?`) | ||||
| ) | ||||
| @@ -40,6 +41,8 @@ type ProcFDInfo struct { | ||||
| 	Flags string | ||||
| 	// Mount point ID | ||||
| 	MntID string | ||||
| 	// Inode number | ||||
| 	Ino string | ||||
| 	// List of inotify lines (structured) in the fdinfo file (kernel 3.8+ only) | ||||
| 	InotifyInfos []InotifyInfo | ||||
| } | ||||
| @@ -51,7 +54,7 @@ func (p Proc) FDInfo(fd string) (*ProcFDInfo, error) { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	var text, pos, flags, mntid string | ||||
| 	var text, pos, flags, mntid, ino string | ||||
| 	var inotify []InotifyInfo | ||||
|  | ||||
| 	scanner := bufio.NewScanner(bytes.NewReader(data)) | ||||
| @@ -63,6 +66,8 @@ func (p Proc) FDInfo(fd string) (*ProcFDInfo, error) { | ||||
| 			flags = rFlags.FindStringSubmatch(text)[1] | ||||
| 		} else if rMntID.MatchString(text) { | ||||
| 			mntid = rMntID.FindStringSubmatch(text)[1] | ||||
| 		} else if rIno.MatchString(text) { | ||||
| 			ino = rIno.FindStringSubmatch(text)[1] | ||||
| 		} else if rInotify.MatchString(text) { | ||||
| 			newInotify, err := parseInotifyInfo(text) | ||||
| 			if err != nil { | ||||
| @@ -77,6 +82,7 @@ func (p Proc) FDInfo(fd string) (*ProcFDInfo, error) { | ||||
| 		Pos:          pos, | ||||
| 		Flags:        flags, | ||||
| 		MntID:        mntid, | ||||
| 		Ino:          ino, | ||||
| 		InotifyInfos: inotify, | ||||
| 	} | ||||
|  | ||||
|   | ||||
							
								
								
									
										20
									
								
								vendor/github.com/prometheus/procfs/proc_maps.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/prometheus/procfs/proc_maps.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -63,17 +63,17 @@ type ProcMap struct { | ||||
| // parseDevice parses the device token of a line and converts it to a dev_t | ||||
| // (mkdev) like structure. | ||||
| func parseDevice(s string) (uint64, error) { | ||||
| 	toks := strings.Split(s, ":") | ||||
| 	if len(toks) < 2 { | ||||
| 		return 0, fmt.Errorf("%w: unexpected number of fields, expected: 2, got: %q", ErrFileParse, len(toks)) | ||||
| 	i := strings.Index(s, ":") | ||||
| 	if i == -1 { | ||||
| 		return 0, fmt.Errorf("%w: expected separator `:` in %s", ErrFileParse, s) | ||||
| 	} | ||||
|  | ||||
| 	major, err := strconv.ParseUint(toks[0], 16, 0) | ||||
| 	major, err := strconv.ParseUint(s[0:i], 16, 0) | ||||
| 	if err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
|  | ||||
| 	minor, err := strconv.ParseUint(toks[1], 16, 0) | ||||
| 	minor, err := strconv.ParseUint(s[i+1:], 16, 0) | ||||
| 	if err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
| @@ -93,17 +93,17 @@ func parseAddress(s string) (uintptr, error) { | ||||
|  | ||||
| // parseAddresses parses the start-end address. | ||||
| func parseAddresses(s string) (uintptr, uintptr, error) { | ||||
| 	toks := strings.Split(s, "-") | ||||
| 	if len(toks) < 2 { | ||||
| 		return 0, 0, fmt.Errorf("%w: invalid address", ErrFileParse) | ||||
| 	idx := strings.Index(s, "-") | ||||
| 	if idx == -1 { | ||||
| 		return 0, 0, fmt.Errorf("%w: expected separator `-` in %s", ErrFileParse, s) | ||||
| 	} | ||||
|  | ||||
| 	saddr, err := parseAddress(toks[0]) | ||||
| 	saddr, err := parseAddress(s[0:idx]) | ||||
| 	if err != nil { | ||||
| 		return 0, 0, err | ||||
| 	} | ||||
|  | ||||
| 	eaddr, err := parseAddress(toks[1]) | ||||
| 	eaddr, err := parseAddress(s[idx+1:]) | ||||
| 	if err != nil { | ||||
| 		return 0, 0, err | ||||
| 	} | ||||
|   | ||||
							
								
								
									
										21
									
								
								vendor/github.com/prometheus/procfs/proc_status.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/prometheus/procfs/proc_status.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -23,7 +23,7 @@ import ( | ||||
| ) | ||||
|  | ||||
| // ProcStatus provides status information about the process, | ||||
| // read from /proc/[pid]/stat. | ||||
| // read from /proc/[pid]/status. | ||||
| type ProcStatus struct { | ||||
| 	// The process ID. | ||||
| 	PID int | ||||
| @@ -32,6 +32,8 @@ type ProcStatus struct { | ||||
|  | ||||
| 	// Thread group ID. | ||||
| 	TGID int | ||||
| 	// List of Pid namespace. | ||||
| 	NSpids []uint64 | ||||
|  | ||||
| 	// Peak virtual memory size. | ||||
| 	VmPeak uint64 // nolint:revive | ||||
| @@ -127,6 +129,8 @@ func (s *ProcStatus) fillStatus(k string, vString string, vUint uint64, vUintByt | ||||
| 		copy(s.UIDs[:], strings.Split(vString, "\t")) | ||||
| 	case "Gid": | ||||
| 		copy(s.GIDs[:], strings.Split(vString, "\t")) | ||||
| 	case "NSpid": | ||||
| 		s.NSpids = calcNSPidsList(vString) | ||||
| 	case "VmPeak": | ||||
| 		s.VmPeak = vUintBytes | ||||
| 	case "VmSize": | ||||
| @@ -200,3 +204,18 @@ func calcCpusAllowedList(cpuString string) []uint64 { | ||||
| 	sort.Slice(g, func(i, j int) bool { return g[i] < g[j] }) | ||||
| 	return g | ||||
| } | ||||
|  | ||||
| func calcNSPidsList(nspidsString string) []uint64 { | ||||
| 	s := strings.Split(nspidsString, " ") | ||||
| 	var nspids []uint64 | ||||
|  | ||||
| 	for _, nspid := range s { | ||||
| 		nspid, _ := strconv.ParseUint(nspid, 10, 64) | ||||
| 		if nspid == 0 { | ||||
| 			continue | ||||
| 		} | ||||
| 		nspids = append(nspids, nspid) | ||||
| 	} | ||||
|  | ||||
| 	return nspids | ||||
| } | ||||
|   | ||||
							
								
								
									
										18
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							| @@ -282,9 +282,9 @@ github.com/klauspost/compress/zstd/internal/xxhash | ||||
| # github.com/klauspost/cpuid/v2 v2.2.5 | ||||
| ## explicit; go 1.15 | ||||
| github.com/klauspost/cpuid/v2 | ||||
| # github.com/matttproud/golang_protobuf_extensions v1.0.4 | ||||
| ## explicit; go 1.9 | ||||
| github.com/matttproud/golang_protobuf_extensions/pbutil | ||||
| # github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 | ||||
| ## explicit; go 1.19 | ||||
| github.com/matttproud/golang_protobuf_extensions/v2/pbutil | ||||
| # github.com/mdlayher/socket v0.4.1 | ||||
| ## explicit; go 1.20 | ||||
| github.com/mdlayher/socket | ||||
| @@ -361,20 +361,20 @@ github.com/pkg/errors | ||||
| # github.com/pmezard/go-difflib v1.0.0 | ||||
| ## explicit | ||||
| github.com/pmezard/go-difflib/difflib | ||||
| # github.com/prometheus/client_golang v1.17.0 | ||||
| # github.com/prometheus/client_golang v1.18.0 | ||||
| ## explicit; go 1.19 | ||||
| github.com/prometheus/client_golang/prometheus | ||||
| github.com/prometheus/client_golang/prometheus/internal | ||||
| github.com/prometheus/client_golang/prometheus/promhttp | ||||
| # github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 | ||||
| ## explicit; go 1.18 | ||||
| # github.com/prometheus/client_model v0.5.0 | ||||
| ## explicit; go 1.19 | ||||
| github.com/prometheus/client_model/go | ||||
| # github.com/prometheus/common v0.44.0 | ||||
| ## explicit; go 1.18 | ||||
| # github.com/prometheus/common v0.45.0 | ||||
| ## explicit; go 1.20 | ||||
| github.com/prometheus/common/expfmt | ||||
| github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg | ||||
| github.com/prometheus/common/model | ||||
| # github.com/prometheus/procfs v0.11.1 | ||||
| # github.com/prometheus/procfs v0.12.0 | ||||
| ## explicit; go 1.19 | ||||
| github.com/prometheus/procfs | ||||
| github.com/prometheus/procfs/internal/fs | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	![49699333+dependabot[bot]@users.noreply.github.com](/assets/img/avatar_default.png) dependabot[bot]
					dependabot[bot]