mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-25 21:26:40 +00:00
[chore]: Bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0 (#2507)
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> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
parent
10660e566d
commit
d9127f5630
8
go.mod
8
go.mod
|
@ -40,7 +40,7 @@ require (
|
||||||
github.com/minio/minio-go/v7 v7.0.66
|
github.com/minio/minio-go/v7 v7.0.66
|
||||||
github.com/mitchellh/mapstructure v1.5.0
|
github.com/mitchellh/mapstructure v1.5.0
|
||||||
github.com/oklog/ulid v1.3.1
|
github.com/oklog/ulid v1.3.1
|
||||||
github.com/prometheus/client_golang v1.17.0
|
github.com/prometheus/client_golang v1.18.0
|
||||||
github.com/spf13/cobra v1.8.0
|
github.com/spf13/cobra v1.8.0
|
||||||
github.com/spf13/viper v1.16.0
|
github.com/spf13/viper v1.16.0
|
||||||
github.com/stretchr/testify v1.8.4
|
github.com/stretchr/testify v1.8.4
|
||||||
|
@ -137,7 +137,7 @@ require (
|
||||||
github.com/leodido/go-urn v1.2.4 // indirect
|
github.com/leodido/go-urn v1.2.4 // indirect
|
||||||
github.com/magiconair/properties v1.8.7 // indirect
|
github.com/magiconair/properties v1.8.7 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.19 // indirect
|
github.com/mattn/go-isatty v0.0.19 // indirect
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
|
||||||
github.com/minio/md5-simd v1.1.2 // indirect
|
github.com/minio/md5-simd v1.1.2 // indirect
|
||||||
github.com/minio/sha256-simd v1.0.1 // indirect
|
github.com/minio/sha256-simd v1.0.1 // indirect
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
|
@ -147,8 +147,8 @@ require (
|
||||||
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.5.0 // 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/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b // indirect
|
github.com/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b // indirect
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
|
||||||
github.com/rs/xid v1.5.0 // indirect
|
github.com/rs/xid v1.5.0 // indirect
|
||||||
|
|
16
go.sum
16
go.sum
|
@ -395,8 +395,8 @@ github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APP
|
||||||
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
|
github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
|
||||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||||
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/microcosm-cc/bluemonday v1.0.26 h1:xbqSvqzQMeEHCqMi64VAs4d8uy6Mequs3rQ0k/Khz58=
|
github.com/microcosm-cc/bluemonday v1.0.26 h1:xbqSvqzQMeEHCqMi64VAs4d8uy6Mequs3rQ0k/Khz58=
|
||||||
github.com/microcosm-cc/bluemonday v1.0.26/go.mod h1:JyzOCs9gkyQyjs+6h10UEVSe02CGwkhd72Xdqh78TWs=
|
github.com/microcosm-cc/bluemonday v1.0.26/go.mod h1:JyzOCs9gkyQyjs+6h10UEVSe02CGwkhd72Xdqh78TWs=
|
||||||
github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM=
|
github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM=
|
||||||
|
@ -441,15 +441,15 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
|
||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
|
github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
|
||||||
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
|
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
|
||||||
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-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.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
|
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/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
|
||||||
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.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/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b h1:aUNXCGgukb4gtY99imuIeoh8Vr0GSwAlYxPAhqZrpFc=
|
github.com/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b h1:aUNXCGgukb4gtY99imuIeoh8Vr0GSwAlYxPAhqZrpFc=
|
||||||
github.com/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b/go.mod h1:wTPjTepVu7uJBYgZ0SdWHQlIas582j6cn2jgk4DDdlg=
|
github.com/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b/go.mod h1:wTPjTepVu7uJBYgZ0SdWHQlIas582j6cn2jgk4DDdlg=
|
||||||
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
|
||||||
|
|
|
@ -19,9 +19,10 @@
|
||||||
"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 @@
|
||||||
// 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 @@
|
||||||
"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 @@
|
||||||
// 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
|
||||||
|
}
|
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 @@
|
||||||
|
|
||||||
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 @@
|
||||||
"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 @@
|
||||||
|
|
||||||
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 @@
|
||||||
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 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
// 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
|
||||||
|
}
|
||||||
|
|
14
vendor/modules.txt
vendored
14
vendor/modules.txt
vendored
|
@ -369,9 +369,9 @@ github.com/magiconair/properties
|
||||||
# github.com/mattn/go-isatty v0.0.19
|
# github.com/mattn/go-isatty v0.0.19
|
||||||
## explicit; go 1.15
|
## explicit; go 1.15
|
||||||
github.com/mattn/go-isatty
|
github.com/mattn/go-isatty
|
||||||
# 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/microcosm-cc/bluemonday v1.0.26
|
# github.com/microcosm-cc/bluemonday v1.0.26
|
||||||
## explicit; go 1.21
|
## explicit; go 1.21
|
||||||
github.com/microcosm-cc/bluemonday
|
github.com/microcosm-cc/bluemonday
|
||||||
|
@ -426,7 +426,7 @@ 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
|
||||||
|
@ -434,12 +434,12 @@ github.com/prometheus/client_golang/prometheus/promhttp
|
||||||
# github.com/prometheus/client_model v0.5.0
|
# github.com/prometheus/client_model v0.5.0
|
||||||
## explicit; go 1.19
|
## 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
|
||||||
|
|
Loading…
Reference in a new issue