Vendor updates
This commit is contained in:
24
go.sum
24
go.sum
@@ -20,14 +20,14 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
|||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||||
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/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
|
github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU=
|
||||||
github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA=
|
github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k=
|
||||||
github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos=
|
github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos=
|
||||||
github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8=
|
github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8=
|
||||||
github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k=
|
github.com/prometheus/common v0.50.0 h1:YSZE6aa9+luNa2da6/Tik0q0A5AbR+U003TItK57CPQ=
|
||||||
github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc=
|
github.com/prometheus/common v0.50.0/go.mod h1:wHFBCEVWVmHMUpg7pYcOm2QUR/ocQdYSJVQJKnHc3xQ=
|
||||||
github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
|
github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o=
|
||||||
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
|
github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g=
|
||||||
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=
|
||||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||||
@@ -42,16 +42,16 @@ github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ
|
|||||||
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||||
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07 h1:UyzmZLoiDWMRywV4DUYb9Fbt8uiOSooupjTq10vpvnU=
|
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07 h1:UyzmZLoiDWMRywV4DUYb9Fbt8uiOSooupjTq10vpvnU=
|
||||||
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
|
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
|
||||||
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
|
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
|
||||||
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||||
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
||||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
|
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
|
||||||
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
|
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
||||||
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
|
|||||||
14
vendor/github.com/prometheus/common/expfmt/decode.go
generated
vendored
14
vendor/github.com/prometheus/common/expfmt/decode.go
generated
vendored
@@ -45,7 +45,7 @@ func ResponseFormat(h http.Header) Format {
|
|||||||
|
|
||||||
mediatype, params, err := mime.ParseMediaType(ct)
|
mediatype, params, err := mime.ParseMediaType(ct)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return FmtUnknown
|
return fmtUnknown
|
||||||
}
|
}
|
||||||
|
|
||||||
const textType = "text/plain"
|
const textType = "text/plain"
|
||||||
@@ -53,21 +53,21 @@ func ResponseFormat(h http.Header) Format {
|
|||||||
switch mediatype {
|
switch mediatype {
|
||||||
case ProtoType:
|
case ProtoType:
|
||||||
if p, ok := params["proto"]; ok && p != ProtoProtocol {
|
if p, ok := params["proto"]; ok && p != ProtoProtocol {
|
||||||
return FmtUnknown
|
return fmtUnknown
|
||||||
}
|
}
|
||||||
if e, ok := params["encoding"]; ok && e != "delimited" {
|
if e, ok := params["encoding"]; ok && e != "delimited" {
|
||||||
return FmtUnknown
|
return fmtUnknown
|
||||||
}
|
}
|
||||||
return FmtProtoDelim
|
return fmtProtoDelim
|
||||||
|
|
||||||
case textType:
|
case textType:
|
||||||
if v, ok := params["version"]; ok && v != TextVersion {
|
if v, ok := params["version"]; ok && v != TextVersion {
|
||||||
return FmtUnknown
|
return fmtUnknown
|
||||||
}
|
}
|
||||||
return FmtText
|
return fmtText
|
||||||
}
|
}
|
||||||
|
|
||||||
return FmtUnknown
|
return fmtUnknown
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewDecoder returns a new decoder based on the given input format.
|
// NewDecoder returns a new decoder based on the given input format.
|
||||||
|
|||||||
34
vendor/github.com/prometheus/common/expfmt/encode.go
generated
vendored
34
vendor/github.com/prometheus/common/expfmt/encode.go
generated
vendored
@@ -76,18 +76,18 @@ func Negotiate(h http.Header) Format {
|
|||||||
if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
|
if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
|
||||||
switch ac.Params["encoding"] {
|
switch ac.Params["encoding"] {
|
||||||
case "delimited":
|
case "delimited":
|
||||||
return FmtProtoDelim + escapingScheme
|
return fmtProtoDelim + escapingScheme
|
||||||
case "text":
|
case "text":
|
||||||
return FmtProtoText + escapingScheme
|
return fmtProtoText + escapingScheme
|
||||||
case "compact-text":
|
case "compact-text":
|
||||||
return FmtProtoCompact + escapingScheme
|
return fmtProtoCompact + escapingScheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
|
if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
|
||||||
return FmtText + escapingScheme
|
return fmtText + escapingScheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return FmtText + escapingScheme
|
return fmtText + escapingScheme
|
||||||
}
|
}
|
||||||
|
|
||||||
// NegotiateIncludingOpenMetrics works like Negotiate but includes
|
// NegotiateIncludingOpenMetrics works like Negotiate but includes
|
||||||
@@ -109,26 +109,26 @@ func NegotiateIncludingOpenMetrics(h http.Header) Format {
|
|||||||
if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
|
if ac.Type+"/"+ac.SubType == ProtoType && ac.Params["proto"] == ProtoProtocol {
|
||||||
switch ac.Params["encoding"] {
|
switch ac.Params["encoding"] {
|
||||||
case "delimited":
|
case "delimited":
|
||||||
return FmtProtoDelim + escapingScheme
|
return fmtProtoDelim + escapingScheme
|
||||||
case "text":
|
case "text":
|
||||||
return FmtProtoText + escapingScheme
|
return fmtProtoText + escapingScheme
|
||||||
case "compact-text":
|
case "compact-text":
|
||||||
return FmtProtoCompact + escapingScheme
|
return fmtProtoCompact + escapingScheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
|
if ac.Type == "text" && ac.SubType == "plain" && (ver == TextVersion || ver == "") {
|
||||||
return FmtText + escapingScheme
|
return fmtText + escapingScheme
|
||||||
}
|
}
|
||||||
if ac.Type+"/"+ac.SubType == OpenMetricsType && (ver == OpenMetricsVersion_0_0_1 || ver == OpenMetricsVersion_1_0_0 || ver == "") {
|
if ac.Type+"/"+ac.SubType == OpenMetricsType && (ver == OpenMetricsVersion_0_0_1 || ver == OpenMetricsVersion_1_0_0 || ver == "") {
|
||||||
switch ver {
|
switch ver {
|
||||||
case OpenMetricsVersion_1_0_0:
|
case OpenMetricsVersion_1_0_0:
|
||||||
return FmtOpenMetrics_1_0_0 + escapingScheme
|
return fmtOpenMetrics_1_0_0 + escapingScheme
|
||||||
default:
|
default:
|
||||||
return FmtOpenMetrics_0_0_1 + escapingScheme
|
return fmtOpenMetrics_0_0_1 + escapingScheme
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return FmtText + escapingScheme
|
return fmtText + escapingScheme
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEncoder returns a new encoder based on content type negotiation. All
|
// NewEncoder returns a new encoder based on content type negotiation. All
|
||||||
@@ -139,7 +139,13 @@ func NegotiateIncludingOpenMetrics(h http.Header) Format {
|
|||||||
// interface is kept for backwards compatibility.
|
// interface is kept for backwards compatibility.
|
||||||
// In cases where the Format does not allow for UTF-8 names, the global
|
// In cases where the Format does not allow for UTF-8 names, the global
|
||||||
// NameEscapingScheme will be applied.
|
// NameEscapingScheme will be applied.
|
||||||
func NewEncoder(w io.Writer, format Format) Encoder {
|
//
|
||||||
|
// NewEncoder can be called with additional options to customize the OpenMetrics text output.
|
||||||
|
// For example:
|
||||||
|
// NewEncoder(w, FmtOpenMetrics_1_0_0, WithCreatedLines())
|
||||||
|
//
|
||||||
|
// Extra options are ignored for all other formats.
|
||||||
|
func NewEncoder(w io.Writer, format Format, options ...EncoderOption) Encoder {
|
||||||
escapingScheme := format.ToEscapingScheme()
|
escapingScheme := format.ToEscapingScheme()
|
||||||
|
|
||||||
switch format.FormatType() {
|
switch format.FormatType() {
|
||||||
@@ -178,7 +184,7 @@ func NewEncoder(w io.Writer, format Format) Encoder {
|
|||||||
case TypeOpenMetrics:
|
case TypeOpenMetrics:
|
||||||
return encoderCloser{
|
return encoderCloser{
|
||||||
encode: func(v *dto.MetricFamily) error {
|
encode: func(v *dto.MetricFamily) error {
|
||||||
_, err := MetricFamilyToOpenMetrics(w, model.EscapeMetricFamily(v, escapingScheme))
|
_, err := MetricFamilyToOpenMetrics(w, model.EscapeMetricFamily(v, escapingScheme), options...)
|
||||||
return err
|
return err
|
||||||
},
|
},
|
||||||
close: func() error {
|
close: func() error {
|
||||||
|
|||||||
41
vendor/github.com/prometheus/common/expfmt/expfmt.go
generated
vendored
41
vendor/github.com/prometheus/common/expfmt/expfmt.go
generated
vendored
@@ -34,20 +34,21 @@ const (
|
|||||||
TextVersion = "0.0.4"
|
TextVersion = "0.0.4"
|
||||||
ProtoType = `application/vnd.google.protobuf`
|
ProtoType = `application/vnd.google.protobuf`
|
||||||
ProtoProtocol = `io.prometheus.client.MetricFamily`
|
ProtoProtocol = `io.prometheus.client.MetricFamily`
|
||||||
ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";"
|
protoFmt = ProtoType + "; proto=" + ProtoProtocol + ";"
|
||||||
OpenMetricsType = `application/openmetrics-text`
|
OpenMetricsType = `application/openmetrics-text`
|
||||||
OpenMetricsVersion_0_0_1 = "0.0.1"
|
OpenMetricsVersion_0_0_1 = "0.0.1"
|
||||||
OpenMetricsVersion_1_0_0 = "1.0.0"
|
OpenMetricsVersion_1_0_0 = "1.0.0"
|
||||||
|
|
||||||
// The Content-Type values for the different wire protocols. Do not do direct
|
// The Content-Type values for the different wire protocols. Note that these
|
||||||
// comparisons to these constants, instead use the comparison functions.
|
// values are now unexported. If code was relying on comparisons to these
|
||||||
FmtUnknown Format = `<unknown>`
|
// constants, instead use FormatType().
|
||||||
FmtText Format = `text/plain; version=` + TextVersion + `; charset=utf-8`
|
fmtUnknown Format = `<unknown>`
|
||||||
FmtProtoDelim Format = ProtoFmt + ` encoding=delimited`
|
fmtText Format = `text/plain; version=` + TextVersion + `; charset=utf-8`
|
||||||
FmtProtoText Format = ProtoFmt + ` encoding=text`
|
fmtProtoDelim Format = protoFmt + ` encoding=delimited`
|
||||||
FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text`
|
fmtProtoText Format = protoFmt + ` encoding=text`
|
||||||
FmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8`
|
fmtProtoCompact Format = protoFmt + ` encoding=compact-text`
|
||||||
FmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8`
|
fmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8`
|
||||||
|
fmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8`
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -70,6 +71,26 @@ const (
|
|||||||
TypeOpenMetrics
|
TypeOpenMetrics
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// NewFormat generates a new Format from the type provided. Mostly used for
|
||||||
|
// tests, most Formats should be generated as part of content negotiation in
|
||||||
|
// encode.go.
|
||||||
|
func NewFormat(t FormatType) Format {
|
||||||
|
switch t {
|
||||||
|
case TypeProtoCompact:
|
||||||
|
return fmtProtoCompact
|
||||||
|
case TypeProtoDelim:
|
||||||
|
return fmtProtoDelim
|
||||||
|
case TypeProtoText:
|
||||||
|
return fmtProtoText
|
||||||
|
case TypeTextPlain:
|
||||||
|
return fmtText
|
||||||
|
case TypeOpenMetrics:
|
||||||
|
return fmtOpenMetrics_1_0_0
|
||||||
|
default:
|
||||||
|
return fmtUnknown
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// FormatType deduces an overall FormatType for the given format.
|
// FormatType deduces an overall FormatType for the given format.
|
||||||
func (f Format) FormatType() FormatType {
|
func (f Format) FormatType() FormatType {
|
||||||
toks := strings.Split(string(f), ";")
|
toks := strings.Split(string(f), ";")
|
||||||
|
|||||||
198
vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
generated
vendored
198
vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
generated
vendored
@@ -22,11 +22,47 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
|
|
||||||
"github.com/prometheus/common/model"
|
"github.com/prometheus/common/model"
|
||||||
|
|
||||||
dto "github.com/prometheus/client_model/go"
|
dto "github.com/prometheus/client_model/go"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type encoderOption struct {
|
||||||
|
withCreatedLines bool
|
||||||
|
withUnit bool
|
||||||
|
}
|
||||||
|
|
||||||
|
type EncoderOption func(*encoderOption)
|
||||||
|
|
||||||
|
// WithCreatedLines is an EncoderOption that configures the OpenMetrics encoder
|
||||||
|
// to include _created lines (See
|
||||||
|
// https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#counter-1).
|
||||||
|
// Created timestamps can improve the accuracy of series reset detection, but
|
||||||
|
// come with a bandwidth cost.
|
||||||
|
//
|
||||||
|
// At the time of writing, created timestamp ingestion is still experimental in
|
||||||
|
// Prometheus and need to be enabled with the feature-flag
|
||||||
|
// `--feature-flag=created-timestamp-zero-ingestion`, and breaking changes are
|
||||||
|
// still possible. Therefore, it is recommended to use this feature with caution.
|
||||||
|
func WithCreatedLines() EncoderOption {
|
||||||
|
return func(t *encoderOption) {
|
||||||
|
t.withCreatedLines = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithUnit is an EncoderOption enabling a set unit to be written to the output
|
||||||
|
// and to be added to the metric name, if it's not there already, as a suffix.
|
||||||
|
// Without opting in this way, the unit will not be added to the metric name and,
|
||||||
|
// on top of that, the unit will not be passed onto the output, even if it
|
||||||
|
// were declared in the *dto.MetricFamily struct, i.e. even if in.Unit !=nil.
|
||||||
|
func WithUnit() EncoderOption {
|
||||||
|
return func(t *encoderOption) {
|
||||||
|
t.withUnit = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// MetricFamilyToOpenMetrics converts a MetricFamily proto message into the
|
// MetricFamilyToOpenMetrics converts a MetricFamily proto message into the
|
||||||
// OpenMetrics text format and writes the resulting lines to 'out'. It returns
|
// OpenMetrics text format and writes the resulting lines to 'out'. It returns
|
||||||
// the number of bytes written and any error encountered. The output will have
|
// the number of bytes written and any error encountered. The output will have
|
||||||
@@ -59,20 +95,34 @@ import (
|
|||||||
// Prometheus to OpenMetrics or vice versa:
|
// Prometheus to OpenMetrics or vice versa:
|
||||||
//
|
//
|
||||||
// - Counters are expected to have the `_total` suffix in their metric name. In
|
// - Counters are expected to have the `_total` suffix in their metric name. In
|
||||||
// the output, the suffix will be truncated from the `# TYPE` and `# HELP`
|
// the output, the suffix will be truncated from the `# TYPE`, `# HELP` and `# UNIT`
|
||||||
// line. A counter with a missing `_total` suffix is not an error. However,
|
// lines. A counter with a missing `_total` suffix is not an error. However,
|
||||||
// its type will be set to `unknown` in that case to avoid invalid OpenMetrics
|
// its type will be set to `unknown` in that case to avoid invalid OpenMetrics
|
||||||
// output.
|
// output.
|
||||||
//
|
//
|
||||||
// - No support for the following (optional) features: `# UNIT` line, `_created`
|
// - According to the OM specs, the `# UNIT` line is optional, but if populated,
|
||||||
// line, info type, stateset type, gaugehistogram type.
|
// the unit has to be present in the metric name as its suffix:
|
||||||
|
// (see https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#unit).
|
||||||
|
// However, in order to accommodate any potential scenario where such a change in the
|
||||||
|
// metric name is not desirable, the users are here given the choice of either explicitly
|
||||||
|
// opt in, in case they wish for the unit to be included in the output AND in the metric name
|
||||||
|
// as a suffix (see the description of the WithUnit function above),
|
||||||
|
// or not to opt in, in case they don't want for any of that to happen.
|
||||||
|
//
|
||||||
|
// - No support for the following (optional) features: info type,
|
||||||
|
// stateset type, gaugehistogram type.
|
||||||
//
|
//
|
||||||
// - The size of exemplar labels is not checked (i.e. it's possible to create
|
// - The size of exemplar labels is not checked (i.e. it's possible to create
|
||||||
// exemplars that are larger than allowed by the OpenMetrics specification).
|
// exemplars that are larger than allowed by the OpenMetrics specification).
|
||||||
//
|
//
|
||||||
// - The value of Counters is not checked. (OpenMetrics doesn't allow counters
|
// - The value of Counters is not checked. (OpenMetrics doesn't allow counters
|
||||||
// with a `NaN` value.)
|
// with a `NaN` value.)
|
||||||
func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int, err error) {
|
func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...EncoderOption) (written int, err error) {
|
||||||
|
toOM := encoderOption{}
|
||||||
|
for _, option := range options {
|
||||||
|
option(&toOM)
|
||||||
|
}
|
||||||
|
|
||||||
name := in.GetName()
|
name := in.GetName()
|
||||||
if name == "" {
|
if name == "" {
|
||||||
return 0, fmt.Errorf("MetricFamily has no name: %s", in)
|
return 0, fmt.Errorf("MetricFamily has no name: %s", in)
|
||||||
@@ -97,10 +147,13 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
var (
|
var (
|
||||||
n int
|
n int
|
||||||
metricType = in.GetType()
|
metricType = in.GetType()
|
||||||
shortName = name
|
compliantName = name
|
||||||
)
|
)
|
||||||
if metricType == dto.MetricType_COUNTER && strings.HasSuffix(shortName, "_total") {
|
if metricType == dto.MetricType_COUNTER && strings.HasSuffix(compliantName, "_total") {
|
||||||
shortName = name[:len(name)-6]
|
compliantName = name[:len(name)-6]
|
||||||
|
}
|
||||||
|
if toOM.withUnit && in.Unit != nil && !strings.HasSuffix(compliantName, fmt.Sprintf("_%s", *in.Unit)) {
|
||||||
|
compliantName = compliantName + fmt.Sprintf("_%s", *in.Unit)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Comments, first HELP, then TYPE.
|
// Comments, first HELP, then TYPE.
|
||||||
@@ -110,7 +163,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
n, err = writeName(w, shortName)
|
n, err = writeName(w, compliantName)
|
||||||
written += n
|
written += n
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@@ -136,7 +189,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
n, err = writeName(w, shortName)
|
n, err = writeName(w, compliantName)
|
||||||
written += n
|
written += n
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
@@ -163,55 +216,89 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if toOM.withUnit && in.Unit != nil {
|
||||||
|
n, err = w.WriteString("# UNIT ")
|
||||||
|
written += n
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
n, err = writeName(w, compliantName)
|
||||||
|
written += n
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
err = w.WriteByte(' ')
|
||||||
|
written++
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
n, err = writeEscapedString(w, *in.Unit, true)
|
||||||
|
written += n
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = w.WriteByte('\n')
|
||||||
|
written++
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var createdTsBytesWritten int
|
||||||
|
|
||||||
// Finally the samples, one line for each.
|
// Finally the samples, one line for each.
|
||||||
for _, metric := range in.Metric {
|
for _, metric := range in.Metric {
|
||||||
switch metricType {
|
switch metricType {
|
||||||
case dto.MetricType_COUNTER:
|
case dto.MetricType_COUNTER:
|
||||||
|
if strings.HasSuffix(name, "_total") {
|
||||||
|
compliantName = compliantName + "_total"
|
||||||
|
}
|
||||||
if metric.Counter == nil {
|
if metric.Counter == nil {
|
||||||
return written, fmt.Errorf(
|
return written, fmt.Errorf(
|
||||||
"expected counter in metric %s %s", name, metric,
|
"expected counter in metric %s %s", compliantName, metric,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
// Note that we have ensured above that either the name
|
|
||||||
// ends on `_total` or that the rendered type is
|
|
||||||
// `unknown`. Therefore, no `_total` must be added here.
|
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "", metric, "", 0,
|
w, compliantName, "", metric, "", 0,
|
||||||
metric.Counter.GetValue(), 0, false,
|
metric.Counter.GetValue(), 0, false,
|
||||||
metric.Counter.Exemplar,
|
metric.Counter.Exemplar,
|
||||||
)
|
)
|
||||||
|
if toOM.withCreatedLines && metric.Counter.CreatedTimestamp != nil {
|
||||||
|
createdTsBytesWritten, err = writeOpenMetricsCreated(w, compliantName, "_total", metric, "", 0, metric.Counter.GetCreatedTimestamp())
|
||||||
|
n += createdTsBytesWritten
|
||||||
|
}
|
||||||
case dto.MetricType_GAUGE:
|
case dto.MetricType_GAUGE:
|
||||||
if metric.Gauge == nil {
|
if metric.Gauge == nil {
|
||||||
return written, fmt.Errorf(
|
return written, fmt.Errorf(
|
||||||
"expected gauge in metric %s %s", name, metric,
|
"expected gauge in metric %s %s", compliantName, metric,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "", metric, "", 0,
|
w, compliantName, "", metric, "", 0,
|
||||||
metric.Gauge.GetValue(), 0, false,
|
metric.Gauge.GetValue(), 0, false,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
case dto.MetricType_UNTYPED:
|
case dto.MetricType_UNTYPED:
|
||||||
if metric.Untyped == nil {
|
if metric.Untyped == nil {
|
||||||
return written, fmt.Errorf(
|
return written, fmt.Errorf(
|
||||||
"expected untyped in metric %s %s", name, metric,
|
"expected untyped in metric %s %s", compliantName, metric,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "", metric, "", 0,
|
w, compliantName, "", metric, "", 0,
|
||||||
metric.Untyped.GetValue(), 0, false,
|
metric.Untyped.GetValue(), 0, false,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
case dto.MetricType_SUMMARY:
|
case dto.MetricType_SUMMARY:
|
||||||
if metric.Summary == nil {
|
if metric.Summary == nil {
|
||||||
return written, fmt.Errorf(
|
return written, fmt.Errorf(
|
||||||
"expected summary in metric %s %s", name, metric,
|
"expected summary in metric %s %s", compliantName, metric,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
for _, q := range metric.Summary.Quantile {
|
for _, q := range metric.Summary.Quantile {
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "", metric,
|
w, compliantName, "", metric,
|
||||||
model.QuantileLabel, q.GetQuantile(),
|
model.QuantileLabel, q.GetQuantile(),
|
||||||
q.GetValue(), 0, false,
|
q.GetValue(), 0, false,
|
||||||
nil,
|
nil,
|
||||||
@@ -222,7 +309,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "_sum", metric, "", 0,
|
w, compliantName, "_sum", metric, "", 0,
|
||||||
metric.Summary.GetSampleSum(), 0, false,
|
metric.Summary.GetSampleSum(), 0, false,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
@@ -231,20 +318,24 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "_count", metric, "", 0,
|
w, compliantName, "_count", metric, "", 0,
|
||||||
0, metric.Summary.GetSampleCount(), true,
|
0, metric.Summary.GetSampleCount(), true,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
if toOM.withCreatedLines && metric.Summary.CreatedTimestamp != nil {
|
||||||
|
createdTsBytesWritten, err = writeOpenMetricsCreated(w, compliantName, "", metric, "", 0, metric.Summary.GetCreatedTimestamp())
|
||||||
|
n += createdTsBytesWritten
|
||||||
|
}
|
||||||
case dto.MetricType_HISTOGRAM:
|
case dto.MetricType_HISTOGRAM:
|
||||||
if metric.Histogram == nil {
|
if metric.Histogram == nil {
|
||||||
return written, fmt.Errorf(
|
return written, fmt.Errorf(
|
||||||
"expected histogram in metric %s %s", name, metric,
|
"expected histogram in metric %s %s", compliantName, metric,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
infSeen := false
|
infSeen := false
|
||||||
for _, b := range metric.Histogram.Bucket {
|
for _, b := range metric.Histogram.Bucket {
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "_bucket", metric,
|
w, compliantName, "_bucket", metric,
|
||||||
model.BucketLabel, b.GetUpperBound(),
|
model.BucketLabel, b.GetUpperBound(),
|
||||||
0, b.GetCumulativeCount(), true,
|
0, b.GetCumulativeCount(), true,
|
||||||
b.Exemplar,
|
b.Exemplar,
|
||||||
@@ -259,7 +350,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
}
|
}
|
||||||
if !infSeen {
|
if !infSeen {
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "_bucket", metric,
|
w, compliantName, "_bucket", metric,
|
||||||
model.BucketLabel, math.Inf(+1),
|
model.BucketLabel, math.Inf(+1),
|
||||||
0, metric.Histogram.GetSampleCount(), true,
|
0, metric.Histogram.GetSampleCount(), true,
|
||||||
nil,
|
nil,
|
||||||
@@ -270,7 +361,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "_sum", metric, "", 0,
|
w, compliantName, "_sum", metric, "", 0,
|
||||||
metric.Histogram.GetSampleSum(), 0, false,
|
metric.Histogram.GetSampleSum(), 0, false,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
@@ -279,13 +370,17 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily) (written int
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
n, err = writeOpenMetricsSample(
|
n, err = writeOpenMetricsSample(
|
||||||
w, name, "_count", metric, "", 0,
|
w, compliantName, "_count", metric, "", 0,
|
||||||
0, metric.Histogram.GetSampleCount(), true,
|
0, metric.Histogram.GetSampleCount(), true,
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
|
if toOM.withCreatedLines && metric.Histogram.CreatedTimestamp != nil {
|
||||||
|
createdTsBytesWritten, err = writeOpenMetricsCreated(w, compliantName, "", metric, "", 0, metric.Histogram.GetCreatedTimestamp())
|
||||||
|
n += createdTsBytesWritten
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return written, fmt.Errorf(
|
return written, fmt.Errorf(
|
||||||
"unexpected type in metric %s %s", name, metric,
|
"unexpected type in metric %s %s", compliantName, metric,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
written += n
|
written += n
|
||||||
@@ -350,7 +445,7 @@ func writeOpenMetricsSample(
|
|||||||
return written, err
|
return written, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if exemplar != nil {
|
if exemplar != nil && len(exemplar.Label) > 0 {
|
||||||
n, err = writeExemplar(w, exemplar)
|
n, err = writeExemplar(w, exemplar)
|
||||||
written += n
|
written += n
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -473,6 +568,49 @@ func writeOpenMetricsNameAndLabelPairs(
|
|||||||
return written, nil
|
return written, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// writeOpenMetricsCreated writes the created timestamp for a single time series
|
||||||
|
// following OpenMetrics text format to w, given the metric name, the metric proto
|
||||||
|
// message itself, optionally a suffix to be removed, e.g. '_total' for counters,
|
||||||
|
// an additional label name with a float64 value (use empty string as label name if
|
||||||
|
// not required) and the timestamp that represents the created timestamp.
|
||||||
|
// The function returns the number of bytes written and any error encountered.
|
||||||
|
func writeOpenMetricsCreated(w enhancedWriter,
|
||||||
|
name, suffixToTrim string, metric *dto.Metric,
|
||||||
|
additionalLabelName string, additionalLabelValue float64,
|
||||||
|
createdTimestamp *timestamppb.Timestamp,
|
||||||
|
) (int, error) {
|
||||||
|
written := 0
|
||||||
|
n, err := writeOpenMetricsNameAndLabelPairs(
|
||||||
|
w, strings.TrimSuffix(name, suffixToTrim)+"_created", metric.Label, additionalLabelName, additionalLabelValue,
|
||||||
|
)
|
||||||
|
written += n
|
||||||
|
if err != nil {
|
||||||
|
return written, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = w.WriteByte(' ')
|
||||||
|
written++
|
||||||
|
if err != nil {
|
||||||
|
return written, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO(beorn7): Format this directly from components of ts to
|
||||||
|
// avoid overflow/underflow and precision issues of the float
|
||||||
|
// conversion.
|
||||||
|
n, err = writeOpenMetricsFloat(w, float64(createdTimestamp.AsTime().UnixNano())/1e9)
|
||||||
|
written += n
|
||||||
|
if err != nil {
|
||||||
|
return written, err
|
||||||
|
}
|
||||||
|
|
||||||
|
err = w.WriteByte('\n')
|
||||||
|
written++
|
||||||
|
if err != nil {
|
||||||
|
return written, err
|
||||||
|
}
|
||||||
|
return written, nil
|
||||||
|
}
|
||||||
|
|
||||||
// writeExemplar writes the provided exemplar in OpenMetrics format to w. The
|
// writeExemplar writes the provided exemplar in OpenMetrics format to w. The
|
||||||
// function returns the number of bytes written and any error encountered.
|
// function returns the number of bytes written and any error encountered.
|
||||||
func writeExemplar(w enhancedWriter, e *dto.Exemplar) (int, error) {
|
func writeExemplar(w enhancedWriter, e *dto.Exemplar) (int, error) {
|
||||||
|
|||||||
29
vendor/github.com/prometheus/common/model/labelset.go
generated
vendored
29
vendor/github.com/prometheus/common/model/labelset.go
generated
vendored
@@ -14,10 +14,12 @@
|
|||||||
package model
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"slices"
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
// A LabelSet is a collection of LabelName and LabelValue pairs. The LabelSet
|
// A LabelSet is a collection of LabelName and LabelValue pairs. The LabelSet
|
||||||
@@ -129,14 +131,27 @@ func (l LabelSet) Merge(other LabelSet) LabelSet {
|
|||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// String will look like `{foo="bar", more="less"}`. Names are sorted alphabetically.
|
||||||
func (l LabelSet) String() string {
|
func (l LabelSet) String() string {
|
||||||
lstrs := make([]string, 0, len(l))
|
var lna [32]LabelName // On stack to avoid memory allocation for sorting names.
|
||||||
for l, v := range l {
|
labelNames := lna[:0]
|
||||||
lstrs = append(lstrs, fmt.Sprintf("%s=%q", l, v))
|
for name := range l {
|
||||||
|
labelNames = append(labelNames, name)
|
||||||
}
|
}
|
||||||
|
slices.Sort(labelNames)
|
||||||
sort.Strings(lstrs)
|
var bytea [1024]byte // On stack to avoid memory allocation while building the output.
|
||||||
return fmt.Sprintf("{%s}", strings.Join(lstrs, ", "))
|
b := bytes.NewBuffer(bytea[:0])
|
||||||
|
b.WriteByte('{')
|
||||||
|
for i, name := range labelNames {
|
||||||
|
if i > 0 {
|
||||||
|
b.WriteString(", ")
|
||||||
|
}
|
||||||
|
b.WriteString(string(name))
|
||||||
|
b.WriteByte('=')
|
||||||
|
b.Write(strconv.AppendQuote(b.AvailableBuffer(), string(l[name])))
|
||||||
|
}
|
||||||
|
b.WriteByte('}')
|
||||||
|
return b.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fingerprint returns the LabelSet's fingerprint.
|
// Fingerprint returns the LabelSet's fingerprint.
|
||||||
|
|||||||
1
vendor/github.com/prometheus/common/model/metric.go
generated
vendored
1
vendor/github.com/prometheus/common/model/metric.go
generated
vendored
@@ -204,6 +204,7 @@ func EscapeMetricFamily(v *dto.MetricFamily, scheme EscapingScheme) *dto.MetricF
|
|||||||
out := &dto.MetricFamily{
|
out := &dto.MetricFamily{
|
||||||
Help: v.Help,
|
Help: v.Help,
|
||||||
Type: v.Type,
|
Type: v.Type,
|
||||||
|
Unit: v.Unit,
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the name is nil, copy as-is, don't try to escape.
|
// If the name is nil, copy as-is, don't try to escape.
|
||||||
|
|||||||
16
vendor/github.com/prometheus/procfs/Makefile.common
generated
vendored
16
vendor/github.com/prometheus/procfs/Makefile.common
generated
vendored
@@ -61,11 +61,11 @@ 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.54.2
|
GOLANGCI_LINT_VERSION ?= v1.55.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/arm64.
|
||||||
# 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))
|
||||||
ifeq ($(GOHOSTARCH),$(filter $(GOHOSTARCH),amd64 i386))
|
ifeq ($(GOHOSTARCH),$(filter $(GOHOSTARCH),amd64 i386 arm64))
|
||||||
# If we're in CI and there is an Actions file, that means the linter
|
# If we're in CI and there is an Actions file, that means the linter
|
||||||
# is being run in Actions, so we don't need to run it here.
|
# is being run in Actions, so we don't need to run it here.
|
||||||
ifneq (,$(SKIP_GOLANGCI_LINT))
|
ifneq (,$(SKIP_GOLANGCI_LINT))
|
||||||
@@ -169,12 +169,16 @@ common-vet:
|
|||||||
common-lint: $(GOLANGCI_LINT)
|
common-lint: $(GOLANGCI_LINT)
|
||||||
ifdef GOLANGCI_LINT
|
ifdef GOLANGCI_LINT
|
||||||
@echo ">> running golangci-lint"
|
@echo ">> running golangci-lint"
|
||||||
# 'go list' needs to be executed before staticcheck to prepopulate the modules cache.
|
|
||||||
# Otherwise staticcheck might fail randomly for some reason not yet explained.
|
|
||||||
$(GO) list -e -compiled -test=true -export=false -deps=true -find=false -tags= -- ./... > /dev/null
|
|
||||||
$(GOLANGCI_LINT) run $(GOLANGCI_LINT_OPTS) $(pkgs)
|
$(GOLANGCI_LINT) run $(GOLANGCI_LINT_OPTS) $(pkgs)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
.PHONY: common-lint-fix
|
||||||
|
common-lint-fix: $(GOLANGCI_LINT)
|
||||||
|
ifdef GOLANGCI_LINT
|
||||||
|
@echo ">> running golangci-lint fix"
|
||||||
|
$(GOLANGCI_LINT) run --fix $(GOLANGCI_LINT_OPTS) $(pkgs)
|
||||||
|
endif
|
||||||
|
|
||||||
.PHONY: common-yamllint
|
.PHONY: common-yamllint
|
||||||
common-yamllint:
|
common-yamllint:
|
||||||
@echo ">> running yamllint on all YAML files in the repository"
|
@echo ">> running yamllint on all YAML files in the repository"
|
||||||
|
|||||||
2
vendor/github.com/prometheus/procfs/crypto.go
generated
vendored
2
vendor/github.com/prometheus/procfs/crypto.go
generated
vendored
@@ -84,7 +84,7 @@ func parseCrypto(r io.Reader) ([]Crypto, error) {
|
|||||||
|
|
||||||
kv := strings.Split(text, ":")
|
kv := strings.Split(text, ":")
|
||||||
if len(kv) != 2 {
|
if len(kv) != 2 {
|
||||||
return nil, fmt.Errorf("%w: Cannot parae line: %q", ErrFileParse, text)
|
return nil, fmt.Errorf("%w: Cannot parse line: %q", ErrFileParse, text)
|
||||||
}
|
}
|
||||||
|
|
||||||
k := strings.TrimSpace(kv[0])
|
k := strings.TrimSpace(kv[0])
|
||||||
|
|||||||
218
vendor/github.com/prometheus/procfs/meminfo.go
generated
vendored
218
vendor/github.com/prometheus/procfs/meminfo.go
generated
vendored
@@ -126,6 +126,7 @@ type Meminfo struct {
|
|||||||
VmallocUsed *uint64
|
VmallocUsed *uint64
|
||||||
// largest contiguous block of vmalloc area which is free
|
// largest contiguous block of vmalloc area which is free
|
||||||
VmallocChunk *uint64
|
VmallocChunk *uint64
|
||||||
|
Percpu *uint64
|
||||||
HardwareCorrupted *uint64
|
HardwareCorrupted *uint64
|
||||||
AnonHugePages *uint64
|
AnonHugePages *uint64
|
||||||
ShmemHugePages *uint64
|
ShmemHugePages *uint64
|
||||||
@@ -140,6 +141,55 @@ type Meminfo struct {
|
|||||||
DirectMap4k *uint64
|
DirectMap4k *uint64
|
||||||
DirectMap2M *uint64
|
DirectMap2M *uint64
|
||||||
DirectMap1G *uint64
|
DirectMap1G *uint64
|
||||||
|
|
||||||
|
// The struct fields below are the byte-normalized counterparts to the
|
||||||
|
// existing struct fields. Values are normalized using the optional
|
||||||
|
// unit field in the meminfo line.
|
||||||
|
MemTotalBytes *uint64
|
||||||
|
MemFreeBytes *uint64
|
||||||
|
MemAvailableBytes *uint64
|
||||||
|
BuffersBytes *uint64
|
||||||
|
CachedBytes *uint64
|
||||||
|
SwapCachedBytes *uint64
|
||||||
|
ActiveBytes *uint64
|
||||||
|
InactiveBytes *uint64
|
||||||
|
ActiveAnonBytes *uint64
|
||||||
|
InactiveAnonBytes *uint64
|
||||||
|
ActiveFileBytes *uint64
|
||||||
|
InactiveFileBytes *uint64
|
||||||
|
UnevictableBytes *uint64
|
||||||
|
MlockedBytes *uint64
|
||||||
|
SwapTotalBytes *uint64
|
||||||
|
SwapFreeBytes *uint64
|
||||||
|
DirtyBytes *uint64
|
||||||
|
WritebackBytes *uint64
|
||||||
|
AnonPagesBytes *uint64
|
||||||
|
MappedBytes *uint64
|
||||||
|
ShmemBytes *uint64
|
||||||
|
SlabBytes *uint64
|
||||||
|
SReclaimableBytes *uint64
|
||||||
|
SUnreclaimBytes *uint64
|
||||||
|
KernelStackBytes *uint64
|
||||||
|
PageTablesBytes *uint64
|
||||||
|
NFSUnstableBytes *uint64
|
||||||
|
BounceBytes *uint64
|
||||||
|
WritebackTmpBytes *uint64
|
||||||
|
CommitLimitBytes *uint64
|
||||||
|
CommittedASBytes *uint64
|
||||||
|
VmallocTotalBytes *uint64
|
||||||
|
VmallocUsedBytes *uint64
|
||||||
|
VmallocChunkBytes *uint64
|
||||||
|
PercpuBytes *uint64
|
||||||
|
HardwareCorruptedBytes *uint64
|
||||||
|
AnonHugePagesBytes *uint64
|
||||||
|
ShmemHugePagesBytes *uint64
|
||||||
|
ShmemPmdMappedBytes *uint64
|
||||||
|
CmaTotalBytes *uint64
|
||||||
|
CmaFreeBytes *uint64
|
||||||
|
HugepagesizeBytes *uint64
|
||||||
|
DirectMap4kBytes *uint64
|
||||||
|
DirectMap2MBytes *uint64
|
||||||
|
DirectMap1GBytes *uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
// Meminfo returns an information about current kernel/system memory statistics.
|
// Meminfo returns an information about current kernel/system memory statistics.
|
||||||
@@ -162,114 +212,176 @@ func parseMemInfo(r io.Reader) (*Meminfo, error) {
|
|||||||
var m Meminfo
|
var m Meminfo
|
||||||
s := bufio.NewScanner(r)
|
s := bufio.NewScanner(r)
|
||||||
for s.Scan() {
|
for s.Scan() {
|
||||||
// Each line has at least a name and value; we ignore the unit.
|
|
||||||
fields := strings.Fields(s.Text())
|
fields := strings.Fields(s.Text())
|
||||||
if len(fields) < 2 {
|
var val, valBytes uint64
|
||||||
return nil, fmt.Errorf("%w: Malformed line %q", ErrFileParse, s.Text())
|
|
||||||
}
|
|
||||||
|
|
||||||
v, err := strconv.ParseUint(fields[1], 0, 64)
|
val, err := strconv.ParseUint(fields[1], 0, 64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch len(fields) {
|
||||||
|
case 2:
|
||||||
|
// No unit present, use the parsed the value as bytes directly.
|
||||||
|
valBytes = val
|
||||||
|
case 3:
|
||||||
|
// Unit present in optional 3rd field, convert it to
|
||||||
|
// bytes. The only unit supported within the Linux
|
||||||
|
// kernel is `kB`.
|
||||||
|
if fields[2] != "kB" {
|
||||||
|
return nil, fmt.Errorf("%w: Unsupported unit in optional 3rd field %q", ErrFileParse, fields[2])
|
||||||
|
}
|
||||||
|
|
||||||
|
valBytes = 1024 * val
|
||||||
|
|
||||||
|
default:
|
||||||
|
return nil, fmt.Errorf("%w: Malformed line %q", ErrFileParse, s.Text())
|
||||||
|
}
|
||||||
|
|
||||||
switch fields[0] {
|
switch fields[0] {
|
||||||
case "MemTotal:":
|
case "MemTotal:":
|
||||||
m.MemTotal = &v
|
m.MemTotal = &val
|
||||||
|
m.MemTotalBytes = &valBytes
|
||||||
case "MemFree:":
|
case "MemFree:":
|
||||||
m.MemFree = &v
|
m.MemFree = &val
|
||||||
|
m.MemFreeBytes = &valBytes
|
||||||
case "MemAvailable:":
|
case "MemAvailable:":
|
||||||
m.MemAvailable = &v
|
m.MemAvailable = &val
|
||||||
|
m.MemAvailableBytes = &valBytes
|
||||||
case "Buffers:":
|
case "Buffers:":
|
||||||
m.Buffers = &v
|
m.Buffers = &val
|
||||||
|
m.BuffersBytes = &valBytes
|
||||||
case "Cached:":
|
case "Cached:":
|
||||||
m.Cached = &v
|
m.Cached = &val
|
||||||
|
m.CachedBytes = &valBytes
|
||||||
case "SwapCached:":
|
case "SwapCached:":
|
||||||
m.SwapCached = &v
|
m.SwapCached = &val
|
||||||
|
m.SwapCachedBytes = &valBytes
|
||||||
case "Active:":
|
case "Active:":
|
||||||
m.Active = &v
|
m.Active = &val
|
||||||
|
m.ActiveBytes = &valBytes
|
||||||
case "Inactive:":
|
case "Inactive:":
|
||||||
m.Inactive = &v
|
m.Inactive = &val
|
||||||
|
m.InactiveBytes = &valBytes
|
||||||
case "Active(anon):":
|
case "Active(anon):":
|
||||||
m.ActiveAnon = &v
|
m.ActiveAnon = &val
|
||||||
|
m.ActiveAnonBytes = &valBytes
|
||||||
case "Inactive(anon):":
|
case "Inactive(anon):":
|
||||||
m.InactiveAnon = &v
|
m.InactiveAnon = &val
|
||||||
|
m.InactiveAnonBytes = &valBytes
|
||||||
case "Active(file):":
|
case "Active(file):":
|
||||||
m.ActiveFile = &v
|
m.ActiveFile = &val
|
||||||
|
m.ActiveFileBytes = &valBytes
|
||||||
case "Inactive(file):":
|
case "Inactive(file):":
|
||||||
m.InactiveFile = &v
|
m.InactiveFile = &val
|
||||||
|
m.InactiveFileBytes = &valBytes
|
||||||
case "Unevictable:":
|
case "Unevictable:":
|
||||||
m.Unevictable = &v
|
m.Unevictable = &val
|
||||||
|
m.UnevictableBytes = &valBytes
|
||||||
case "Mlocked:":
|
case "Mlocked:":
|
||||||
m.Mlocked = &v
|
m.Mlocked = &val
|
||||||
|
m.MlockedBytes = &valBytes
|
||||||
case "SwapTotal:":
|
case "SwapTotal:":
|
||||||
m.SwapTotal = &v
|
m.SwapTotal = &val
|
||||||
|
m.SwapTotalBytes = &valBytes
|
||||||
case "SwapFree:":
|
case "SwapFree:":
|
||||||
m.SwapFree = &v
|
m.SwapFree = &val
|
||||||
|
m.SwapFreeBytes = &valBytes
|
||||||
case "Dirty:":
|
case "Dirty:":
|
||||||
m.Dirty = &v
|
m.Dirty = &val
|
||||||
|
m.DirtyBytes = &valBytes
|
||||||
case "Writeback:":
|
case "Writeback:":
|
||||||
m.Writeback = &v
|
m.Writeback = &val
|
||||||
|
m.WritebackBytes = &valBytes
|
||||||
case "AnonPages:":
|
case "AnonPages:":
|
||||||
m.AnonPages = &v
|
m.AnonPages = &val
|
||||||
|
m.AnonPagesBytes = &valBytes
|
||||||
case "Mapped:":
|
case "Mapped:":
|
||||||
m.Mapped = &v
|
m.Mapped = &val
|
||||||
|
m.MappedBytes = &valBytes
|
||||||
case "Shmem:":
|
case "Shmem:":
|
||||||
m.Shmem = &v
|
m.Shmem = &val
|
||||||
|
m.ShmemBytes = &valBytes
|
||||||
case "Slab:":
|
case "Slab:":
|
||||||
m.Slab = &v
|
m.Slab = &val
|
||||||
|
m.SlabBytes = &valBytes
|
||||||
case "SReclaimable:":
|
case "SReclaimable:":
|
||||||
m.SReclaimable = &v
|
m.SReclaimable = &val
|
||||||
|
m.SReclaimableBytes = &valBytes
|
||||||
case "SUnreclaim:":
|
case "SUnreclaim:":
|
||||||
m.SUnreclaim = &v
|
m.SUnreclaim = &val
|
||||||
|
m.SUnreclaimBytes = &valBytes
|
||||||
case "KernelStack:":
|
case "KernelStack:":
|
||||||
m.KernelStack = &v
|
m.KernelStack = &val
|
||||||
|
m.KernelStackBytes = &valBytes
|
||||||
case "PageTables:":
|
case "PageTables:":
|
||||||
m.PageTables = &v
|
m.PageTables = &val
|
||||||
|
m.PageTablesBytes = &valBytes
|
||||||
case "NFS_Unstable:":
|
case "NFS_Unstable:":
|
||||||
m.NFSUnstable = &v
|
m.NFSUnstable = &val
|
||||||
|
m.NFSUnstableBytes = &valBytes
|
||||||
case "Bounce:":
|
case "Bounce:":
|
||||||
m.Bounce = &v
|
m.Bounce = &val
|
||||||
|
m.BounceBytes = &valBytes
|
||||||
case "WritebackTmp:":
|
case "WritebackTmp:":
|
||||||
m.WritebackTmp = &v
|
m.WritebackTmp = &val
|
||||||
|
m.WritebackTmpBytes = &valBytes
|
||||||
case "CommitLimit:":
|
case "CommitLimit:":
|
||||||
m.CommitLimit = &v
|
m.CommitLimit = &val
|
||||||
|
m.CommitLimitBytes = &valBytes
|
||||||
case "Committed_AS:":
|
case "Committed_AS:":
|
||||||
m.CommittedAS = &v
|
m.CommittedAS = &val
|
||||||
|
m.CommittedASBytes = &valBytes
|
||||||
case "VmallocTotal:":
|
case "VmallocTotal:":
|
||||||
m.VmallocTotal = &v
|
m.VmallocTotal = &val
|
||||||
|
m.VmallocTotalBytes = &valBytes
|
||||||
case "VmallocUsed:":
|
case "VmallocUsed:":
|
||||||
m.VmallocUsed = &v
|
m.VmallocUsed = &val
|
||||||
|
m.VmallocUsedBytes = &valBytes
|
||||||
case "VmallocChunk:":
|
case "VmallocChunk:":
|
||||||
m.VmallocChunk = &v
|
m.VmallocChunk = &val
|
||||||
|
m.VmallocChunkBytes = &valBytes
|
||||||
|
case "Percpu:":
|
||||||
|
m.Percpu = &val
|
||||||
|
m.PercpuBytes = &valBytes
|
||||||
case "HardwareCorrupted:":
|
case "HardwareCorrupted:":
|
||||||
m.HardwareCorrupted = &v
|
m.HardwareCorrupted = &val
|
||||||
|
m.HardwareCorruptedBytes = &valBytes
|
||||||
case "AnonHugePages:":
|
case "AnonHugePages:":
|
||||||
m.AnonHugePages = &v
|
m.AnonHugePages = &val
|
||||||
|
m.AnonHugePagesBytes = &valBytes
|
||||||
case "ShmemHugePages:":
|
case "ShmemHugePages:":
|
||||||
m.ShmemHugePages = &v
|
m.ShmemHugePages = &val
|
||||||
|
m.ShmemHugePagesBytes = &valBytes
|
||||||
case "ShmemPmdMapped:":
|
case "ShmemPmdMapped:":
|
||||||
m.ShmemPmdMapped = &v
|
m.ShmemPmdMapped = &val
|
||||||
|
m.ShmemPmdMappedBytes = &valBytes
|
||||||
case "CmaTotal:":
|
case "CmaTotal:":
|
||||||
m.CmaTotal = &v
|
m.CmaTotal = &val
|
||||||
|
m.CmaTotalBytes = &valBytes
|
||||||
case "CmaFree:":
|
case "CmaFree:":
|
||||||
m.CmaFree = &v
|
m.CmaFree = &val
|
||||||
|
m.CmaFreeBytes = &valBytes
|
||||||
case "HugePages_Total:":
|
case "HugePages_Total:":
|
||||||
m.HugePagesTotal = &v
|
m.HugePagesTotal = &val
|
||||||
case "HugePages_Free:":
|
case "HugePages_Free:":
|
||||||
m.HugePagesFree = &v
|
m.HugePagesFree = &val
|
||||||
case "HugePages_Rsvd:":
|
case "HugePages_Rsvd:":
|
||||||
m.HugePagesRsvd = &v
|
m.HugePagesRsvd = &val
|
||||||
case "HugePages_Surp:":
|
case "HugePages_Surp:":
|
||||||
m.HugePagesSurp = &v
|
m.HugePagesSurp = &val
|
||||||
case "Hugepagesize:":
|
case "Hugepagesize:":
|
||||||
m.Hugepagesize = &v
|
m.Hugepagesize = &val
|
||||||
|
m.HugepagesizeBytes = &valBytes
|
||||||
case "DirectMap4k:":
|
case "DirectMap4k:":
|
||||||
m.DirectMap4k = &v
|
m.DirectMap4k = &val
|
||||||
|
m.DirectMap4kBytes = &valBytes
|
||||||
case "DirectMap2M:":
|
case "DirectMap2M:":
|
||||||
m.DirectMap2M = &v
|
m.DirectMap2M = &val
|
||||||
|
m.DirectMap2MBytes = &valBytes
|
||||||
case "DirectMap1G:":
|
case "DirectMap1G:":
|
||||||
m.DirectMap1G = &v
|
m.DirectMap1G = &val
|
||||||
|
m.DirectMap1GBytes = &valBytes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
26
vendor/github.com/prometheus/procfs/net_ip_socket.go
generated
vendored
26
vendor/github.com/prometheus/procfs/net_ip_socket.go
generated
vendored
@@ -50,10 +50,13 @@ type (
|
|||||||
// UsedSockets shows the total number of parsed lines representing the
|
// UsedSockets shows the total number of parsed lines representing the
|
||||||
// number of used sockets.
|
// number of used sockets.
|
||||||
UsedSockets uint64
|
UsedSockets uint64
|
||||||
|
// Drops shows the total number of dropped packets of all UPD sockets.
|
||||||
|
Drops *uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
// netIPSocketLine represents the fields parsed from a single line
|
// netIPSocketLine represents the fields parsed from a single line
|
||||||
// in /proc/net/{t,u}dp{,6}. Fields which are not used by IPSocket are skipped.
|
// in /proc/net/{t,u}dp{,6}. Fields which are not used by IPSocket are skipped.
|
||||||
|
// Drops is non-nil for udp{,6}, but nil for tcp{,6}.
|
||||||
// For the proc file format details, see https://linux.die.net/man/5/proc.
|
// For the proc file format details, see https://linux.die.net/man/5/proc.
|
||||||
netIPSocketLine struct {
|
netIPSocketLine struct {
|
||||||
Sl uint64
|
Sl uint64
|
||||||
@@ -66,6 +69,7 @@ type (
|
|||||||
RxQueue uint64
|
RxQueue uint64
|
||||||
UID uint64
|
UID uint64
|
||||||
Inode uint64
|
Inode uint64
|
||||||
|
Drops *uint64
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -77,13 +81,14 @@ func newNetIPSocket(file string) (NetIPSocket, error) {
|
|||||||
defer f.Close()
|
defer f.Close()
|
||||||
|
|
||||||
var netIPSocket NetIPSocket
|
var netIPSocket NetIPSocket
|
||||||
|
isUDP := strings.Contains(file, "udp")
|
||||||
|
|
||||||
lr := io.LimitReader(f, readLimit)
|
lr := io.LimitReader(f, readLimit)
|
||||||
s := bufio.NewScanner(lr)
|
s := bufio.NewScanner(lr)
|
||||||
s.Scan() // skip first line with headers
|
s.Scan() // skip first line with headers
|
||||||
for s.Scan() {
|
for s.Scan() {
|
||||||
fields := strings.Fields(s.Text())
|
fields := strings.Fields(s.Text())
|
||||||
line, err := parseNetIPSocketLine(fields)
|
line, err := parseNetIPSocketLine(fields, isUDP)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -104,19 +109,25 @@ func newNetIPSocketSummary(file string) (*NetIPSocketSummary, error) {
|
|||||||
defer f.Close()
|
defer f.Close()
|
||||||
|
|
||||||
var netIPSocketSummary NetIPSocketSummary
|
var netIPSocketSummary NetIPSocketSummary
|
||||||
|
var udpPacketDrops uint64
|
||||||
|
isUDP := strings.Contains(file, "udp")
|
||||||
|
|
||||||
lr := io.LimitReader(f, readLimit)
|
lr := io.LimitReader(f, readLimit)
|
||||||
s := bufio.NewScanner(lr)
|
s := bufio.NewScanner(lr)
|
||||||
s.Scan() // skip first line with headers
|
s.Scan() // skip first line with headers
|
||||||
for s.Scan() {
|
for s.Scan() {
|
||||||
fields := strings.Fields(s.Text())
|
fields := strings.Fields(s.Text())
|
||||||
line, err := parseNetIPSocketLine(fields)
|
line, err := parseNetIPSocketLine(fields, isUDP)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
netIPSocketSummary.TxQueueLength += line.TxQueue
|
netIPSocketSummary.TxQueueLength += line.TxQueue
|
||||||
netIPSocketSummary.RxQueueLength += line.RxQueue
|
netIPSocketSummary.RxQueueLength += line.RxQueue
|
||||||
netIPSocketSummary.UsedSockets++
|
netIPSocketSummary.UsedSockets++
|
||||||
|
if isUDP {
|
||||||
|
udpPacketDrops += *line.Drops
|
||||||
|
netIPSocketSummary.Drops = &udpPacketDrops
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if err := s.Err(); err != nil {
|
if err := s.Err(); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -149,7 +160,7 @@ func parseIP(hexIP string) (net.IP, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// parseNetIPSocketLine parses a single line, represented by a list of fields.
|
// parseNetIPSocketLine parses a single line, represented by a list of fields.
|
||||||
func parseNetIPSocketLine(fields []string) (*netIPSocketLine, error) {
|
func parseNetIPSocketLine(fields []string, isUDP bool) (*netIPSocketLine, error) {
|
||||||
line := &netIPSocketLine{}
|
line := &netIPSocketLine{}
|
||||||
if len(fields) < 10 {
|
if len(fields) < 10 {
|
||||||
return nil, fmt.Errorf(
|
return nil, fmt.Errorf(
|
||||||
@@ -224,5 +235,14 @@ func parseNetIPSocketLine(fields []string) (*netIPSocketLine, error) {
|
|||||||
return nil, fmt.Errorf("%s: Cannot parse inode value in %q: %w", ErrFileParse, line.Inode, err)
|
return nil, fmt.Errorf("%s: Cannot parse inode value in %q: %w", ErrFileParse, line.Inode, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// drops
|
||||||
|
if isUDP {
|
||||||
|
drops, err := strconv.ParseUint(fields[12], 0, 64)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("%s: Cannot parse drops value in %q: %w", ErrFileParse, drops, err)
|
||||||
|
}
|
||||||
|
line.Drops = &drops
|
||||||
|
}
|
||||||
|
|
||||||
return line, nil
|
return line, nil
|
||||||
}
|
}
|
||||||
|
|||||||
119
vendor/github.com/prometheus/procfs/net_tls_stat.go
generated
vendored
Normal file
119
vendor/github.com/prometheus/procfs/net_tls_stat.go
generated
vendored
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
// Copyright 2023 Prometheus Team
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
package procfs
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TLSStat struct represents data in /proc/net/tls_stat.
|
||||||
|
// See https://docs.kernel.org/networking/tls.html#statistics
|
||||||
|
type TLSStat struct {
|
||||||
|
// number of TX sessions currently installed where host handles cryptography
|
||||||
|
TLSCurrTxSw int
|
||||||
|
// number of RX sessions currently installed where host handles cryptography
|
||||||
|
TLSCurrRxSw int
|
||||||
|
// number of TX sessions currently installed where NIC handles cryptography
|
||||||
|
TLSCurrTxDevice int
|
||||||
|
// number of RX sessions currently installed where NIC handles cryptography
|
||||||
|
TLSCurrRxDevice int
|
||||||
|
//number of TX sessions opened with host cryptography
|
||||||
|
TLSTxSw int
|
||||||
|
//number of RX sessions opened with host cryptography
|
||||||
|
TLSRxSw int
|
||||||
|
// number of TX sessions opened with NIC cryptography
|
||||||
|
TLSTxDevice int
|
||||||
|
// number of RX sessions opened with NIC cryptography
|
||||||
|
TLSRxDevice int
|
||||||
|
// record decryption failed (e.g. due to incorrect authentication tag)
|
||||||
|
TLSDecryptError int
|
||||||
|
// number of RX resyncs sent to NICs handling cryptography
|
||||||
|
TLSRxDeviceResync int
|
||||||
|
// number of RX records which had to be re-decrypted due to TLS_RX_EXPECT_NO_PAD mis-prediction. Note that this counter will also increment for non-data records.
|
||||||
|
TLSDecryptRetry int
|
||||||
|
// number of data RX records which had to be re-decrypted due to TLS_RX_EXPECT_NO_PAD mis-prediction.
|
||||||
|
TLSRxNoPadViolation int
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewTLSStat reads the tls_stat statistics.
|
||||||
|
func NewTLSStat() (TLSStat, error) {
|
||||||
|
fs, err := NewFS(DefaultMountPoint)
|
||||||
|
if err != nil {
|
||||||
|
return TLSStat{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return fs.NewTLSStat()
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewTLSStat reads the tls_stat statistics.
|
||||||
|
func (fs FS) NewTLSStat() (TLSStat, error) {
|
||||||
|
file, err := os.Open(fs.proc.Path("net/tls_stat"))
|
||||||
|
if err != nil {
|
||||||
|
return TLSStat{}, err
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
var (
|
||||||
|
tlsstat = TLSStat{}
|
||||||
|
s = bufio.NewScanner(file)
|
||||||
|
)
|
||||||
|
|
||||||
|
for s.Scan() {
|
||||||
|
fields := strings.Fields(s.Text())
|
||||||
|
|
||||||
|
if len(fields) != 2 {
|
||||||
|
return TLSStat{}, fmt.Errorf("%w: %q line %q", ErrFileParse, file.Name(), s.Text())
|
||||||
|
}
|
||||||
|
|
||||||
|
name := fields[0]
|
||||||
|
value, err := strconv.Atoi(fields[1])
|
||||||
|
if err != nil {
|
||||||
|
return TLSStat{}, err
|
||||||
|
}
|
||||||
|
|
||||||
|
switch name {
|
||||||
|
case "TlsCurrTxSw":
|
||||||
|
tlsstat.TLSCurrTxSw = value
|
||||||
|
case "TlsCurrRxSw":
|
||||||
|
tlsstat.TLSCurrRxSw = value
|
||||||
|
case "TlsCurrTxDevice":
|
||||||
|
tlsstat.TLSCurrTxDevice = value
|
||||||
|
case "TlsCurrRxDevice":
|
||||||
|
tlsstat.TLSCurrRxDevice = value
|
||||||
|
case "TlsTxSw":
|
||||||
|
tlsstat.TLSTxSw = value
|
||||||
|
case "TlsRxSw":
|
||||||
|
tlsstat.TLSRxSw = value
|
||||||
|
case "TlsTxDevice":
|
||||||
|
tlsstat.TLSTxDevice = value
|
||||||
|
case "TlsRxDevice":
|
||||||
|
tlsstat.TLSRxDevice = value
|
||||||
|
case "TlsDecryptError":
|
||||||
|
tlsstat.TLSDecryptError = value
|
||||||
|
case "TlsRxDeviceResync":
|
||||||
|
tlsstat.TLSRxDeviceResync = value
|
||||||
|
case "TlsDecryptRetry":
|
||||||
|
tlsstat.TLSDecryptRetry = value
|
||||||
|
case "TlsRxNoPadViolation":
|
||||||
|
tlsstat.TLSRxNoPadViolation = value
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return tlsstat, s.Err()
|
||||||
|
}
|
||||||
7
vendor/github.com/prometheus/procfs/proc_stat.go
generated
vendored
7
vendor/github.com/prometheus/procfs/proc_stat.go
generated
vendored
@@ -110,6 +110,11 @@ type ProcStat struct {
|
|||||||
Policy uint
|
Policy uint
|
||||||
// Aggregated block I/O delays, measured in clock ticks (centiseconds).
|
// Aggregated block I/O delays, measured in clock ticks (centiseconds).
|
||||||
DelayAcctBlkIOTicks uint64
|
DelayAcctBlkIOTicks uint64
|
||||||
|
// Guest time of the process (time spent running a virtual CPU for a guest
|
||||||
|
// operating system), measured in clock ticks.
|
||||||
|
GuestTime int
|
||||||
|
// Guest time of the process's children, measured in clock ticks.
|
||||||
|
CGuestTime int
|
||||||
|
|
||||||
proc FS
|
proc FS
|
||||||
}
|
}
|
||||||
@@ -189,6 +194,8 @@ func (p Proc) Stat() (ProcStat, error) {
|
|||||||
&s.RTPriority,
|
&s.RTPriority,
|
||||||
&s.Policy,
|
&s.Policy,
|
||||||
&s.DelayAcctBlkIOTicks,
|
&s.DelayAcctBlkIOTicks,
|
||||||
|
&s.GuestTime,
|
||||||
|
&s.CGuestTime,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ProcStat{}, err
|
return ProcStat{}, err
|
||||||
|
|||||||
2
vendor/golang.org/x/sys/unix/aliases.go
generated
vendored
2
vendor/golang.org/x/sys/unix/aliases.go
generated
vendored
@@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9
|
//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos
|
||||||
|
|
||||||
package unix
|
package unix
|
||||||
|
|
||||||
|
|||||||
2
vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
generated
vendored
2
vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
generated
vendored
@@ -2,7 +2,7 @@
|
|||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
//go:build darwin && go1.12
|
//go:build darwin
|
||||||
|
|
||||||
package unix
|
package unix
|
||||||
|
|
||||||
|
|||||||
12
vendor/golang.org/x/sys/unix/syscall_freebsd.go
generated
vendored
12
vendor/golang.org/x/sys/unix/syscall_freebsd.go
generated
vendored
@@ -13,6 +13,7 @@
|
|||||||
package unix
|
package unix
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"sync"
|
"sync"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
)
|
)
|
||||||
@@ -169,25 +170,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
|
|||||||
func Uname(uname *Utsname) error {
|
func Uname(uname *Utsname) error {
|
||||||
mib := []_C_int{CTL_KERN, KERN_OSTYPE}
|
mib := []_C_int{CTL_KERN, KERN_OSTYPE}
|
||||||
n := unsafe.Sizeof(uname.Sysname)
|
n := unsafe.Sizeof(uname.Sysname)
|
||||||
if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
|
// Suppress ENOMEM errors to be compatible with the C library __xuname() implementation.
|
||||||
|
if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
|
mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
|
||||||
n = unsafe.Sizeof(uname.Nodename)
|
n = unsafe.Sizeof(uname.Nodename)
|
||||||
if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
|
if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
|
mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
|
||||||
n = unsafe.Sizeof(uname.Release)
|
n = unsafe.Sizeof(uname.Release)
|
||||||
if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
|
if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
mib = []_C_int{CTL_KERN, KERN_VERSION}
|
mib = []_C_int{CTL_KERN, KERN_VERSION}
|
||||||
n = unsafe.Sizeof(uname.Version)
|
n = unsafe.Sizeof(uname.Version)
|
||||||
if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
|
if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,7 +207,7 @@ func Uname(uname *Utsname) error {
|
|||||||
|
|
||||||
mib = []_C_int{CTL_HW, HW_MACHINE}
|
mib = []_C_int{CTL_HW, HW_MACHINE}
|
||||||
n = unsafe.Sizeof(uname.Machine)
|
n = unsafe.Sizeof(uname.Machine)
|
||||||
if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
|
if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
99
vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
99
vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
@@ -1849,6 +1849,105 @@ func Dup2(oldfd, newfd int) error {
|
|||||||
//sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error)
|
//sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error)
|
||||||
//sys Fsopen(fsName string, flags int) (fd int, err error)
|
//sys Fsopen(fsName string, flags int) (fd int, err error)
|
||||||
//sys Fspick(dirfd int, pathName string, flags int) (fd int, err error)
|
//sys Fspick(dirfd int, pathName string, flags int) (fd int, err error)
|
||||||
|
|
||||||
|
//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error)
|
||||||
|
|
||||||
|
func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) {
|
||||||
|
var keyp *byte
|
||||||
|
if keyp, err = BytePtrFromString(key); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return fsconfig(fd, cmd, keyp, value, aux)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FsconfigSetFlag is equivalent to fsconfig(2) called
|
||||||
|
// with cmd == FSCONFIG_SET_FLAG.
|
||||||
|
//
|
||||||
|
// fd is the filesystem context to act upon.
|
||||||
|
// key the parameter key to set.
|
||||||
|
func FsconfigSetFlag(fd int, key string) (err error) {
|
||||||
|
return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FsconfigSetString is equivalent to fsconfig(2) called
|
||||||
|
// with cmd == FSCONFIG_SET_STRING.
|
||||||
|
//
|
||||||
|
// fd is the filesystem context to act upon.
|
||||||
|
// key the parameter key to set.
|
||||||
|
// value is the parameter value to set.
|
||||||
|
func FsconfigSetString(fd int, key string, value string) (err error) {
|
||||||
|
var valuep *byte
|
||||||
|
if valuep, err = BytePtrFromString(value); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FsconfigSetBinary is equivalent to fsconfig(2) called
|
||||||
|
// with cmd == FSCONFIG_SET_BINARY.
|
||||||
|
//
|
||||||
|
// fd is the filesystem context to act upon.
|
||||||
|
// key the parameter key to set.
|
||||||
|
// value is the parameter value to set.
|
||||||
|
func FsconfigSetBinary(fd int, key string, value []byte) (err error) {
|
||||||
|
if len(value) == 0 {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value))
|
||||||
|
}
|
||||||
|
|
||||||
|
// FsconfigSetPath is equivalent to fsconfig(2) called
|
||||||
|
// with cmd == FSCONFIG_SET_PATH.
|
||||||
|
//
|
||||||
|
// fd is the filesystem context to act upon.
|
||||||
|
// key the parameter key to set.
|
||||||
|
// path is a non-empty path for specified key.
|
||||||
|
// atfd is a file descriptor at which to start lookup from or AT_FDCWD.
|
||||||
|
func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) {
|
||||||
|
var valuep *byte
|
||||||
|
if valuep, err = BytePtrFromString(path); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FsconfigSetPathEmpty is equivalent to fsconfig(2) called
|
||||||
|
// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as
|
||||||
|
// FconfigSetPath but with AT_PATH_EMPTY implied.
|
||||||
|
func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) {
|
||||||
|
var valuep *byte
|
||||||
|
if valuep, err = BytePtrFromString(path); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FsconfigSetFd is equivalent to fsconfig(2) called
|
||||||
|
// with cmd == FSCONFIG_SET_FD.
|
||||||
|
//
|
||||||
|
// fd is the filesystem context to act upon.
|
||||||
|
// key the parameter key to set.
|
||||||
|
// value is a file descriptor to be assigned to specified key.
|
||||||
|
func FsconfigSetFd(fd int, key string, value int) (err error) {
|
||||||
|
return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FsconfigCreate is equivalent to fsconfig(2) called
|
||||||
|
// with cmd == FSCONFIG_CMD_CREATE.
|
||||||
|
//
|
||||||
|
// fd is the filesystem context to act upon.
|
||||||
|
func FsconfigCreate(fd int) (err error) {
|
||||||
|
return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FsconfigReconfigure is equivalent to fsconfig(2) called
|
||||||
|
// with cmd == FSCONFIG_CMD_RECONFIGURE.
|
||||||
|
//
|
||||||
|
// fd is the filesystem context to act upon.
|
||||||
|
func FsconfigReconfigure(fd int) (err error) {
|
||||||
|
return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0)
|
||||||
|
}
|
||||||
|
|
||||||
//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64
|
//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64
|
||||||
//sysnb Getpgid(pid int) (pgid int, err error)
|
//sysnb Getpgid(pid int) (pgid int, err error)
|
||||||
|
|
||||||
|
|||||||
10
vendor/golang.org/x/sys/unix/zsyscall_linux.go
generated
vendored
10
vendor/golang.org/x/sys/unix/zsyscall_linux.go
generated
vendored
@@ -906,6 +906,16 @@ func Fspick(dirfd int, pathName string, flags int) (fd int, err error) {
|
|||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Getdents(fd int, buf []byte) (n int, err error) {
|
func Getdents(fd int, buf []byte) (n int, err error) {
|
||||||
var _p0 unsafe.Pointer
|
var _p0 unsafe.Pointer
|
||||||
if len(buf) > 0 {
|
if len(buf) > 0 {
|
||||||
|
|||||||
60
vendor/golang.org/x/sys/unix/ztypes_linux.go
generated
vendored
60
vendor/golang.org/x/sys/unix/ztypes_linux.go
generated
vendored
@@ -836,6 +836,15 @@ const (
|
|||||||
FSPICK_EMPTY_PATH = 0x8
|
FSPICK_EMPTY_PATH = 0x8
|
||||||
|
|
||||||
FSMOUNT_CLOEXEC = 0x1
|
FSMOUNT_CLOEXEC = 0x1
|
||||||
|
|
||||||
|
FSCONFIG_SET_FLAG = 0x0
|
||||||
|
FSCONFIG_SET_STRING = 0x1
|
||||||
|
FSCONFIG_SET_BINARY = 0x2
|
||||||
|
FSCONFIG_SET_PATH = 0x3
|
||||||
|
FSCONFIG_SET_PATH_EMPTY = 0x4
|
||||||
|
FSCONFIG_SET_FD = 0x5
|
||||||
|
FSCONFIG_CMD_CREATE = 0x6
|
||||||
|
FSCONFIG_CMD_RECONFIGURE = 0x7
|
||||||
)
|
)
|
||||||
|
|
||||||
type OpenHow struct {
|
type OpenHow struct {
|
||||||
@@ -1550,6 +1559,7 @@ const (
|
|||||||
IFLA_DEVLINK_PORT = 0x3e
|
IFLA_DEVLINK_PORT = 0x3e
|
||||||
IFLA_GSO_IPV4_MAX_SIZE = 0x3f
|
IFLA_GSO_IPV4_MAX_SIZE = 0x3f
|
||||||
IFLA_GRO_IPV4_MAX_SIZE = 0x40
|
IFLA_GRO_IPV4_MAX_SIZE = 0x40
|
||||||
|
IFLA_DPLL_PIN = 0x41
|
||||||
IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0
|
IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0
|
||||||
IFLA_PROTO_DOWN_REASON_MASK = 0x1
|
IFLA_PROTO_DOWN_REASON_MASK = 0x1
|
||||||
IFLA_PROTO_DOWN_REASON_VALUE = 0x2
|
IFLA_PROTO_DOWN_REASON_VALUE = 0x2
|
||||||
@@ -1565,6 +1575,7 @@ const (
|
|||||||
IFLA_INET6_ICMP6STATS = 0x6
|
IFLA_INET6_ICMP6STATS = 0x6
|
||||||
IFLA_INET6_TOKEN = 0x7
|
IFLA_INET6_TOKEN = 0x7
|
||||||
IFLA_INET6_ADDR_GEN_MODE = 0x8
|
IFLA_INET6_ADDR_GEN_MODE = 0x8
|
||||||
|
IFLA_INET6_RA_MTU = 0x9
|
||||||
IFLA_BR_UNSPEC = 0x0
|
IFLA_BR_UNSPEC = 0x0
|
||||||
IFLA_BR_FORWARD_DELAY = 0x1
|
IFLA_BR_FORWARD_DELAY = 0x1
|
||||||
IFLA_BR_HELLO_TIME = 0x2
|
IFLA_BR_HELLO_TIME = 0x2
|
||||||
@@ -1612,6 +1623,9 @@ const (
|
|||||||
IFLA_BR_MCAST_MLD_VERSION = 0x2c
|
IFLA_BR_MCAST_MLD_VERSION = 0x2c
|
||||||
IFLA_BR_VLAN_STATS_PER_PORT = 0x2d
|
IFLA_BR_VLAN_STATS_PER_PORT = 0x2d
|
||||||
IFLA_BR_MULTI_BOOLOPT = 0x2e
|
IFLA_BR_MULTI_BOOLOPT = 0x2e
|
||||||
|
IFLA_BR_MCAST_QUERIER_STATE = 0x2f
|
||||||
|
IFLA_BR_FDB_N_LEARNED = 0x30
|
||||||
|
IFLA_BR_FDB_MAX_LEARNED = 0x31
|
||||||
IFLA_BRPORT_UNSPEC = 0x0
|
IFLA_BRPORT_UNSPEC = 0x0
|
||||||
IFLA_BRPORT_STATE = 0x1
|
IFLA_BRPORT_STATE = 0x1
|
||||||
IFLA_BRPORT_PRIORITY = 0x2
|
IFLA_BRPORT_PRIORITY = 0x2
|
||||||
@@ -1649,6 +1663,14 @@ const (
|
|||||||
IFLA_BRPORT_BACKUP_PORT = 0x22
|
IFLA_BRPORT_BACKUP_PORT = 0x22
|
||||||
IFLA_BRPORT_MRP_RING_OPEN = 0x23
|
IFLA_BRPORT_MRP_RING_OPEN = 0x23
|
||||||
IFLA_BRPORT_MRP_IN_OPEN = 0x24
|
IFLA_BRPORT_MRP_IN_OPEN = 0x24
|
||||||
|
IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25
|
||||||
|
IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26
|
||||||
|
IFLA_BRPORT_LOCKED = 0x27
|
||||||
|
IFLA_BRPORT_MAB = 0x28
|
||||||
|
IFLA_BRPORT_MCAST_N_GROUPS = 0x29
|
||||||
|
IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a
|
||||||
|
IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b
|
||||||
|
IFLA_BRPORT_BACKUP_NHID = 0x2c
|
||||||
IFLA_INFO_UNSPEC = 0x0
|
IFLA_INFO_UNSPEC = 0x0
|
||||||
IFLA_INFO_KIND = 0x1
|
IFLA_INFO_KIND = 0x1
|
||||||
IFLA_INFO_DATA = 0x2
|
IFLA_INFO_DATA = 0x2
|
||||||
@@ -1670,6 +1692,9 @@ const (
|
|||||||
IFLA_MACVLAN_MACADDR = 0x4
|
IFLA_MACVLAN_MACADDR = 0x4
|
||||||
IFLA_MACVLAN_MACADDR_DATA = 0x5
|
IFLA_MACVLAN_MACADDR_DATA = 0x5
|
||||||
IFLA_MACVLAN_MACADDR_COUNT = 0x6
|
IFLA_MACVLAN_MACADDR_COUNT = 0x6
|
||||||
|
IFLA_MACVLAN_BC_QUEUE_LEN = 0x7
|
||||||
|
IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8
|
||||||
|
IFLA_MACVLAN_BC_CUTOFF = 0x9
|
||||||
IFLA_VRF_UNSPEC = 0x0
|
IFLA_VRF_UNSPEC = 0x0
|
||||||
IFLA_VRF_TABLE = 0x1
|
IFLA_VRF_TABLE = 0x1
|
||||||
IFLA_VRF_PORT_UNSPEC = 0x0
|
IFLA_VRF_PORT_UNSPEC = 0x0
|
||||||
@@ -1693,9 +1718,22 @@ const (
|
|||||||
IFLA_XFRM_UNSPEC = 0x0
|
IFLA_XFRM_UNSPEC = 0x0
|
||||||
IFLA_XFRM_LINK = 0x1
|
IFLA_XFRM_LINK = 0x1
|
||||||
IFLA_XFRM_IF_ID = 0x2
|
IFLA_XFRM_IF_ID = 0x2
|
||||||
|
IFLA_XFRM_COLLECT_METADATA = 0x3
|
||||||
IFLA_IPVLAN_UNSPEC = 0x0
|
IFLA_IPVLAN_UNSPEC = 0x0
|
||||||
IFLA_IPVLAN_MODE = 0x1
|
IFLA_IPVLAN_MODE = 0x1
|
||||||
IFLA_IPVLAN_FLAGS = 0x2
|
IFLA_IPVLAN_FLAGS = 0x2
|
||||||
|
NETKIT_NEXT = -0x1
|
||||||
|
NETKIT_PASS = 0x0
|
||||||
|
NETKIT_DROP = 0x2
|
||||||
|
NETKIT_REDIRECT = 0x7
|
||||||
|
NETKIT_L2 = 0x0
|
||||||
|
NETKIT_L3 = 0x1
|
||||||
|
IFLA_NETKIT_UNSPEC = 0x0
|
||||||
|
IFLA_NETKIT_PEER_INFO = 0x1
|
||||||
|
IFLA_NETKIT_PRIMARY = 0x2
|
||||||
|
IFLA_NETKIT_POLICY = 0x3
|
||||||
|
IFLA_NETKIT_PEER_POLICY = 0x4
|
||||||
|
IFLA_NETKIT_MODE = 0x5
|
||||||
IFLA_VXLAN_UNSPEC = 0x0
|
IFLA_VXLAN_UNSPEC = 0x0
|
||||||
IFLA_VXLAN_ID = 0x1
|
IFLA_VXLAN_ID = 0x1
|
||||||
IFLA_VXLAN_GROUP = 0x2
|
IFLA_VXLAN_GROUP = 0x2
|
||||||
@@ -1726,6 +1764,8 @@ const (
|
|||||||
IFLA_VXLAN_GPE = 0x1b
|
IFLA_VXLAN_GPE = 0x1b
|
||||||
IFLA_VXLAN_TTL_INHERIT = 0x1c
|
IFLA_VXLAN_TTL_INHERIT = 0x1c
|
||||||
IFLA_VXLAN_DF = 0x1d
|
IFLA_VXLAN_DF = 0x1d
|
||||||
|
IFLA_VXLAN_VNIFILTER = 0x1e
|
||||||
|
IFLA_VXLAN_LOCALBYPASS = 0x1f
|
||||||
IFLA_GENEVE_UNSPEC = 0x0
|
IFLA_GENEVE_UNSPEC = 0x0
|
||||||
IFLA_GENEVE_ID = 0x1
|
IFLA_GENEVE_ID = 0x1
|
||||||
IFLA_GENEVE_REMOTE = 0x2
|
IFLA_GENEVE_REMOTE = 0x2
|
||||||
@@ -1740,6 +1780,7 @@ const (
|
|||||||
IFLA_GENEVE_LABEL = 0xb
|
IFLA_GENEVE_LABEL = 0xb
|
||||||
IFLA_GENEVE_TTL_INHERIT = 0xc
|
IFLA_GENEVE_TTL_INHERIT = 0xc
|
||||||
IFLA_GENEVE_DF = 0xd
|
IFLA_GENEVE_DF = 0xd
|
||||||
|
IFLA_GENEVE_INNER_PROTO_INHERIT = 0xe
|
||||||
IFLA_BAREUDP_UNSPEC = 0x0
|
IFLA_BAREUDP_UNSPEC = 0x0
|
||||||
IFLA_BAREUDP_PORT = 0x1
|
IFLA_BAREUDP_PORT = 0x1
|
||||||
IFLA_BAREUDP_ETHERTYPE = 0x2
|
IFLA_BAREUDP_ETHERTYPE = 0x2
|
||||||
@@ -1752,6 +1793,8 @@ const (
|
|||||||
IFLA_GTP_FD1 = 0x2
|
IFLA_GTP_FD1 = 0x2
|
||||||
IFLA_GTP_PDP_HASHSIZE = 0x3
|
IFLA_GTP_PDP_HASHSIZE = 0x3
|
||||||
IFLA_GTP_ROLE = 0x4
|
IFLA_GTP_ROLE = 0x4
|
||||||
|
IFLA_GTP_CREATE_SOCKETS = 0x5
|
||||||
|
IFLA_GTP_RESTART_COUNT = 0x6
|
||||||
IFLA_BOND_UNSPEC = 0x0
|
IFLA_BOND_UNSPEC = 0x0
|
||||||
IFLA_BOND_MODE = 0x1
|
IFLA_BOND_MODE = 0x1
|
||||||
IFLA_BOND_ACTIVE_SLAVE = 0x2
|
IFLA_BOND_ACTIVE_SLAVE = 0x2
|
||||||
@@ -1781,6 +1824,9 @@ const (
|
|||||||
IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a
|
IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a
|
||||||
IFLA_BOND_TLB_DYNAMIC_LB = 0x1b
|
IFLA_BOND_TLB_DYNAMIC_LB = 0x1b
|
||||||
IFLA_BOND_PEER_NOTIF_DELAY = 0x1c
|
IFLA_BOND_PEER_NOTIF_DELAY = 0x1c
|
||||||
|
IFLA_BOND_AD_LACP_ACTIVE = 0x1d
|
||||||
|
IFLA_BOND_MISSED_MAX = 0x1e
|
||||||
|
IFLA_BOND_NS_IP6_TARGET = 0x1f
|
||||||
IFLA_BOND_AD_INFO_UNSPEC = 0x0
|
IFLA_BOND_AD_INFO_UNSPEC = 0x0
|
||||||
IFLA_BOND_AD_INFO_AGGREGATOR = 0x1
|
IFLA_BOND_AD_INFO_AGGREGATOR = 0x1
|
||||||
IFLA_BOND_AD_INFO_NUM_PORTS = 0x2
|
IFLA_BOND_AD_INFO_NUM_PORTS = 0x2
|
||||||
@@ -1796,6 +1842,7 @@ const (
|
|||||||
IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6
|
IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6
|
||||||
IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7
|
IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7
|
||||||
IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8
|
IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8
|
||||||
|
IFLA_BOND_SLAVE_PRIO = 0x9
|
||||||
IFLA_VF_INFO_UNSPEC = 0x0
|
IFLA_VF_INFO_UNSPEC = 0x0
|
||||||
IFLA_VF_INFO = 0x1
|
IFLA_VF_INFO = 0x1
|
||||||
IFLA_VF_UNSPEC = 0x0
|
IFLA_VF_UNSPEC = 0x0
|
||||||
@@ -1854,8 +1901,16 @@ const (
|
|||||||
IFLA_STATS_LINK_XSTATS_SLAVE = 0x3
|
IFLA_STATS_LINK_XSTATS_SLAVE = 0x3
|
||||||
IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4
|
IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4
|
||||||
IFLA_STATS_AF_SPEC = 0x5
|
IFLA_STATS_AF_SPEC = 0x5
|
||||||
|
IFLA_STATS_GETSET_UNSPEC = 0x0
|
||||||
|
IFLA_STATS_GET_FILTERS = 0x1
|
||||||
|
IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2
|
||||||
IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0
|
IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0
|
||||||
IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1
|
IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1
|
||||||
|
IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2
|
||||||
|
IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3
|
||||||
|
IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0
|
||||||
|
IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1
|
||||||
|
IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2
|
||||||
IFLA_XDP_UNSPEC = 0x0
|
IFLA_XDP_UNSPEC = 0x0
|
||||||
IFLA_XDP_FD = 0x1
|
IFLA_XDP_FD = 0x1
|
||||||
IFLA_XDP_ATTACHED = 0x2
|
IFLA_XDP_ATTACHED = 0x2
|
||||||
@@ -1885,6 +1940,11 @@ const (
|
|||||||
IFLA_RMNET_UNSPEC = 0x0
|
IFLA_RMNET_UNSPEC = 0x0
|
||||||
IFLA_RMNET_MUX_ID = 0x1
|
IFLA_RMNET_MUX_ID = 0x1
|
||||||
IFLA_RMNET_FLAGS = 0x2
|
IFLA_RMNET_FLAGS = 0x2
|
||||||
|
IFLA_MCTP_UNSPEC = 0x0
|
||||||
|
IFLA_MCTP_NET = 0x1
|
||||||
|
IFLA_DSA_UNSPEC = 0x0
|
||||||
|
IFLA_DSA_CONDUIT = 0x1
|
||||||
|
IFLA_DSA_MASTER = 0x1
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|||||||
12
vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go
generated
vendored
Normal file
12
vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
// Copyright 2024 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Package editiondefaults contains the binary representation of the editions
|
||||||
|
// defaults.
|
||||||
|
package editiondefaults
|
||||||
|
|
||||||
|
import _ "embed"
|
||||||
|
|
||||||
|
//go:embed editions_defaults.binpb
|
||||||
|
var Defaults []byte
|
||||||
4
vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
generated
vendored
Normal file
4
vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
|
||||||
|
(0ж
|
||||||
|
(0з
|
||||||
|
(0и ж(и
|
||||||
47
vendor/google.golang.org/protobuf/internal/filedesc/desc.go
generated
vendored
47
vendor/google.golang.org/protobuf/internal/filedesc/desc.go
generated
vendored
@@ -68,7 +68,7 @@ type (
|
|||||||
Extensions Extensions
|
Extensions Extensions
|
||||||
Services Services
|
Services Services
|
||||||
|
|
||||||
EditionFeatures FileEditionFeatures
|
EditionFeatures EditionFeatures
|
||||||
}
|
}
|
||||||
FileL2 struct {
|
FileL2 struct {
|
||||||
Options func() protoreflect.ProtoMessage
|
Options func() protoreflect.ProtoMessage
|
||||||
@@ -76,10 +76,13 @@ type (
|
|||||||
Locations SourceLocations
|
Locations SourceLocations
|
||||||
}
|
}
|
||||||
|
|
||||||
FileEditionFeatures struct {
|
EditionFeatures struct {
|
||||||
// IsFieldPresence is true if field_presence is EXPLICIT
|
// IsFieldPresence is true if field_presence is EXPLICIT
|
||||||
// https://protobuf.dev/editions/features/#field_presence
|
// https://protobuf.dev/editions/features/#field_presence
|
||||||
IsFieldPresence bool
|
IsFieldPresence bool
|
||||||
|
// IsFieldPresence is true if field_presence is LEGACY_REQUIRED
|
||||||
|
// https://protobuf.dev/editions/features/#field_presence
|
||||||
|
IsLegacyRequired bool
|
||||||
// IsOpenEnum is true if enum_type is OPEN
|
// IsOpenEnum is true if enum_type is OPEN
|
||||||
// https://protobuf.dev/editions/features/#enum_type
|
// https://protobuf.dev/editions/features/#enum_type
|
||||||
IsOpenEnum bool
|
IsOpenEnum bool
|
||||||
@@ -95,6 +98,9 @@ type (
|
|||||||
// IsJSONCompliant is true if json_format is ALLOW
|
// IsJSONCompliant is true if json_format is ALLOW
|
||||||
// https://protobuf.dev/editions/features/#json_format
|
// https://protobuf.dev/editions/features/#json_format
|
||||||
IsJSONCompliant bool
|
IsJSONCompliant bool
|
||||||
|
// GenerateLegacyUnmarshalJSON determines if the plugin generates the
|
||||||
|
// UnmarshalJSON([]byte) error method for enums.
|
||||||
|
GenerateLegacyUnmarshalJSON bool
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -156,6 +162,8 @@ type (
|
|||||||
}
|
}
|
||||||
EnumL1 struct {
|
EnumL1 struct {
|
||||||
eagerValues bool // controls whether EnumL2.Values is already populated
|
eagerValues bool // controls whether EnumL2.Values is already populated
|
||||||
|
|
||||||
|
EditionFeatures EditionFeatures
|
||||||
}
|
}
|
||||||
EnumL2 struct {
|
EnumL2 struct {
|
||||||
Options func() protoreflect.ProtoMessage
|
Options func() protoreflect.ProtoMessage
|
||||||
@@ -217,6 +225,8 @@ type (
|
|||||||
Extensions Extensions
|
Extensions Extensions
|
||||||
IsMapEntry bool // promoted from google.protobuf.MessageOptions
|
IsMapEntry bool // promoted from google.protobuf.MessageOptions
|
||||||
IsMessageSet bool // promoted from google.protobuf.MessageOptions
|
IsMessageSet bool // promoted from google.protobuf.MessageOptions
|
||||||
|
|
||||||
|
EditionFeatures EditionFeatures
|
||||||
}
|
}
|
||||||
MessageL2 struct {
|
MessageL2 struct {
|
||||||
Options func() protoreflect.ProtoMessage
|
Options func() protoreflect.ProtoMessage
|
||||||
@@ -250,8 +260,7 @@ type (
|
|||||||
Enum protoreflect.EnumDescriptor
|
Enum protoreflect.EnumDescriptor
|
||||||
Message protoreflect.MessageDescriptor
|
Message protoreflect.MessageDescriptor
|
||||||
|
|
||||||
// Edition features.
|
EditionFeatures EditionFeatures
|
||||||
Presence bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Oneof struct {
|
Oneof struct {
|
||||||
@@ -261,6 +270,8 @@ type (
|
|||||||
OneofL1 struct {
|
OneofL1 struct {
|
||||||
Options func() protoreflect.ProtoMessage
|
Options func() protoreflect.ProtoMessage
|
||||||
Fields OneofFields // must be consistent with Message.Fields.ContainingOneof
|
Fields OneofFields // must be consistent with Message.Fields.ContainingOneof
|
||||||
|
|
||||||
|
EditionFeatures EditionFeatures
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -310,26 +321,36 @@ func (fd *Field) Options() protoreflect.ProtoMessage {
|
|||||||
}
|
}
|
||||||
func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number }
|
func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number }
|
||||||
func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality }
|
func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality }
|
||||||
func (fd *Field) Kind() protoreflect.Kind { return fd.L1.Kind }
|
func (fd *Field) Kind() protoreflect.Kind {
|
||||||
|
return fd.L1.Kind
|
||||||
|
}
|
||||||
func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON }
|
func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON }
|
||||||
func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) }
|
func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) }
|
||||||
func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) }
|
func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) }
|
||||||
func (fd *Field) HasPresence() bool {
|
func (fd *Field) HasPresence() bool {
|
||||||
if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions {
|
if fd.L1.Cardinality == protoreflect.Repeated {
|
||||||
return fd.L1.Presence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil
|
return false
|
||||||
}
|
}
|
||||||
return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil)
|
explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence
|
||||||
|
return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil
|
||||||
}
|
}
|
||||||
func (fd *Field) HasOptionalKeyword() bool {
|
func (fd *Field) HasOptionalKeyword() bool {
|
||||||
return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional
|
return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional
|
||||||
}
|
}
|
||||||
func (fd *Field) IsPacked() bool {
|
func (fd *Field) IsPacked() bool {
|
||||||
if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated {
|
if fd.L1.Cardinality != protoreflect.Repeated {
|
||||||
|
return false
|
||||||
|
}
|
||||||
switch fd.L1.Kind {
|
switch fd.L1.Kind {
|
||||||
case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:
|
case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind:
|
||||||
default:
|
return false
|
||||||
return true
|
|
||||||
}
|
}
|
||||||
|
if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions {
|
||||||
|
return fd.L1.EditionFeatures.IsPacked
|
||||||
|
}
|
||||||
|
if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 {
|
||||||
|
// proto3 repeated fields are packed by default.
|
||||||
|
return !fd.L1.HasPacked || fd.L1.IsPacked
|
||||||
}
|
}
|
||||||
return fd.L1.IsPacked
|
return fd.L1.IsPacked
|
||||||
}
|
}
|
||||||
@@ -378,6 +399,9 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {}
|
|||||||
// WARNING: This method is exempt from the compatibility promise and may be
|
// WARNING: This method is exempt from the compatibility promise and may be
|
||||||
// removed in the future without warning.
|
// removed in the future without warning.
|
||||||
func (fd *Field) EnforceUTF8() bool {
|
func (fd *Field) EnforceUTF8() bool {
|
||||||
|
if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions {
|
||||||
|
return fd.L1.EditionFeatures.IsUTF8Validated
|
||||||
|
}
|
||||||
if fd.L1.HasEnforceUTF8 {
|
if fd.L1.HasEnforceUTF8 {
|
||||||
return fd.L1.EnforceUTF8
|
return fd.L1.EnforceUTF8
|
||||||
}
|
}
|
||||||
@@ -408,6 +432,7 @@ type (
|
|||||||
Extendee protoreflect.MessageDescriptor
|
Extendee protoreflect.MessageDescriptor
|
||||||
Cardinality protoreflect.Cardinality
|
Cardinality protoreflect.Cardinality
|
||||||
Kind protoreflect.Kind
|
Kind protoreflect.Kind
|
||||||
|
EditionFeatures EditionFeatures
|
||||||
}
|
}
|
||||||
ExtensionL2 struct {
|
ExtensionL2 struct {
|
||||||
Options func() protoreflect.ProtoMessage
|
Options func() protoreflect.ProtoMessage
|
||||||
|
|||||||
52
vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go
generated
vendored
52
vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go
generated
vendored
@@ -5,6 +5,7 @@
|
|||||||
package filedesc
|
package filedesc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
"google.golang.org/protobuf/encoding/protowire"
|
"google.golang.org/protobuf/encoding/protowire"
|
||||||
@@ -98,6 +99,7 @@ func (fd *File) unmarshalSeed(b []byte) {
|
|||||||
var prevField protoreflect.FieldNumber
|
var prevField protoreflect.FieldNumber
|
||||||
var numEnums, numMessages, numExtensions, numServices int
|
var numEnums, numMessages, numExtensions, numServices int
|
||||||
var posEnums, posMessages, posExtensions, posServices int
|
var posEnums, posMessages, posExtensions, posServices int
|
||||||
|
var options []byte
|
||||||
b0 := b
|
b0 := b
|
||||||
for len(b) > 0 {
|
for len(b) > 0 {
|
||||||
num, typ, n := protowire.ConsumeTag(b)
|
num, typ, n := protowire.ConsumeTag(b)
|
||||||
@@ -113,6 +115,8 @@ func (fd *File) unmarshalSeed(b []byte) {
|
|||||||
fd.L1.Syntax = protoreflect.Proto2
|
fd.L1.Syntax = protoreflect.Proto2
|
||||||
case "proto3":
|
case "proto3":
|
||||||
fd.L1.Syntax = protoreflect.Proto3
|
fd.L1.Syntax = protoreflect.Proto3
|
||||||
|
case "editions":
|
||||||
|
fd.L1.Syntax = protoreflect.Editions
|
||||||
default:
|
default:
|
||||||
panic("invalid syntax")
|
panic("invalid syntax")
|
||||||
}
|
}
|
||||||
@@ -120,6 +124,8 @@ func (fd *File) unmarshalSeed(b []byte) {
|
|||||||
fd.L1.Path = sb.MakeString(v)
|
fd.L1.Path = sb.MakeString(v)
|
||||||
case genid.FileDescriptorProto_Package_field_number:
|
case genid.FileDescriptorProto_Package_field_number:
|
||||||
fd.L1.Package = protoreflect.FullName(sb.MakeString(v))
|
fd.L1.Package = protoreflect.FullName(sb.MakeString(v))
|
||||||
|
case genid.FileDescriptorProto_Options_field_number:
|
||||||
|
options = v
|
||||||
case genid.FileDescriptorProto_EnumType_field_number:
|
case genid.FileDescriptorProto_EnumType_field_number:
|
||||||
if prevField != genid.FileDescriptorProto_EnumType_field_number {
|
if prevField != genid.FileDescriptorProto_EnumType_field_number {
|
||||||
if numEnums > 0 {
|
if numEnums > 0 {
|
||||||
@@ -154,6 +160,13 @@ func (fd *File) unmarshalSeed(b []byte) {
|
|||||||
numServices++
|
numServices++
|
||||||
}
|
}
|
||||||
prevField = num
|
prevField = num
|
||||||
|
case protowire.VarintType:
|
||||||
|
v, m := protowire.ConsumeVarint(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FileDescriptorProto_Edition_field_number:
|
||||||
|
fd.L1.Edition = Edition(v)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
m := protowire.ConsumeFieldValue(num, typ, b)
|
m := protowire.ConsumeFieldValue(num, typ, b)
|
||||||
b = b[m:]
|
b = b[m:]
|
||||||
@@ -166,6 +179,15 @@ func (fd *File) unmarshalSeed(b []byte) {
|
|||||||
fd.L1.Syntax = protoreflect.Proto2
|
fd.L1.Syntax = protoreflect.Proto2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if fd.L1.Syntax == protoreflect.Editions {
|
||||||
|
fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse editions features from options if any
|
||||||
|
if options != nil {
|
||||||
|
fd.unmarshalSeedOptions(options)
|
||||||
|
}
|
||||||
|
|
||||||
// Must allocate all declarations before parsing each descriptor type
|
// Must allocate all declarations before parsing each descriptor type
|
||||||
// to ensure we handled all descriptors in "flattened ordering".
|
// to ensure we handled all descriptors in "flattened ordering".
|
||||||
if numEnums > 0 {
|
if numEnums > 0 {
|
||||||
@@ -219,6 +241,28 @@ func (fd *File) unmarshalSeed(b []byte) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (fd *File) unmarshalSeedOptions(b []byte) {
|
||||||
|
for b := b; len(b) > 0; {
|
||||||
|
num, typ, n := protowire.ConsumeTag(b)
|
||||||
|
b = b[n:]
|
||||||
|
switch typ {
|
||||||
|
case protowire.BytesType:
|
||||||
|
v, m := protowire.ConsumeBytes(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FileOptions_Features_field_number:
|
||||||
|
if fd.Syntax() != protoreflect.Editions {
|
||||||
|
panic(fmt.Sprintf("invalid descriptor: using edition features in a proto with syntax %s", fd.Syntax()))
|
||||||
|
}
|
||||||
|
fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures)
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
m := protowire.ConsumeFieldValue(num, typ, b)
|
||||||
|
b = b[m:]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
|
func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) {
|
||||||
ed.L0.ParentFile = pf
|
ed.L0.ParentFile = pf
|
||||||
ed.L0.Parent = pd
|
ed.L0.Parent = pd
|
||||||
@@ -275,6 +319,7 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor
|
|||||||
md.L0.ParentFile = pf
|
md.L0.ParentFile = pf
|
||||||
md.L0.Parent = pd
|
md.L0.Parent = pd
|
||||||
md.L0.Index = i
|
md.L0.Index = i
|
||||||
|
md.L1.EditionFeatures = featuresFromParentDesc(md.Parent())
|
||||||
|
|
||||||
var prevField protoreflect.FieldNumber
|
var prevField protoreflect.FieldNumber
|
||||||
var numEnums, numMessages, numExtensions int
|
var numEnums, numMessages, numExtensions int
|
||||||
@@ -380,6 +425,13 @@ func (md *Message) unmarshalSeedOptions(b []byte) {
|
|||||||
case genid.MessageOptions_MessageSetWireFormat_field_number:
|
case genid.MessageOptions_MessageSetWireFormat_field_number:
|
||||||
md.L1.IsMessageSet = protowire.DecodeBool(v)
|
md.L1.IsMessageSet = protowire.DecodeBool(v)
|
||||||
}
|
}
|
||||||
|
case protowire.BytesType:
|
||||||
|
v, m := protowire.ConsumeBytes(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.MessageOptions_Features_field_number:
|
||||||
|
md.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
m := protowire.ConsumeFieldValue(num, typ, b)
|
m := protowire.ConsumeFieldValue(num, typ, b)
|
||||||
b = b[m:]
|
b = b[m:]
|
||||||
|
|||||||
28
vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
generated
vendored
28
vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
generated
vendored
@@ -414,6 +414,7 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref
|
|||||||
fd.L0.ParentFile = pf
|
fd.L0.ParentFile = pf
|
||||||
fd.L0.Parent = pd
|
fd.L0.Parent = pd
|
||||||
fd.L0.Index = i
|
fd.L0.Index = i
|
||||||
|
fd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent())
|
||||||
|
|
||||||
var rawTypeName []byte
|
var rawTypeName []byte
|
||||||
var rawOptions []byte
|
var rawOptions []byte
|
||||||
@@ -465,6 +466,12 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref
|
|||||||
b = b[m:]
|
b = b[m:]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded {
|
||||||
|
fd.L1.Kind = protoreflect.GroupKind
|
||||||
|
}
|
||||||
|
if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired {
|
||||||
|
fd.L1.Cardinality = protoreflect.Required
|
||||||
|
}
|
||||||
if rawTypeName != nil {
|
if rawTypeName != nil {
|
||||||
name := makeFullName(sb, rawTypeName)
|
name := makeFullName(sb, rawTypeName)
|
||||||
switch fd.L1.Kind {
|
switch fd.L1.Kind {
|
||||||
@@ -497,6 +504,13 @@ func (fd *Field) unmarshalOptions(b []byte) {
|
|||||||
fd.L1.HasEnforceUTF8 = true
|
fd.L1.HasEnforceUTF8 = true
|
||||||
fd.L1.EnforceUTF8 = protowire.DecodeBool(v)
|
fd.L1.EnforceUTF8 = protowire.DecodeBool(v)
|
||||||
}
|
}
|
||||||
|
case protowire.BytesType:
|
||||||
|
v, m := protowire.ConsumeBytes(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FieldOptions_Features_field_number:
|
||||||
|
fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
m := protowire.ConsumeFieldValue(num, typ, b)
|
m := protowire.ConsumeFieldValue(num, typ, b)
|
||||||
b = b[m:]
|
b = b[m:]
|
||||||
@@ -534,6 +548,7 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref
|
|||||||
func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
|
func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
|
||||||
var rawTypeName []byte
|
var rawTypeName []byte
|
||||||
var rawOptions []byte
|
var rawOptions []byte
|
||||||
|
xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee)
|
||||||
xd.L2 = new(ExtensionL2)
|
xd.L2 = new(ExtensionL2)
|
||||||
for len(b) > 0 {
|
for len(b) > 0 {
|
||||||
num, typ, n := protowire.ConsumeTag(b)
|
num, typ, n := protowire.ConsumeTag(b)
|
||||||
@@ -565,6 +580,12 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) {
|
|||||||
b = b[m:]
|
b = b[m:]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded {
|
||||||
|
xd.L1.Kind = protoreflect.GroupKind
|
||||||
|
}
|
||||||
|
if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired {
|
||||||
|
xd.L1.Cardinality = protoreflect.Required
|
||||||
|
}
|
||||||
if rawTypeName != nil {
|
if rawTypeName != nil {
|
||||||
name := makeFullName(sb, rawTypeName)
|
name := makeFullName(sb, rawTypeName)
|
||||||
switch xd.L1.Kind {
|
switch xd.L1.Kind {
|
||||||
@@ -589,6 +610,13 @@ func (xd *Extension) unmarshalOptions(b []byte) {
|
|||||||
case genid.FieldOptions_Packed_field_number:
|
case genid.FieldOptions_Packed_field_number:
|
||||||
xd.L2.IsPacked = protowire.DecodeBool(v)
|
xd.L2.IsPacked = protowire.DecodeBool(v)
|
||||||
}
|
}
|
||||||
|
case protowire.BytesType:
|
||||||
|
v, m := protowire.ConsumeBytes(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FieldOptions_Features_field_number:
|
||||||
|
xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures)
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
m := protowire.ConsumeFieldValue(num, typ, b)
|
m := protowire.ConsumeFieldValue(num, typ, b)
|
||||||
b = b[m:]
|
b = b[m:]
|
||||||
|
|||||||
142
vendor/google.golang.org/protobuf/internal/filedesc/editions.go
generated
vendored
Normal file
142
vendor/google.golang.org/protobuf/internal/filedesc/editions.go
generated
vendored
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
// Copyright 2024 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package filedesc
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"google.golang.org/protobuf/encoding/protowire"
|
||||||
|
"google.golang.org/protobuf/internal/editiondefaults"
|
||||||
|
"google.golang.org/protobuf/internal/genid"
|
||||||
|
"google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
)
|
||||||
|
|
||||||
|
var defaultsCache = make(map[Edition]EditionFeatures)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
unmarshalEditionDefaults(editiondefaults.Defaults)
|
||||||
|
}
|
||||||
|
|
||||||
|
func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures {
|
||||||
|
for len(b) > 0 {
|
||||||
|
num, _, n := protowire.ConsumeTag(b)
|
||||||
|
b = b[n:]
|
||||||
|
switch num {
|
||||||
|
case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number:
|
||||||
|
v, m := protowire.ConsumeVarint(b)
|
||||||
|
b = b[m:]
|
||||||
|
parent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v)
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return parent
|
||||||
|
}
|
||||||
|
|
||||||
|
func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures {
|
||||||
|
for len(b) > 0 {
|
||||||
|
num, typ, n := protowire.ConsumeTag(b)
|
||||||
|
b = b[n:]
|
||||||
|
switch typ {
|
||||||
|
case protowire.VarintType:
|
||||||
|
v, m := protowire.ConsumeVarint(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FeatureSet_FieldPresence_field_number:
|
||||||
|
parent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value
|
||||||
|
parent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value
|
||||||
|
case genid.FeatureSet_EnumType_field_number:
|
||||||
|
parent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value
|
||||||
|
case genid.FeatureSet_RepeatedFieldEncoding_field_number:
|
||||||
|
parent.IsPacked = v == genid.FeatureSet_PACKED_enum_value
|
||||||
|
case genid.FeatureSet_Utf8Validation_field_number:
|
||||||
|
parent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value
|
||||||
|
case genid.FeatureSet_MessageEncoding_field_number:
|
||||||
|
parent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value
|
||||||
|
case genid.FeatureSet_JsonFormat_field_number:
|
||||||
|
parent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num))
|
||||||
|
}
|
||||||
|
case protowire.BytesType:
|
||||||
|
v, m := protowire.ConsumeBytes(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number:
|
||||||
|
parent = unmarshalGoFeature(v, parent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return parent
|
||||||
|
}
|
||||||
|
|
||||||
|
func featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures {
|
||||||
|
var parentFS EditionFeatures
|
||||||
|
switch p := parentDesc.(type) {
|
||||||
|
case *File:
|
||||||
|
parentFS = p.L1.EditionFeatures
|
||||||
|
case *Message:
|
||||||
|
parentFS = p.L1.EditionFeatures
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("unknown parent type %T", parentDesc))
|
||||||
|
}
|
||||||
|
return parentFS
|
||||||
|
}
|
||||||
|
|
||||||
|
func unmarshalEditionDefault(b []byte) {
|
||||||
|
var ed Edition
|
||||||
|
var fs EditionFeatures
|
||||||
|
for len(b) > 0 {
|
||||||
|
num, typ, n := protowire.ConsumeTag(b)
|
||||||
|
b = b[n:]
|
||||||
|
switch typ {
|
||||||
|
case protowire.VarintType:
|
||||||
|
v, m := protowire.ConsumeVarint(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number:
|
||||||
|
ed = Edition(v)
|
||||||
|
}
|
||||||
|
case protowire.BytesType:
|
||||||
|
v, m := protowire.ConsumeBytes(b)
|
||||||
|
b = b[m:]
|
||||||
|
switch num {
|
||||||
|
case genid.FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number:
|
||||||
|
fs = unmarshalFeatureSet(v, fs)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
defaultsCache[ed] = fs
|
||||||
|
}
|
||||||
|
|
||||||
|
func unmarshalEditionDefaults(b []byte) {
|
||||||
|
for len(b) > 0 {
|
||||||
|
num, _, n := protowire.ConsumeTag(b)
|
||||||
|
b = b[n:]
|
||||||
|
switch num {
|
||||||
|
case genid.FeatureSetDefaults_Defaults_field_number:
|
||||||
|
def, m := protowire.ConsumeBytes(b)
|
||||||
|
b = b[m:]
|
||||||
|
unmarshalEditionDefault(def)
|
||||||
|
case genid.FeatureSetDefaults_MinimumEdition_field_number,
|
||||||
|
genid.FeatureSetDefaults_MaximumEdition_field_number:
|
||||||
|
// We don't care about the minimum and maximum editions. If the
|
||||||
|
// edition we are looking for later on is not in the cache we know
|
||||||
|
// it is outside of the range between minimum and maximum edition.
|
||||||
|
_, m := protowire.ConsumeVarint(b)
|
||||||
|
b = b[m:]
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getFeaturesFor(ed Edition) EditionFeatures {
|
||||||
|
if def, ok := defaultsCache[ed]; ok {
|
||||||
|
return def
|
||||||
|
}
|
||||||
|
panic(fmt.Sprintf("unsupported edition: %v", ed))
|
||||||
|
}
|
||||||
152
vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
generated
vendored
152
vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
generated
vendored
@@ -18,6 +18,21 @@ const (
|
|||||||
Edition_enum_name = "Edition"
|
Edition_enum_name = "Edition"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.Edition.
|
||||||
|
const (
|
||||||
|
Edition_EDITION_UNKNOWN_enum_value = 0
|
||||||
|
Edition_EDITION_PROTO2_enum_value = 998
|
||||||
|
Edition_EDITION_PROTO3_enum_value = 999
|
||||||
|
Edition_EDITION_2023_enum_value = 1000
|
||||||
|
Edition_EDITION_2024_enum_value = 1001
|
||||||
|
Edition_EDITION_1_TEST_ONLY_enum_value = 1
|
||||||
|
Edition_EDITION_2_TEST_ONLY_enum_value = 2
|
||||||
|
Edition_EDITION_99997_TEST_ONLY_enum_value = 99997
|
||||||
|
Edition_EDITION_99998_TEST_ONLY_enum_value = 99998
|
||||||
|
Edition_EDITION_99999_TEST_ONLY_enum_value = 99999
|
||||||
|
Edition_EDITION_MAX_enum_value = 2147483647
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.FileDescriptorSet.
|
// Names for google.protobuf.FileDescriptorSet.
|
||||||
const (
|
const (
|
||||||
FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet"
|
FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet"
|
||||||
@@ -213,6 +228,12 @@ const (
|
|||||||
ExtensionRangeOptions_VerificationState_enum_name = "VerificationState"
|
ExtensionRangeOptions_VerificationState_enum_name = "VerificationState"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState.
|
||||||
|
const (
|
||||||
|
ExtensionRangeOptions_DECLARATION_enum_value = 0
|
||||||
|
ExtensionRangeOptions_UNVERIFIED_enum_value = 1
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.ExtensionRangeOptions.Declaration.
|
// Names for google.protobuf.ExtensionRangeOptions.Declaration.
|
||||||
const (
|
const (
|
||||||
ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration"
|
ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration"
|
||||||
@@ -297,12 +318,41 @@ const (
|
|||||||
FieldDescriptorProto_Type_enum_name = "Type"
|
FieldDescriptorProto_Type_enum_name = "Type"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FieldDescriptorProto.Type.
|
||||||
|
const (
|
||||||
|
FieldDescriptorProto_TYPE_DOUBLE_enum_value = 1
|
||||||
|
FieldDescriptorProto_TYPE_FLOAT_enum_value = 2
|
||||||
|
FieldDescriptorProto_TYPE_INT64_enum_value = 3
|
||||||
|
FieldDescriptorProto_TYPE_UINT64_enum_value = 4
|
||||||
|
FieldDescriptorProto_TYPE_INT32_enum_value = 5
|
||||||
|
FieldDescriptorProto_TYPE_FIXED64_enum_value = 6
|
||||||
|
FieldDescriptorProto_TYPE_FIXED32_enum_value = 7
|
||||||
|
FieldDescriptorProto_TYPE_BOOL_enum_value = 8
|
||||||
|
FieldDescriptorProto_TYPE_STRING_enum_value = 9
|
||||||
|
FieldDescriptorProto_TYPE_GROUP_enum_value = 10
|
||||||
|
FieldDescriptorProto_TYPE_MESSAGE_enum_value = 11
|
||||||
|
FieldDescriptorProto_TYPE_BYTES_enum_value = 12
|
||||||
|
FieldDescriptorProto_TYPE_UINT32_enum_value = 13
|
||||||
|
FieldDescriptorProto_TYPE_ENUM_enum_value = 14
|
||||||
|
FieldDescriptorProto_TYPE_SFIXED32_enum_value = 15
|
||||||
|
FieldDescriptorProto_TYPE_SFIXED64_enum_value = 16
|
||||||
|
FieldDescriptorProto_TYPE_SINT32_enum_value = 17
|
||||||
|
FieldDescriptorProto_TYPE_SINT64_enum_value = 18
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FieldDescriptorProto.Label.
|
// Full and short names for google.protobuf.FieldDescriptorProto.Label.
|
||||||
const (
|
const (
|
||||||
FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label"
|
FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label"
|
||||||
FieldDescriptorProto_Label_enum_name = "Label"
|
FieldDescriptorProto_Label_enum_name = "Label"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FieldDescriptorProto.Label.
|
||||||
|
const (
|
||||||
|
FieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1
|
||||||
|
FieldDescriptorProto_LABEL_REPEATED_enum_value = 3
|
||||||
|
FieldDescriptorProto_LABEL_REQUIRED_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.OneofDescriptorProto.
|
// Names for google.protobuf.OneofDescriptorProto.
|
||||||
const (
|
const (
|
||||||
OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto"
|
OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto"
|
||||||
@@ -474,7 +524,6 @@ const (
|
|||||||
FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services"
|
FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services"
|
||||||
FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services"
|
FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services"
|
||||||
FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services"
|
FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services"
|
||||||
FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services"
|
|
||||||
FileOptions_Deprecated_field_name protoreflect.Name = "deprecated"
|
FileOptions_Deprecated_field_name protoreflect.Name = "deprecated"
|
||||||
FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas"
|
FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas"
|
||||||
FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix"
|
FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix"
|
||||||
@@ -497,7 +546,6 @@ const (
|
|||||||
FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services"
|
FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services"
|
||||||
FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services"
|
FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services"
|
||||||
FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services"
|
FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services"
|
||||||
FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services"
|
|
||||||
FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated"
|
FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated"
|
||||||
FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas"
|
FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas"
|
||||||
FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix"
|
FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix"
|
||||||
@@ -523,7 +571,6 @@ const (
|
|||||||
FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16
|
FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16
|
||||||
FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17
|
FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17
|
||||||
FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18
|
FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18
|
||||||
FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42
|
|
||||||
FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23
|
FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23
|
||||||
FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31
|
FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31
|
||||||
FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36
|
FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36
|
||||||
@@ -543,6 +590,13 @@ const (
|
|||||||
FileOptions_OptimizeMode_enum_name = "OptimizeMode"
|
FileOptions_OptimizeMode_enum_name = "OptimizeMode"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FileOptions.OptimizeMode.
|
||||||
|
const (
|
||||||
|
FileOptions_SPEED_enum_value = 1
|
||||||
|
FileOptions_CODE_SIZE_enum_value = 2
|
||||||
|
FileOptions_LITE_RUNTIME_enum_value = 3
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.MessageOptions.
|
// Names for google.protobuf.MessageOptions.
|
||||||
const (
|
const (
|
||||||
MessageOptions_message_name protoreflect.Name = "MessageOptions"
|
MessageOptions_message_name protoreflect.Name = "MessageOptions"
|
||||||
@@ -639,24 +693,59 @@ const (
|
|||||||
FieldOptions_CType_enum_name = "CType"
|
FieldOptions_CType_enum_name = "CType"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FieldOptions.CType.
|
||||||
|
const (
|
||||||
|
FieldOptions_STRING_enum_value = 0
|
||||||
|
FieldOptions_CORD_enum_value = 1
|
||||||
|
FieldOptions_STRING_PIECE_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FieldOptions.JSType.
|
// Full and short names for google.protobuf.FieldOptions.JSType.
|
||||||
const (
|
const (
|
||||||
FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType"
|
FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType"
|
||||||
FieldOptions_JSType_enum_name = "JSType"
|
FieldOptions_JSType_enum_name = "JSType"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FieldOptions.JSType.
|
||||||
|
const (
|
||||||
|
FieldOptions_JS_NORMAL_enum_value = 0
|
||||||
|
FieldOptions_JS_STRING_enum_value = 1
|
||||||
|
FieldOptions_JS_NUMBER_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FieldOptions.OptionRetention.
|
// Full and short names for google.protobuf.FieldOptions.OptionRetention.
|
||||||
const (
|
const (
|
||||||
FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention"
|
FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention"
|
||||||
FieldOptions_OptionRetention_enum_name = "OptionRetention"
|
FieldOptions_OptionRetention_enum_name = "OptionRetention"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FieldOptions.OptionRetention.
|
||||||
|
const (
|
||||||
|
FieldOptions_RETENTION_UNKNOWN_enum_value = 0
|
||||||
|
FieldOptions_RETENTION_RUNTIME_enum_value = 1
|
||||||
|
FieldOptions_RETENTION_SOURCE_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FieldOptions.OptionTargetType.
|
// Full and short names for google.protobuf.FieldOptions.OptionTargetType.
|
||||||
const (
|
const (
|
||||||
FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType"
|
FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType"
|
||||||
FieldOptions_OptionTargetType_enum_name = "OptionTargetType"
|
FieldOptions_OptionTargetType_enum_name = "OptionTargetType"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FieldOptions.OptionTargetType.
|
||||||
|
const (
|
||||||
|
FieldOptions_TARGET_TYPE_UNKNOWN_enum_value = 0
|
||||||
|
FieldOptions_TARGET_TYPE_FILE_enum_value = 1
|
||||||
|
FieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2
|
||||||
|
FieldOptions_TARGET_TYPE_MESSAGE_enum_value = 3
|
||||||
|
FieldOptions_TARGET_TYPE_FIELD_enum_value = 4
|
||||||
|
FieldOptions_TARGET_TYPE_ONEOF_enum_value = 5
|
||||||
|
FieldOptions_TARGET_TYPE_ENUM_enum_value = 6
|
||||||
|
FieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value = 7
|
||||||
|
FieldOptions_TARGET_TYPE_SERVICE_enum_value = 8
|
||||||
|
FieldOptions_TARGET_TYPE_METHOD_enum_value = 9
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.FieldOptions.EditionDefault.
|
// Names for google.protobuf.FieldOptions.EditionDefault.
|
||||||
const (
|
const (
|
||||||
FieldOptions_EditionDefault_message_name protoreflect.Name = "EditionDefault"
|
FieldOptions_EditionDefault_message_name protoreflect.Name = "EditionDefault"
|
||||||
@@ -813,6 +902,13 @@ const (
|
|||||||
MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel"
|
MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.MethodOptions.IdempotencyLevel.
|
||||||
|
const (
|
||||||
|
MethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0
|
||||||
|
MethodOptions_NO_SIDE_EFFECTS_enum_value = 1
|
||||||
|
MethodOptions_IDEMPOTENT_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.UninterpretedOption.
|
// Names for google.protobuf.UninterpretedOption.
|
||||||
const (
|
const (
|
||||||
UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption"
|
UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption"
|
||||||
@@ -909,36 +1005,79 @@ const (
|
|||||||
FeatureSet_FieldPresence_enum_name = "FieldPresence"
|
FeatureSet_FieldPresence_enum_name = "FieldPresence"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FeatureSet.FieldPresence.
|
||||||
|
const (
|
||||||
|
FeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0
|
||||||
|
FeatureSet_EXPLICIT_enum_value = 1
|
||||||
|
FeatureSet_IMPLICIT_enum_value = 2
|
||||||
|
FeatureSet_LEGACY_REQUIRED_enum_value = 3
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FeatureSet.EnumType.
|
// Full and short names for google.protobuf.FeatureSet.EnumType.
|
||||||
const (
|
const (
|
||||||
FeatureSet_EnumType_enum_fullname = "google.protobuf.FeatureSet.EnumType"
|
FeatureSet_EnumType_enum_fullname = "google.protobuf.FeatureSet.EnumType"
|
||||||
FeatureSet_EnumType_enum_name = "EnumType"
|
FeatureSet_EnumType_enum_name = "EnumType"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FeatureSet.EnumType.
|
||||||
|
const (
|
||||||
|
FeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0
|
||||||
|
FeatureSet_OPEN_enum_value = 1
|
||||||
|
FeatureSet_CLOSED_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding.
|
// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding.
|
||||||
const (
|
const (
|
||||||
FeatureSet_RepeatedFieldEncoding_enum_fullname = "google.protobuf.FeatureSet.RepeatedFieldEncoding"
|
FeatureSet_RepeatedFieldEncoding_enum_fullname = "google.protobuf.FeatureSet.RepeatedFieldEncoding"
|
||||||
FeatureSet_RepeatedFieldEncoding_enum_name = "RepeatedFieldEncoding"
|
FeatureSet_RepeatedFieldEncoding_enum_name = "RepeatedFieldEncoding"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding.
|
||||||
|
const (
|
||||||
|
FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0
|
||||||
|
FeatureSet_PACKED_enum_value = 1
|
||||||
|
FeatureSet_EXPANDED_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FeatureSet.Utf8Validation.
|
// Full and short names for google.protobuf.FeatureSet.Utf8Validation.
|
||||||
const (
|
const (
|
||||||
FeatureSet_Utf8Validation_enum_fullname = "google.protobuf.FeatureSet.Utf8Validation"
|
FeatureSet_Utf8Validation_enum_fullname = "google.protobuf.FeatureSet.Utf8Validation"
|
||||||
FeatureSet_Utf8Validation_enum_name = "Utf8Validation"
|
FeatureSet_Utf8Validation_enum_name = "Utf8Validation"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FeatureSet.Utf8Validation.
|
||||||
|
const (
|
||||||
|
FeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0
|
||||||
|
FeatureSet_VERIFY_enum_value = 2
|
||||||
|
FeatureSet_NONE_enum_value = 3
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FeatureSet.MessageEncoding.
|
// Full and short names for google.protobuf.FeatureSet.MessageEncoding.
|
||||||
const (
|
const (
|
||||||
FeatureSet_MessageEncoding_enum_fullname = "google.protobuf.FeatureSet.MessageEncoding"
|
FeatureSet_MessageEncoding_enum_fullname = "google.protobuf.FeatureSet.MessageEncoding"
|
||||||
FeatureSet_MessageEncoding_enum_name = "MessageEncoding"
|
FeatureSet_MessageEncoding_enum_name = "MessageEncoding"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FeatureSet.MessageEncoding.
|
||||||
|
const (
|
||||||
|
FeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0
|
||||||
|
FeatureSet_LENGTH_PREFIXED_enum_value = 1
|
||||||
|
FeatureSet_DELIMITED_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.FeatureSet.JsonFormat.
|
// Full and short names for google.protobuf.FeatureSet.JsonFormat.
|
||||||
const (
|
const (
|
||||||
FeatureSet_JsonFormat_enum_fullname = "google.protobuf.FeatureSet.JsonFormat"
|
FeatureSet_JsonFormat_enum_fullname = "google.protobuf.FeatureSet.JsonFormat"
|
||||||
FeatureSet_JsonFormat_enum_name = "JsonFormat"
|
FeatureSet_JsonFormat_enum_name = "JsonFormat"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.FeatureSet.JsonFormat.
|
||||||
|
const (
|
||||||
|
FeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0
|
||||||
|
FeatureSet_ALLOW_enum_value = 1
|
||||||
|
FeatureSet_LEGACY_BEST_EFFORT_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.FeatureSetDefaults.
|
// Names for google.protobuf.FeatureSetDefaults.
|
||||||
const (
|
const (
|
||||||
FeatureSetDefaults_message_name protoreflect.Name = "FeatureSetDefaults"
|
FeatureSetDefaults_message_name protoreflect.Name = "FeatureSetDefaults"
|
||||||
@@ -1085,3 +1224,10 @@ const (
|
|||||||
GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic"
|
GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic"
|
||||||
GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic"
|
GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic.
|
||||||
|
const (
|
||||||
|
GeneratedCodeInfo_Annotation_NONE_enum_value = 0
|
||||||
|
GeneratedCodeInfo_Annotation_SET_enum_value = 1
|
||||||
|
GeneratedCodeInfo_Annotation_ALIAS_enum_value = 2
|
||||||
|
)
|
||||||
|
|||||||
31
vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go
generated
vendored
Normal file
31
vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
// Copyright 2019 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Code generated by generate-protos. DO NOT EDIT.
|
||||||
|
|
||||||
|
package genid
|
||||||
|
|
||||||
|
import (
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
)
|
||||||
|
|
||||||
|
const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto"
|
||||||
|
|
||||||
|
// Names for google.protobuf.GoFeatures.
|
||||||
|
const (
|
||||||
|
GoFeatures_message_name protoreflect.Name = "GoFeatures"
|
||||||
|
GoFeatures_message_fullname protoreflect.FullName = "google.protobuf.GoFeatures"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Field names for google.protobuf.GoFeatures.
|
||||||
|
const (
|
||||||
|
GoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = "legacy_unmarshal_json_enum"
|
||||||
|
|
||||||
|
GoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = "google.protobuf.GoFeatures.legacy_unmarshal_json_enum"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Field numbers for google.protobuf.GoFeatures.
|
||||||
|
const (
|
||||||
|
GoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1
|
||||||
|
)
|
||||||
5
vendor/google.golang.org/protobuf/internal/genid/struct_gen.go
generated
vendored
5
vendor/google.golang.org/protobuf/internal/genid/struct_gen.go
generated
vendored
@@ -18,6 +18,11 @@ const (
|
|||||||
NullValue_enum_name = "NullValue"
|
NullValue_enum_name = "NullValue"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.NullValue.
|
||||||
|
const (
|
||||||
|
NullValue_NULL_VALUE_enum_value = 0
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.Struct.
|
// Names for google.protobuf.Struct.
|
||||||
const (
|
const (
|
||||||
Struct_message_name protoreflect.Name = "Struct"
|
Struct_message_name protoreflect.Name = "Struct"
|
||||||
|
|||||||
38
vendor/google.golang.org/protobuf/internal/genid/type_gen.go
generated
vendored
38
vendor/google.golang.org/protobuf/internal/genid/type_gen.go
generated
vendored
@@ -18,6 +18,13 @@ const (
|
|||||||
Syntax_enum_name = "Syntax"
|
Syntax_enum_name = "Syntax"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.Syntax.
|
||||||
|
const (
|
||||||
|
Syntax_SYNTAX_PROTO2_enum_value = 0
|
||||||
|
Syntax_SYNTAX_PROTO3_enum_value = 1
|
||||||
|
Syntax_SYNTAX_EDITIONS_enum_value = 2
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.Type.
|
// Names for google.protobuf.Type.
|
||||||
const (
|
const (
|
||||||
Type_message_name protoreflect.Name = "Type"
|
Type_message_name protoreflect.Name = "Type"
|
||||||
@@ -105,12 +112,43 @@ const (
|
|||||||
Field_Kind_enum_name = "Kind"
|
Field_Kind_enum_name = "Kind"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.Field.Kind.
|
||||||
|
const (
|
||||||
|
Field_TYPE_UNKNOWN_enum_value = 0
|
||||||
|
Field_TYPE_DOUBLE_enum_value = 1
|
||||||
|
Field_TYPE_FLOAT_enum_value = 2
|
||||||
|
Field_TYPE_INT64_enum_value = 3
|
||||||
|
Field_TYPE_UINT64_enum_value = 4
|
||||||
|
Field_TYPE_INT32_enum_value = 5
|
||||||
|
Field_TYPE_FIXED64_enum_value = 6
|
||||||
|
Field_TYPE_FIXED32_enum_value = 7
|
||||||
|
Field_TYPE_BOOL_enum_value = 8
|
||||||
|
Field_TYPE_STRING_enum_value = 9
|
||||||
|
Field_TYPE_GROUP_enum_value = 10
|
||||||
|
Field_TYPE_MESSAGE_enum_value = 11
|
||||||
|
Field_TYPE_BYTES_enum_value = 12
|
||||||
|
Field_TYPE_UINT32_enum_value = 13
|
||||||
|
Field_TYPE_ENUM_enum_value = 14
|
||||||
|
Field_TYPE_SFIXED32_enum_value = 15
|
||||||
|
Field_TYPE_SFIXED64_enum_value = 16
|
||||||
|
Field_TYPE_SINT32_enum_value = 17
|
||||||
|
Field_TYPE_SINT64_enum_value = 18
|
||||||
|
)
|
||||||
|
|
||||||
// Full and short names for google.protobuf.Field.Cardinality.
|
// Full and short names for google.protobuf.Field.Cardinality.
|
||||||
const (
|
const (
|
||||||
Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality"
|
Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality"
|
||||||
Field_Cardinality_enum_name = "Cardinality"
|
Field_Cardinality_enum_name = "Cardinality"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Enum values for google.protobuf.Field.Cardinality.
|
||||||
|
const (
|
||||||
|
Field_CARDINALITY_UNKNOWN_enum_value = 0
|
||||||
|
Field_CARDINALITY_OPTIONAL_enum_value = 1
|
||||||
|
Field_CARDINALITY_REQUIRED_enum_value = 2
|
||||||
|
Field_CARDINALITY_REPEATED_enum_value = 3
|
||||||
|
)
|
||||||
|
|
||||||
// Names for google.protobuf.Enum.
|
// Names for google.protobuf.Enum.
|
||||||
const (
|
const (
|
||||||
Enum_message_name protoreflect.Name = "Enum"
|
Enum_message_name protoreflect.Name = "Enum"
|
||||||
|
|||||||
22
vendor/google.golang.org/protobuf/internal/impl/codec_extension.go
generated
vendored
22
vendor/google.golang.org/protobuf/internal/impl/codec_extension.go
generated
vendored
@@ -21,26 +21,18 @@ type extensionFieldInfo struct {
|
|||||||
validation validationInfo
|
validation validationInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo
|
|
||||||
|
|
||||||
func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo {
|
func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo {
|
||||||
if xi, ok := xt.(*ExtensionInfo); ok {
|
if xi, ok := xt.(*ExtensionInfo); ok {
|
||||||
xi.lazyInit()
|
xi.lazyInit()
|
||||||
return xi.info
|
return xi.info
|
||||||
}
|
}
|
||||||
return legacyLoadExtensionFieldInfo(xt)
|
// Ideally we'd cache the resulting *extensionFieldInfo so we don't have to
|
||||||
}
|
// recompute this metadata repeatedly. But without support for something like
|
||||||
|
// weak references, such a cache would pin temporary values (like dynamic
|
||||||
// legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt.
|
// extension types, constructed for the duration of a user request) to the
|
||||||
func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo {
|
// heap forever, causing memory usage of the cache to grow unbounded.
|
||||||
if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok {
|
// See discussion in https://github.com/golang/protobuf/issues/1521.
|
||||||
return xi.(*extensionFieldInfo)
|
return makeExtensionFieldInfo(xt.TypeDescriptor())
|
||||||
}
|
|
||||||
e := makeExtensionFieldInfo(xt.TypeDescriptor())
|
|
||||||
if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok {
|
|
||||||
return e.(*extensionFieldInfo)
|
|
||||||
}
|
|
||||||
return e
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo {
|
func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo {
|
||||||
|
|||||||
2
vendor/google.golang.org/protobuf/internal/impl/codec_tables.go
generated
vendored
2
vendor/google.golang.org/protobuf/internal/impl/codec_tables.go
generated
vendored
@@ -197,7 +197,7 @@ func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo,
|
|||||||
return getMessageInfo(ft), makeMessageFieldCoder(fd, ft)
|
return getMessageInfo(ft), makeMessageFieldCoder(fd, ft)
|
||||||
case fd.Kind() == protoreflect.GroupKind:
|
case fd.Kind() == protoreflect.GroupKind:
|
||||||
return getMessageInfo(ft), makeGroupFieldCoder(fd, ft)
|
return getMessageInfo(ft), makeGroupFieldCoder(fd, ft)
|
||||||
case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil:
|
case !fd.HasPresence() && fd.ContainingOneof() == nil:
|
||||||
// Populated oneof fields always encode even if set to the zero value,
|
// Populated oneof fields always encode even if set to the zero value,
|
||||||
// which normally are not encoded in proto3.
|
// which normally are not encoded in proto3.
|
||||||
switch fd.Kind() {
|
switch fd.Kind() {
|
||||||
|
|||||||
2
vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go
generated
vendored
2
vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go
generated
vendored
@@ -538,6 +538,6 @@ func isZero(v reflect.Value) bool {
|
|||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
default:
|
default:
|
||||||
panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()})
|
panic(&reflect.ValueError{Method: "reflect.Value.IsZero", Kind: v.Kind()})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
2
vendor/google.golang.org/protobuf/internal/strs/strings.go
generated
vendored
2
vendor/google.golang.org/protobuf/internal/strs/strings.go
generated
vendored
@@ -17,7 +17,7 @@ import (
|
|||||||
|
|
||||||
// EnforceUTF8 reports whether to enforce strict UTF-8 validation.
|
// EnforceUTF8 reports whether to enforce strict UTF-8 validation.
|
||||||
func EnforceUTF8(fd protoreflect.FieldDescriptor) bool {
|
func EnforceUTF8(fd protoreflect.FieldDescriptor) bool {
|
||||||
if flags.ProtoLegacy {
|
if flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions {
|
||||||
if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok {
|
if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok {
|
||||||
return fd.EnforceUTF8()
|
return fd.EnforceUTF8()
|
||||||
}
|
}
|
||||||
|
|||||||
2
vendor/google.golang.org/protobuf/internal/version/version.go
generated
vendored
2
vendor/google.golang.org/protobuf/internal/version/version.go
generated
vendored
@@ -51,7 +51,7 @@ import (
|
|||||||
// 10. Send out the CL for review and submit it.
|
// 10. Send out the CL for review and submit it.
|
||||||
const (
|
const (
|
||||||
Major = 1
|
Major = 1
|
||||||
Minor = 32
|
Minor = 33
|
||||||
Patch = 0
|
Patch = 0
|
||||||
PreRelease = ""
|
PreRelease = ""
|
||||||
)
|
)
|
||||||
|
|||||||
2
vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go
generated
vendored
2
vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go
generated
vendored
@@ -175,6 +175,8 @@ func (s Syntax) String() string {
|
|||||||
return "proto2"
|
return "proto2"
|
||||||
case Proto3:
|
case Proto3:
|
||||||
return "proto3"
|
return "proto3"
|
||||||
|
case Editions:
|
||||||
|
return "editions"
|
||||||
default:
|
default:
|
||||||
return fmt.Sprintf("<unknown:%d>", s)
|
return fmt.Sprintf("<unknown:%d>", s)
|
||||||
}
|
}
|
||||||
|
|||||||
2
vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
generated
vendored
2
vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
generated
vendored
@@ -160,8 +160,6 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte {
|
|||||||
b = p.appendSingularField(b, "java_generic_services", nil)
|
b = p.appendSingularField(b, "java_generic_services", nil)
|
||||||
case 18:
|
case 18:
|
||||||
b = p.appendSingularField(b, "py_generic_services", nil)
|
b = p.appendSingularField(b, "py_generic_services", nil)
|
||||||
case 42:
|
|
||||||
b = p.appendSingularField(b, "php_generic_services", nil)
|
|
||||||
case 23:
|
case 23:
|
||||||
b = p.appendSingularField(b, "deprecated", nil)
|
b = p.appendSingularField(b, "deprecated", nil)
|
||||||
case 31:
|
case 31:
|
||||||
|
|||||||
17
vendor/modules.txt
vendored
17
vendor/modules.txt
vendored
@@ -22,20 +22,20 @@ github.com/jessevdk/go-flags
|
|||||||
# 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.18.0
|
# github.com/prometheus/client_golang v1.19.0
|
||||||
## explicit; go 1.19
|
## explicit; go 1.20
|
||||||
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.6.0
|
# github.com/prometheus/client_model v0.6.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.47.0
|
# github.com/prometheus/common v0.50.0
|
||||||
## explicit; go 1.20
|
## explicit; go 1.21
|
||||||
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.12.0
|
# github.com/prometheus/procfs v0.13.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
|
||||||
@@ -49,18 +49,18 @@ github.com/stretchr/testify/assert
|
|||||||
# github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07
|
# github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07
|
||||||
## explicit
|
## explicit
|
||||||
github.com/tarm/serial
|
github.com/tarm/serial
|
||||||
# golang.org/x/net v0.21.0
|
# golang.org/x/net v0.22.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/net/internal/socks
|
golang.org/x/net/internal/socks
|
||||||
golang.org/x/net/proxy
|
golang.org/x/net/proxy
|
||||||
# golang.org/x/sync v0.6.0
|
# golang.org/x/sync v0.6.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/sync/semaphore
|
golang.org/x/sync/semaphore
|
||||||
# golang.org/x/sys v0.17.0
|
# golang.org/x/sys v0.18.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
golang.org/x/sys/unix
|
golang.org/x/sys/unix
|
||||||
golang.org/x/sys/windows
|
golang.org/x/sys/windows
|
||||||
# google.golang.org/protobuf v1.32.0
|
# google.golang.org/protobuf v1.33.0
|
||||||
## explicit; go 1.17
|
## explicit; go 1.17
|
||||||
google.golang.org/protobuf/encoding/protodelim
|
google.golang.org/protobuf/encoding/protodelim
|
||||||
google.golang.org/protobuf/encoding/prototext
|
google.golang.org/protobuf/encoding/prototext
|
||||||
@@ -68,6 +68,7 @@ google.golang.org/protobuf/encoding/protowire
|
|||||||
google.golang.org/protobuf/internal/descfmt
|
google.golang.org/protobuf/internal/descfmt
|
||||||
google.golang.org/protobuf/internal/descopts
|
google.golang.org/protobuf/internal/descopts
|
||||||
google.golang.org/protobuf/internal/detrand
|
google.golang.org/protobuf/internal/detrand
|
||||||
|
google.golang.org/protobuf/internal/editiondefaults
|
||||||
google.golang.org/protobuf/internal/encoding/defval
|
google.golang.org/protobuf/internal/encoding/defval
|
||||||
google.golang.org/protobuf/internal/encoding/messageset
|
google.golang.org/protobuf/internal/encoding/messageset
|
||||||
google.golang.org/protobuf/internal/encoding/tag
|
google.golang.org/protobuf/internal/encoding/tag
|
||||||
|
|||||||
Reference in New Issue
Block a user