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/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626
 | 
				
			||||||
	github.com/opencontainers/selinux v1.11.0
 | 
						github.com/opencontainers/selinux v1.11.0
 | 
				
			||||||
	github.com/pelletier/go-toml/v2 v2.1.1
 | 
						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/sirupsen/logrus v1.9.3
 | 
				
			||||||
	github.com/stretchr/testify v1.8.4
 | 
						github.com/stretchr/testify v1.8.4
 | 
				
			||||||
	github.com/tchap/go-patricia/v2 v2.3.1
 | 
						github.com/tchap/go-patricia/v2 v2.3.1
 | 
				
			||||||
@@ -103,7 +103,7 @@ require (
 | 
				
			|||||||
	github.com/hashicorp/errwrap v1.1.0 // indirect
 | 
						github.com/hashicorp/errwrap v1.1.0 // indirect
 | 
				
			||||||
	github.com/json-iterator/go v1.1.12 // indirect
 | 
						github.com/json-iterator/go v1.1.12 // indirect
 | 
				
			||||||
	github.com/klauspost/cpuid/v2 v2.2.5 // 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/mdlayher/socket v0.4.1 // indirect
 | 
				
			||||||
	github.com/moby/spdystream v0.2.0 // indirect
 | 
						github.com/moby/spdystream v0.2.0 // indirect
 | 
				
			||||||
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // 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/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
 | 
				
			||||||
	github.com/pkg/errors v0.9.1 // indirect
 | 
						github.com/pkg/errors v0.9.1 // indirect
 | 
				
			||||||
	github.com/pmezard/go-difflib v1.0.0 // 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/client_model v0.5.0 // indirect
 | 
				
			||||||
	github.com/prometheus/common v0.44.0 // indirect
 | 
						github.com/prometheus/common v0.45.0 // indirect
 | 
				
			||||||
	github.com/prometheus/procfs v0.11.1 // indirect
 | 
						github.com/prometheus/procfs v0.12.0 // indirect
 | 
				
			||||||
	github.com/russross/blackfriday/v2 v2.1.0 // indirect
 | 
						github.com/russross/blackfriday/v2 v2.1.0 // indirect
 | 
				
			||||||
	github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect
 | 
						github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect
 | 
				
			||||||
	github.com/vishvananda/netns v0.0.4 // 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 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
 | 
				
			||||||
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
 | 
					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.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
 | 
				
			||||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
 | 
					github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
 | 
				
			||||||
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/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
 | 
				
			||||||
github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
 | 
					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/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
 | 
				
			||||||
github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ=
 | 
					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 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.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.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.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
 | 
				
			||||||
github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY=
 | 
					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-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-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.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.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
 | 
				
			||||||
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/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
 | 
				
			||||||
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 | 
					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.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
 | 
				
			||||||
github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
 | 
					github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM=
 | 
				
			||||||
github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
 | 
					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.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.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 | 
				
			||||||
github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ=
 | 
					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.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
 | 
				
			||||||
github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
 | 
					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.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 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
 | 
				
			||||||
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
 | 
					github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,9 +19,10 @@ import (
 | 
				
			|||||||
	"errors"
 | 
						"errors"
 | 
				
			||||||
	"io"
 | 
						"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")
 | 
					var errInvalidVarint = errors.New("invalid varint32 encountered")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ReadDelimited decodes a message from the provided length-delimited stream,
 | 
					// 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
 | 
					// of the stream has been reached in doing so.  In that case, any subsequent
 | 
				
			||||||
// calls return (0, io.EOF).
 | 
					// calls return (0, io.EOF).
 | 
				
			||||||
func ReadDelimited(r io.Reader, m proto.Message) (n int, err error) {
 | 
					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
 | 
						// Per AbstractParser#parsePartialDelimitedFrom with
 | 
				
			||||||
	// CodedInputStream#readRawVarint32.
 | 
						// CodedInputStream#readRawVarint32.
 | 
				
			||||||
	var headerBuf [binary.MaxVarintLen32]byte
 | 
						var headerBuf [binary.MaxVarintLen32]byte
 | 
				
			||||||
@@ -53,15 +60,14 @@ func ReadDelimited(r io.Reader, m proto.Message) (n int, err error) {
 | 
				
			|||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				return bytesRead, err
 | 
									return bytesRead, err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			// A Reader should not return (0, nil), but if it does,
 | 
								// A Reader should not return (0, nil); but if it does, it should
 | 
				
			||||||
			// it should be treated as no-op (according to the
 | 
								// be treated as no-op according to the Reader contract.
 | 
				
			||||||
			// Reader contract). So let's go on...
 | 
					 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		bytesRead += newBytesRead
 | 
							bytesRead += newBytesRead
 | 
				
			||||||
		// Now present everything read so far to the varint decoder and
 | 
							// Now present everything read so far to the varint decoder and
 | 
				
			||||||
		// see if a varint can be decoded already.
 | 
							// see if a varint can be decoded already.
 | 
				
			||||||
		messageLength, varIntBytes = proto.DecodeVarint(headerBuf[:bytesRead])
 | 
							messageLength, varIntBytes = binary.Uvarint(headerBuf[:bytesRead])
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	messageBuf := make([]byte, messageLength)
 | 
						messageBuf := make([]byte, messageLength)
 | 
				
			||||||
@@ -18,7 +18,7 @@ import (
 | 
				
			|||||||
	"encoding/binary"
 | 
						"encoding/binary"
 | 
				
			||||||
	"io"
 | 
						"io"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/golang/protobuf/proto"
 | 
						"google.golang.org/protobuf/proto"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// WriteDelimited encodes and dumps a message to the provided writer prefixed
 | 
					// 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
 | 
					// number of bytes written and any applicable error.  This is roughly
 | 
				
			||||||
// equivalent to the companion Java API's MessageLite#writeDelimitedTo.
 | 
					// equivalent to the companion Java API's MessageLite#writeDelimitedTo.
 | 
				
			||||||
func WriteDelimited(w io.Writer, m proto.Message) (n int, err error) {
 | 
					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)
 | 
						buffer, err := proto.Marshal(m)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return 0, err
 | 
							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 is for testing purposes, by default it's time.Now.
 | 
				
			||||||
	now func() time.Time
 | 
						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.
 | 
					// 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 {
 | 
						if opts.now == nil {
 | 
				
			||||||
		opts.now = time.Now
 | 
							opts.now = time.Now
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if opts.afterFunc == nil {
 | 
				
			||||||
 | 
							opts.afterFunc = time.AfterFunc
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	h := &histogram{
 | 
						h := &histogram{
 | 
				
			||||||
		desc:                            desc,
 | 
							desc:                            desc,
 | 
				
			||||||
		upperBounds:                     opts.Buckets,
 | 
							upperBounds:                     opts.Buckets,
 | 
				
			||||||
@@ -536,6 +541,7 @@ func newHistogram(desc *Desc, opts HistogramOpts, labelValues ...string) Histogr
 | 
				
			|||||||
		nativeHistogramMinResetDuration: opts.NativeHistogramMinResetDuration,
 | 
							nativeHistogramMinResetDuration: opts.NativeHistogramMinResetDuration,
 | 
				
			||||||
		lastResetTime:                   opts.now(),
 | 
							lastResetTime:                   opts.now(),
 | 
				
			||||||
		now:                             opts.now,
 | 
							now:                             opts.now,
 | 
				
			||||||
 | 
							afterFunc:                       opts.afterFunc,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if len(h.upperBounds) == 0 && opts.NativeHistogramBucketFactor <= 1 {
 | 
						if len(h.upperBounds) == 0 && opts.NativeHistogramBucketFactor <= 1 {
 | 
				
			||||||
		h.upperBounds = DefBuckets
 | 
							h.upperBounds = DefBuckets
 | 
				
			||||||
@@ -716,9 +722,16 @@ type histogram struct {
 | 
				
			|||||||
	nativeHistogramMinResetDuration time.Duration
 | 
						nativeHistogramMinResetDuration time.Duration
 | 
				
			||||||
	// lastResetTime is protected by mtx. It is also used as created timestamp.
 | 
						// lastResetTime is protected by mtx. It is also used as created timestamp.
 | 
				
			||||||
	lastResetTime time.Time
 | 
						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 is for testing purposes, by default it's time.Now.
 | 
				
			||||||
	now func() time.Time
 | 
						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 {
 | 
					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) {
 | 
						if h.maybeReset(hotCounts, coldCounts, coldIdx, value, bucket) {
 | 
				
			||||||
		return
 | 
							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) {
 | 
						if h.maybeWidenZeroBucket(hotCounts, coldCounts) {
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	h.doubleBucketWidth(hotCounts, coldCounts)
 | 
						h.doubleBucketWidth(hotCounts, coldCounts)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// maybeReset resets the whole histogram if at least h.nativeHistogramMinResetDuration
 | 
					// maybeReset resets the whole histogram if at least
 | 
				
			||||||
// has been passed. It returns true if the histogram has been reset. The caller
 | 
					// h.nativeHistogramMinResetDuration has been passed. It returns true if the
 | 
				
			||||||
// must have locked h.mtx.
 | 
					// histogram has been reset. The caller must have locked h.mtx.
 | 
				
			||||||
func (h *histogram) maybeReset(
 | 
					func (h *histogram) maybeReset(
 | 
				
			||||||
	hot, cold *histogramCounts, coldIdx uint64, value float64, bucket int,
 | 
						hot, cold *histogramCounts, coldIdx uint64, value float64, bucket int,
 | 
				
			||||||
) bool {
 | 
					) bool {
 | 
				
			||||||
	// We are using the possibly mocked h.now() rather than
 | 
						// We are using the possibly mocked h.now() rather than
 | 
				
			||||||
	// time.Since(h.lastResetTime) to enable testing.
 | 
						// 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 {
 | 
							h.now().Sub(h.lastResetTime) < h.nativeHistogramMinResetDuration {
 | 
				
			||||||
		return false
 | 
							return false
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -906,6 +929,29 @@ func (h *histogram) maybeReset(
 | 
				
			|||||||
	return true
 | 
						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
 | 
					// maybeWidenZeroBucket widens the zero bucket until it includes the existing
 | 
				
			||||||
// buckets closest to the zero bucket (which could be two, if an equidistant
 | 
					// 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
 | 
					// 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 {
 | 
					func validateLabelValues(vals []string, expectedNumberOfValues int) error {
 | 
				
			||||||
	if len(vals) != expectedNumberOfValues {
 | 
						if len(vals) != expectedNumberOfValues {
 | 
				
			||||||
 | 
							// The call below makes vals escape, copy them to avoid that.
 | 
				
			||||||
 | 
							vals := append([]string(nil), vals...)
 | 
				
			||||||
		return fmt.Errorf(
 | 
							return fmt.Errorf(
 | 
				
			||||||
			"%w: expected %d label values but got %d in %#v",
 | 
								"%w: expected %d label values but got %d in %#v",
 | 
				
			||||||
			errInconsistentCardinality, expectedNumberOfValues,
 | 
								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
 | 
					// See the License for the specific language governing permissions and
 | 
				
			||||||
// limitations under the License.
 | 
					// limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//go:build !windows && !js
 | 
					//go:build !windows && !js && !wasip1
 | 
				
			||||||
// +build !windows,!js
 | 
					// +build !windows,!js,!wasip1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package prometheus
 | 
					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).
 | 
						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.
 | 
						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.
 | 
						// 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"`
 | 
						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
 | 
						// Use either "positive_delta" or "positive_count", the former for
 | 
				
			||||||
	// regular histograms with integer counts, the latter for float
 | 
						// 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"
 | 
						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"
 | 
						"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"
 | 
						"io"
 | 
				
			||||||
	"net/http"
 | 
						"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"
 | 
						"github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg"
 | 
				
			||||||
	"google.golang.org/protobuf/encoding/prototext"
 | 
						"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 :=
 | 
					SKIP_GOLANGCI_LINT :=
 | 
				
			||||||
GOLANGCI_LINT :=
 | 
					GOLANGCI_LINT :=
 | 
				
			||||||
GOLANGCI_LINT_OPTS ?=
 | 
					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.
 | 
					# golangci-lint only supports linux, darwin and windows platforms on i386/amd64.
 | 
				
			||||||
# windows isn't included here because of the path separator being different.
 | 
					# windows isn't included here because of the path separator being different.
 | 
				
			||||||
ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin))
 | 
					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
 | 
					// See the License for the specific language governing permissions and
 | 
				
			||||||
// limitations under the License.
 | 
					// limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//go:build netbsd || openbsd || solaris || windows || nostatfs
 | 
					//go:build !freebsd && !linux
 | 
				
			||||||
// +build netbsd openbsd solaris windows nostatfs
 | 
					// +build !freebsd,!linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package procfs
 | 
					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
 | 
					// See the License for the specific language governing permissions and
 | 
				
			||||||
// limitations under the License.
 | 
					// limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//go:build !netbsd && !openbsd && !solaris && !windows && !nostatfs
 | 
					//go:build freebsd || linux
 | 
				
			||||||
// +build !netbsd,!openbsd,!solaris,!windows,!nostatfs
 | 
					// +build freebsd linux
 | 
				
			||||||
 | 
					
 | 
				
			||||||
package procfs
 | 
					package procfs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										77
									
								
								vendor/github.com/prometheus/procfs/mountstats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										77
									
								
								vendor/github.com/prometheus/procfs/mountstats.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -44,6 +44,14 @@ const (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	fieldTransport11TCPLen = 13
 | 
						fieldTransport11TCPLen = 13
 | 
				
			||||||
	fieldTransport11UDPLen = 10
 | 
						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.
 | 
					// 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
 | 
						// A running counter, incremented on each request as the current size of the
 | 
				
			||||||
	// pending queue.
 | 
						// pending queue.
 | 
				
			||||||
	CumulativePendingQueue uint64
 | 
						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
 | 
					// parseMountStats parses a /proc/[pid]/mountstats file and returns a slice
 | 
				
			||||||
@@ -587,14 +622,17 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats
 | 
				
			|||||||
			expectedLength = fieldTransport11TCPLen
 | 
								expectedLength = fieldTransport11TCPLen
 | 
				
			||||||
		} else if protocol == "udp" {
 | 
							} else if protocol == "udp" {
 | 
				
			||||||
			expectedLength = fieldTransport11UDPLen
 | 
								expectedLength = fieldTransport11UDPLen
 | 
				
			||||||
 | 
							} else if protocol == "rdma" {
 | 
				
			||||||
 | 
								expectedLength = fieldTransport11RDMAMinLen
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			return nil, fmt.Errorf("%w: invalid NFS protocol \"%s\" in stats 1.1 statement: %v", ErrFileParse, protocol, ss)
 | 
								return nil, fmt.Errorf("%w: invalid NFS protocol \"%s\" in stats 1.1 statement: %v", ErrFileParse, protocol, ss)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if len(ss) != expectedLength {
 | 
							if (len(ss) != expectedLength && (protocol == "tcp" || protocol == "udp")) ||
 | 
				
			||||||
			return nil, fmt.Errorf("%w: invalid NFS transport stats 1.1 statement: %v", ErrFileParse, ss)
 | 
								(protocol == "rdma" && len(ss) < expectedLength) {
 | 
				
			||||||
 | 
								return nil, fmt.Errorf("%w: invalid NFS transport stats 1.1 statement: %v, protocol: %v", ErrFileParse, ss, protocol)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	default:
 | 
						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
 | 
						// 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
 | 
						// Note: slice length must be set to length of v1.1 stats to avoid a panic when
 | 
				
			||||||
	// only v1.0 stats are present.
 | 
						// only v1.0 stats are present.
 | 
				
			||||||
	// See: https://github.com/prometheus/node_exporter/issues/571.
 | 
						// 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 {
 | 
						for i, s := range ss {
 | 
				
			||||||
		n, err := strconv.ParseUint(s, 10, 64)
 | 
							n, err := strconv.ParseUint(s, 10, 64)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
@@ -622,9 +662,14 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats
 | 
				
			|||||||
	// we set them to 0 here.
 | 
						// we set them to 0 here.
 | 
				
			||||||
	if protocol == "udp" {
 | 
						if protocol == "udp" {
 | 
				
			||||||
		ns = append(ns[:2], append(make([]uint64, 3), ns[2:]...)...)
 | 
							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{
 | 
						return &NFSTransportStats{
 | 
				
			||||||
 | 
							// NFS xprt over tcp or udp
 | 
				
			||||||
		Protocol:                 protocol,
 | 
							Protocol:                 protocol,
 | 
				
			||||||
		Port:                     ns[0],
 | 
							Port:                     ns[0],
 | 
				
			||||||
		Bind:                     ns[1],
 | 
							Bind:                     ns[1],
 | 
				
			||||||
@@ -636,8 +681,32 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats
 | 
				
			|||||||
		BadTransactionIDs:        ns[7],
 | 
							BadTransactionIDs:        ns[7],
 | 
				
			||||||
		CumulativeActiveRequests: ns[8],
 | 
							CumulativeActiveRequests: ns[8],
 | 
				
			||||||
		CumulativeBacklog:        ns[9],
 | 
							CumulativeBacklog:        ns[9],
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// NFS xprt over tcp or udp
 | 
				
			||||||
 | 
							// And statVersion 1.1
 | 
				
			||||||
		MaximumRPCSlotsUsed:    ns[10],
 | 
							MaximumRPCSlotsUsed:    ns[10],
 | 
				
			||||||
		CumulativeSendingQueue: ns[11],
 | 
							CumulativeSendingQueue: ns[11],
 | 
				
			||||||
		CumulativePendingQueue: ns[12],
 | 
							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
 | 
						}, 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+)$`)
 | 
						rPos          = regexp.MustCompile(`^pos:\s+(\d+)$`)
 | 
				
			||||||
	rFlags        = regexp.MustCompile(`^flags:\s+(\d+)$`)
 | 
						rFlags        = regexp.MustCompile(`^flags:\s+(\d+)$`)
 | 
				
			||||||
	rMntID        = regexp.MustCompile(`^mnt_id:\s+(\d+)$`)
 | 
						rMntID        = regexp.MustCompile(`^mnt_id:\s+(\d+)$`)
 | 
				
			||||||
 | 
						rIno          = regexp.MustCompile(`^ino:\s+(\d+)$`)
 | 
				
			||||||
	rInotify      = regexp.MustCompile(`^inotify`)
 | 
						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]+))?`)
 | 
						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
 | 
						Flags string
 | 
				
			||||||
	// Mount point ID
 | 
						// Mount point ID
 | 
				
			||||||
	MntID string
 | 
						MntID string
 | 
				
			||||||
 | 
						// Inode number
 | 
				
			||||||
 | 
						Ino string
 | 
				
			||||||
	// List of inotify lines (structured) in the fdinfo file (kernel 3.8+ only)
 | 
						// List of inotify lines (structured) in the fdinfo file (kernel 3.8+ only)
 | 
				
			||||||
	InotifyInfos []InotifyInfo
 | 
						InotifyInfos []InotifyInfo
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -51,7 +54,7 @@ func (p Proc) FDInfo(fd string) (*ProcFDInfo, error) {
 | 
				
			|||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var text, pos, flags, mntid string
 | 
						var text, pos, flags, mntid, ino string
 | 
				
			||||||
	var inotify []InotifyInfo
 | 
						var inotify []InotifyInfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	scanner := bufio.NewScanner(bytes.NewReader(data))
 | 
						scanner := bufio.NewScanner(bytes.NewReader(data))
 | 
				
			||||||
@@ -63,6 +66,8 @@ func (p Proc) FDInfo(fd string) (*ProcFDInfo, error) {
 | 
				
			|||||||
			flags = rFlags.FindStringSubmatch(text)[1]
 | 
								flags = rFlags.FindStringSubmatch(text)[1]
 | 
				
			||||||
		} else if rMntID.MatchString(text) {
 | 
							} else if rMntID.MatchString(text) {
 | 
				
			||||||
			mntid = rMntID.FindStringSubmatch(text)[1]
 | 
								mntid = rMntID.FindStringSubmatch(text)[1]
 | 
				
			||||||
 | 
							} else if rIno.MatchString(text) {
 | 
				
			||||||
 | 
								ino = rIno.FindStringSubmatch(text)[1]
 | 
				
			||||||
		} else if rInotify.MatchString(text) {
 | 
							} else if rInotify.MatchString(text) {
 | 
				
			||||||
			newInotify, err := parseInotifyInfo(text)
 | 
								newInotify, err := parseInotifyInfo(text)
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
@@ -77,6 +82,7 @@ func (p Proc) FDInfo(fd string) (*ProcFDInfo, error) {
 | 
				
			|||||||
		Pos:          pos,
 | 
							Pos:          pos,
 | 
				
			||||||
		Flags:        flags,
 | 
							Flags:        flags,
 | 
				
			||||||
		MntID:        mntid,
 | 
							MntID:        mntid,
 | 
				
			||||||
 | 
							Ino:          ino,
 | 
				
			||||||
		InotifyInfos: inotify,
 | 
							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
 | 
					// parseDevice parses the device token of a line and converts it to a dev_t
 | 
				
			||||||
// (mkdev) like structure.
 | 
					// (mkdev) like structure.
 | 
				
			||||||
func parseDevice(s string) (uint64, error) {
 | 
					func parseDevice(s string) (uint64, error) {
 | 
				
			||||||
	toks := strings.Split(s, ":")
 | 
						i := strings.Index(s, ":")
 | 
				
			||||||
	if len(toks) < 2 {
 | 
						if i == -1 {
 | 
				
			||||||
		return 0, fmt.Errorf("%w: unexpected number of fields, expected: 2, got: %q", ErrFileParse, len(toks))
 | 
							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 {
 | 
						if err != nil {
 | 
				
			||||||
		return 0, err
 | 
							return 0, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	minor, err := strconv.ParseUint(toks[1], 16, 0)
 | 
						minor, err := strconv.ParseUint(s[i+1:], 16, 0)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return 0, err
 | 
							return 0, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -93,17 +93,17 @@ func parseAddress(s string) (uintptr, error) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// parseAddresses parses the start-end address.
 | 
					// parseAddresses parses the start-end address.
 | 
				
			||||||
func parseAddresses(s string) (uintptr, uintptr, error) {
 | 
					func parseAddresses(s string) (uintptr, uintptr, error) {
 | 
				
			||||||
	toks := strings.Split(s, "-")
 | 
						idx := strings.Index(s, "-")
 | 
				
			||||||
	if len(toks) < 2 {
 | 
						if idx == -1 {
 | 
				
			||||||
		return 0, 0, fmt.Errorf("%w: invalid address", ErrFileParse)
 | 
							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 {
 | 
						if err != nil {
 | 
				
			||||||
		return 0, 0, err
 | 
							return 0, 0, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	eaddr, err := parseAddress(toks[1])
 | 
						eaddr, err := parseAddress(s[idx+1:])
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return 0, 0, err
 | 
							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,
 | 
					// ProcStatus provides status information about the process,
 | 
				
			||||||
// read from /proc/[pid]/stat.
 | 
					// read from /proc/[pid]/status.
 | 
				
			||||||
type ProcStatus struct {
 | 
					type ProcStatus struct {
 | 
				
			||||||
	// The process ID.
 | 
						// The process ID.
 | 
				
			||||||
	PID int
 | 
						PID int
 | 
				
			||||||
@@ -32,6 +32,8 @@ type ProcStatus struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// Thread group ID.
 | 
						// Thread group ID.
 | 
				
			||||||
	TGID int
 | 
						TGID int
 | 
				
			||||||
 | 
						// List of Pid namespace.
 | 
				
			||||||
 | 
						NSpids []uint64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Peak virtual memory size.
 | 
						// Peak virtual memory size.
 | 
				
			||||||
	VmPeak uint64 // nolint:revive
 | 
						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"))
 | 
							copy(s.UIDs[:], strings.Split(vString, "\t"))
 | 
				
			||||||
	case "Gid":
 | 
						case "Gid":
 | 
				
			||||||
		copy(s.GIDs[:], strings.Split(vString, "\t"))
 | 
							copy(s.GIDs[:], strings.Split(vString, "\t"))
 | 
				
			||||||
 | 
						case "NSpid":
 | 
				
			||||||
 | 
							s.NSpids = calcNSPidsList(vString)
 | 
				
			||||||
	case "VmPeak":
 | 
						case "VmPeak":
 | 
				
			||||||
		s.VmPeak = vUintBytes
 | 
							s.VmPeak = vUintBytes
 | 
				
			||||||
	case "VmSize":
 | 
						case "VmSize":
 | 
				
			||||||
@@ -200,3 +204,18 @@ func calcCpusAllowedList(cpuString string) []uint64 {
 | 
				
			|||||||
	sort.Slice(g, func(i, j int) bool { return g[i] < g[j] })
 | 
						sort.Slice(g, func(i, j int) bool { return g[i] < g[j] })
 | 
				
			||||||
	return g
 | 
						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
 | 
					# github.com/klauspost/cpuid/v2 v2.2.5
 | 
				
			||||||
## explicit; go 1.15
 | 
					## explicit; go 1.15
 | 
				
			||||||
github.com/klauspost/cpuid/v2
 | 
					github.com/klauspost/cpuid/v2
 | 
				
			||||||
# github.com/matttproud/golang_protobuf_extensions v1.0.4
 | 
					# github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0
 | 
				
			||||||
## explicit; go 1.9
 | 
					## explicit; go 1.19
 | 
				
			||||||
github.com/matttproud/golang_protobuf_extensions/pbutil
 | 
					github.com/matttproud/golang_protobuf_extensions/v2/pbutil
 | 
				
			||||||
# github.com/mdlayher/socket v0.4.1
 | 
					# github.com/mdlayher/socket v0.4.1
 | 
				
			||||||
## explicit; go 1.20
 | 
					## explicit; go 1.20
 | 
				
			||||||
github.com/mdlayher/socket
 | 
					github.com/mdlayher/socket
 | 
				
			||||||
@@ -361,20 +361,20 @@ github.com/pkg/errors
 | 
				
			|||||||
# github.com/pmezard/go-difflib v1.0.0
 | 
					# github.com/pmezard/go-difflib v1.0.0
 | 
				
			||||||
## explicit
 | 
					## explicit
 | 
				
			||||||
github.com/pmezard/go-difflib/difflib
 | 
					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
 | 
					## explicit; go 1.19
 | 
				
			||||||
github.com/prometheus/client_golang/prometheus
 | 
					github.com/prometheus/client_golang/prometheus
 | 
				
			||||||
github.com/prometheus/client_golang/prometheus/internal
 | 
					github.com/prometheus/client_golang/prometheus/internal
 | 
				
			||||||
github.com/prometheus/client_golang/prometheus/promhttp
 | 
					github.com/prometheus/client_golang/prometheus/promhttp
 | 
				
			||||||
# github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16
 | 
					# github.com/prometheus/client_model v0.5.0
 | 
				
			||||||
## explicit; go 1.18
 | 
					## explicit; go 1.19
 | 
				
			||||||
github.com/prometheus/client_model/go
 | 
					github.com/prometheus/client_model/go
 | 
				
			||||||
# github.com/prometheus/common v0.44.0
 | 
					# github.com/prometheus/common v0.45.0
 | 
				
			||||||
## explicit; go 1.18
 | 
					## explicit; go 1.20
 | 
				
			||||||
github.com/prometheus/common/expfmt
 | 
					github.com/prometheus/common/expfmt
 | 
				
			||||||
github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
 | 
					github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
 | 
				
			||||||
github.com/prometheus/common/model
 | 
					github.com/prometheus/common/model
 | 
				
			||||||
# github.com/prometheus/procfs v0.11.1
 | 
					# github.com/prometheus/procfs v0.12.0
 | 
				
			||||||
## explicit; go 1.19
 | 
					## explicit; go 1.19
 | 
				
			||||||
github.com/prometheus/procfs
 | 
					github.com/prometheus/procfs
 | 
				
			||||||
github.com/prometheus/procfs/internal/fs
 | 
					github.com/prometheus/procfs/internal/fs
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user