mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
vendor: run make vendor-update
This commit is contained in:
parent
ebc1caa5dc
commit
25446a7933
112 changed files with 3076 additions and 1166 deletions
52
go.mod
52
go.mod
|
@ -3,7 +3,7 @@ module github.com/VictoriaMetrics/VictoriaMetrics
|
||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go/storage v1.30.0
|
cloud.google.com/go/storage v1.30.1
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0
|
||||||
github.com/VictoriaMetrics/fastcache v1.12.1
|
github.com/VictoriaMetrics/fastcache v1.12.1
|
||||||
|
@ -13,10 +13,10 @@ require (
|
||||||
github.com/VictoriaMetrics/fasthttp v1.2.0
|
github.com/VictoriaMetrics/fasthttp v1.2.0
|
||||||
github.com/VictoriaMetrics/metrics v1.23.1
|
github.com/VictoriaMetrics/metrics v1.23.1
|
||||||
github.com/VictoriaMetrics/metricsql v0.56.1
|
github.com/VictoriaMetrics/metricsql v0.56.1
|
||||||
github.com/aws/aws-sdk-go-v2 v1.17.6
|
github.com/aws/aws-sdk-go-v2 v1.17.7
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.18.17
|
github.com/aws/aws-sdk-go-v2/config v1.18.19
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.57
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.30.6
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0
|
||||||
github.com/cespare/xxhash/v2 v2.2.0
|
github.com/cespare/xxhash/v2 v2.2.0
|
||||||
github.com/cheggaaa/pb/v3 v3.1.2
|
github.com/cheggaaa/pb/v3 v3.1.2
|
||||||
github.com/gogo/protobuf v1.3.2
|
github.com/gogo/protobuf v1.3.2
|
||||||
|
@ -24,7 +24,7 @@ require (
|
||||||
github.com/googleapis/gax-go/v2 v2.8.0
|
github.com/googleapis/gax-go/v2 v2.8.0
|
||||||
github.com/influxdata/influxdb v1.11.0
|
github.com/influxdata/influxdb v1.11.0
|
||||||
github.com/klauspost/compress v1.16.3
|
github.com/klauspost/compress v1.16.3
|
||||||
github.com/prometheus/prometheus v0.42.0
|
github.com/prometheus/prometheus v0.43.0
|
||||||
github.com/urfave/cli/v2 v2.25.0
|
github.com/urfave/cli/v2 v2.25.0
|
||||||
github.com/valyala/fastjson v1.6.4
|
github.com/valyala/fastjson v1.6.4
|
||||||
github.com/valyala/fastrand v1.1.0
|
github.com/valyala/fastrand v1.1.0
|
||||||
|
@ -35,33 +35,33 @@ require (
|
||||||
golang.org/x/net v0.8.0
|
golang.org/x/net v0.8.0
|
||||||
golang.org/x/oauth2 v0.6.0
|
golang.org/x/oauth2 v0.6.0
|
||||||
golang.org/x/sys v0.6.0
|
golang.org/x/sys v0.6.0
|
||||||
google.golang.org/api v0.113.0
|
google.golang.org/api v0.114.0
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go v0.110.0 // indirect
|
cloud.google.com/go v0.110.0 // indirect
|
||||||
cloud.google.com/go/compute v1.18.0 // indirect
|
cloud.google.com/go/compute v1.19.0 // indirect
|
||||||
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
||||||
cloud.google.com/go/iam v0.13.0 // indirect
|
cloud.google.com/go/iam v0.13.0 // indirect
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.2.0 // indirect
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.2.0 // indirect
|
||||||
github.com/VividCortex/ewma v1.2.0 // indirect
|
github.com/VividCortex/ewma v1.2.0 // indirect
|
||||||
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
|
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
|
||||||
github.com/aws/aws-sdk-go v1.44.222 // indirect
|
github.com/aws/aws-sdk-go v1.44.229 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.13.17 // indirect
|
github.com/aws/aws-sdk-go-v2/credentials v1.13.18 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.0 // indirect
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.22 // indirect
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.25 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.24 // indirect
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.12.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 // indirect
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 // indirect
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.18.6 // indirect
|
github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 // indirect
|
||||||
github.com/aws/smithy-go v1.13.5 // indirect
|
github.com/aws/smithy-go v1.13.5 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
||||||
|
@ -82,7 +82,7 @@ require (
|
||||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||||
github.com/jpillora/backoff v1.0.0 // indirect
|
github.com/jpillora/backoff v1.0.0 // indirect
|
||||||
github.com/mattn/go-colorable v0.1.13 // indirect
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.17 // indirect
|
github.com/mattn/go-isatty v0.0.18 // indirect
|
||||||
github.com/mattn/go-runewidth v0.0.14 // indirect
|
github.com/mattn/go-runewidth v0.0.14 // indirect
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||||
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
|
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
|
||||||
|
@ -106,14 +106,14 @@ require (
|
||||||
go.opentelemetry.io/otel/trace v1.14.0 // indirect
|
go.opentelemetry.io/otel/trace v1.14.0 // indirect
|
||||||
go.uber.org/atomic v1.10.0 // indirect
|
go.uber.org/atomic v1.10.0 // indirect
|
||||||
go.uber.org/goleak v1.2.1 // indirect
|
go.uber.org/goleak v1.2.1 // indirect
|
||||||
golang.org/x/exp v0.0.0-20230315142452-642cacee5cc0 // indirect
|
golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect
|
||||||
golang.org/x/sync v0.1.0 // indirect
|
golang.org/x/sync v0.1.0 // indirect
|
||||||
golang.org/x/text v0.8.0 // indirect
|
golang.org/x/text v0.8.0 // indirect
|
||||||
golang.org/x/time v0.3.0 // indirect
|
golang.org/x/time v0.3.0 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
|
google.golang.org/genproto v0.0.0-20230323212658-478b75c54725 // indirect
|
||||||
google.golang.org/grpc v1.53.0 // indirect
|
google.golang.org/grpc v1.54.0 // indirect
|
||||||
google.golang.org/protobuf v1.29.1 // indirect
|
google.golang.org/protobuf v1.30.0 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
|
173
go.sum
173
go.sum
|
@ -21,8 +21,8 @@ cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvf
|
||||||
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
|
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
|
||||||
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
|
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
|
||||||
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
|
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
|
||||||
cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY=
|
cloud.google.com/go/compute v1.19.0 h1:+9zda3WGgW1ZSTlVppLCYFIr48Pa35q1uG2N1itbCEQ=
|
||||||
cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs=
|
cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU=
|
||||||
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
|
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
|
||||||
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
|
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
|
||||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
||||||
|
@ -39,8 +39,8 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo
|
||||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
||||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||||
cloud.google.com/go/storage v1.30.0 h1:g1yrbxAWOrvg/594228pETWkOi00MLTrOWfh56veU5o=
|
cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM=
|
||||||
cloud.google.com/go/storage v1.30.0/go.mod h1:xAVretHSROm1BQX4IIsoVgJqw0LqOyX+I/O2GzRAzdE=
|
cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E=
|
||||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||||
github.com/Azure/azure-sdk-for-go v65.0.0+incompatible h1:HzKLt3kIwMm4KeJYTdx9EbjRYTySD/t8i1Ee/W5EGXw=
|
github.com/Azure/azure-sdk-for-go v65.0.0+incompatible h1:HzKLt3kIwMm4KeJYTdx9EbjRYTySD/t8i1Ee/W5EGXw=
|
||||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY=
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY=
|
||||||
|
@ -61,7 +61,7 @@ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUM
|
||||||
github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE=
|
github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/Microsoft/go-winio v0.5.1 h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY=
|
github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg=
|
||||||
github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40=
|
github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40=
|
||||||
github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o=
|
github.com/VictoriaMetrics/fastcache v1.12.1/go.mod h1:tX04vaqcNoQeGLD+ra5pU5sWkuxnzWhEzLwhP9w653o=
|
||||||
github.com/VictoriaMetrics/fasthttp v1.2.0 h1:nd9Wng4DlNtaI27WlYh5mGXCJOmee/2c2blTJwfyU9I=
|
github.com/VictoriaMetrics/fasthttp v1.2.0 h1:nd9Wng4DlNtaI27WlYh5mGXCJOmee/2c2blTJwfyU9I=
|
||||||
|
@ -84,46 +84,46 @@ github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah
|
||||||
github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
|
github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
|
||||||
github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
|
||||||
github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
|
github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
|
||||||
github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo=
|
github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=
|
||||||
github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
||||||
github.com/aws/aws-sdk-go v1.44.222 h1:hagcC+MrGo60DKEbX0g6/ge4pIj7vBbsIb+vrhA/54I=
|
github.com/aws/aws-sdk-go v1.44.229 h1:lku0ZSHRzj/qtFVM//QE8VjV6kvJ6CFijDZSsjNaD9A=
|
||||||
github.com/aws/aws-sdk-go v1.44.222/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
|
github.com/aws/aws-sdk-go v1.44.229/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.17.6 h1:Y773UK7OBqhzi5VDXMi1zVGsoj+CVHs2eaC2bDsLwi0=
|
github.com/aws/aws-sdk-go-v2 v1.17.7 h1:CLSjnhJSTSogvqUGhIC6LqFKATMRexcxLZ0i/Nzk9Eg=
|
||||||
github.com/aws/aws-sdk-go-v2 v1.17.6/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
|
github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs=
|
||||||
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno=
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.18.17 h1:jwTkhULSrbr/SQA8tfdYqZxpG8YsRycmIXxJcbrqY5E=
|
github.com/aws/aws-sdk-go-v2/config v1.18.19 h1:AqFK6zFNtq4i1EYu+eC7lcKHYnZagMn6SW171la0bGw=
|
||||||
github.com/aws/aws-sdk-go-v2/config v1.18.17/go.mod h1:Lj3E7XcxJnxMa+AYo89YiL68s1cFJRGduChynYU67VA=
|
github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.13.17 h1:IubQO/RNeIVKF5Jy77w/LfUvmmCxTnk2TP1UZZIMiF4=
|
github.com/aws/aws-sdk-go-v2/credentials v1.13.18 h1:EQMdtHwz0ILTW1hoP+EwuWhwCG1hD6l3+RWFQABET4c=
|
||||||
github.com/aws/aws-sdk-go-v2/credentials v1.13.17/go.mod h1:K9xeFo1g/YPMguMUD69YpwB4Nyi6W/5wn706xIInJFg=
|
github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.0 h1:/2Cb3SK3xVOQA7Xfr5nCWCo5H3UiNINtsVvVdk8sQqA=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 h1:gt57MN3liKiyGopcqgNzJb2+d9MJaKT/q1OksHNXVE4=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.0/go.mod h1:neYVaeKr5eT7BzwULuG2YbLhzWZ22lpjKdCybR7AXrQ=
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.57 h1:ubKS0iZH5veiqb44qeHzaoKNPvCZQeBVFw4JDhfeWjk=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc=
|
||||||
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.57/go.mod h1:dRBjXtcjmYglxVHpdoGGVWvZumDC27I2GLDGI0Uw4RQ=
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30 h1:y+8n9AGDjikyXoMBTRaHHHSaFEB8267ykmvyPodJfys=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 h1:sJLYcS+eZn5EeNINGHSCRAwUJMFVqklwkH36Vbyai7M=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.30/go.mod h1:LUBAO3zNXQjoONBKn/kR1y0Q4cj/D02Ts0uHYjcCQLM=
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24 h1:r+Kv+SEJquhAZXaJ7G4u44cIwXV3f8K+N482NNAzJZA=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 h1:1mnRASEKnkqsntcxHaysxwgVoUUp5dkiB+l3llKnqyg=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.24/go.mod h1:gAuCezX/gob6BSMbItsSlMb6WZGV7K2+fWOvk8xBSto=
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31 h1:hf+Vhp5WtTdcSdE+yEcUz8L73sAzN0R+0jQv+Z51/mI=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 h1:p5luUImdIqywn6JpQsW3tq5GNOxKmOnEpybzPx+d1lk=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.31/go.mod h1:5zUjguZfG5qjhG9/wqmuyHRyUftl2B5Cp6NNxNC6kRA=
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.22 h1:lTqBRUuy8oLhBsnnVZf14uRbIHPHCrGqg4Plc8gU/1U=
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk=
|
||||||
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.22/go.mod h1:YsOa3tFriwWNvBPYHXM5ARiU2yqBNWPWeUiq+4i7Na0=
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8=
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.25 h1:B/hO3jfWRm7hP00UeieNlI5O2xP5WJ27tyJG5lzc7AM=
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.25/go.mod h1:54K1zgxK/lai3a4HosE4IKBwZsP/5YAJ6dzJfwsjJ0U=
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24 h1:c5qGfdbCHav6viBwiyDns3OXqhqAbGjfIB4uVu2ayhk=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 h1:5LHn8JQ0qvjD9L9JhMtylnkcw7j05GDZqM9Oin6hpr0=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.24/go.mod h1:HMA4FZG6fyib+NDo5bpIxX1EhYjrAOveZJY2YR0xrNE=
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.24 h1:i4RH8DLv/BHY0fCrXYQDr+DGnWzaxB3Ee/esxUaSavk=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU=
|
||||||
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.24/go.mod h1:N8X45/o2cngvjCYi2ZnvI0P4mU4ZRJfEYC3maCSsPyw=
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.30.6 h1:zzTm99krKsFcF4N7pu2z17yCcAZpQYZ7jnJZPIgEMXE=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ=
|
||||||
github.com/aws/aws-sdk-go-v2/service/s3 v1.30.6/go.mod h1:PudwVKUTApfm0nYaPutOXaKdPKTlZYClGBQpVIRdcbs=
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.12.5 h1:bdKIX6SVF3nc3xJFw6Nf0igzS6Ff/louGq8Z6VP/3Hs=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 h1:5V7DWLBd7wTELVz5bPpwzYy/sikk0gsgZfj40X+l5OI=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sso v1.12.5/go.mod h1:vuWiaDB30M/QTC+lI3Wj6S/zb7tpUK2MSYgy3Guh2L0=
|
github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5 h1:xLPZMyuZ4GuqRCIec/zWuIhRFPXh2UOJdLXBSi64ZWQ=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 h1:B8cauxOH1W1v7rd8RdI/MWnoR4Ze0wIHWrb90qczxj4=
|
||||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.5/go.mod h1:QjxpHmCwAg0ESGtPQnLIVp7SedTOBMYy+Slr3IfMKeI=
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.18.6 h1:rIFn5J3yDoeuKCE9sESXqM5POTAhOP1du3bv/qTL+tE=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 h1:bWNgNdRko2x6gqa0blfATqAZKZokPIeM1vfmQt2pnvM=
|
||||||
github.com/aws/aws-sdk-go-v2/service/sts v1.18.6/go.mod h1:48WJ9l3dwP0GSHWGc5sFGGlCkuA82Mc2xnw+T6Q8aDw=
|
github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI=
|
||||||
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
|
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
|
||||||
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
|
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
|
@ -141,7 +141,7 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P
|
||||||
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b h1:ACGZRIr7HsgBKHsueQ1yM4WaVaXh21ynwqsF8M8tXhA=
|
github.com/cncf/xds/go v0.0.0-20230112175826-46e39c7b9b43 h1:XP+uhjN0yBCN/tPkr8Z0BNDc5rZam9RG6UWyf2FrSQ0=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
|
github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
@ -149,18 +149,18 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE=
|
github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE=
|
||||||
github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA=
|
github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA=
|
||||||
github.com/digitalocean/godo v1.95.0 h1:S48/byPKui7RHZc1wYEPfRvkcEvToADNb5I3guu95xg=
|
github.com/digitalocean/godo v1.97.0 h1:p9w1yCcWMZcxFSLPToNGXA96WfUVLXqoHti6GzVomL4=
|
||||||
github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
|
github.com/dnaeon/go-vcr v1.1.0 h1:ReYa/UBrRyQdant9B4fNHGoCNKw6qh6P0fsdGmZpR7c=
|
||||||
github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
|
github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
|
||||||
github.com/docker/docker v20.10.23+incompatible h1:1ZQUUYAdh+oylOT85aA2ZcfRp22jmLhoaEcVEfK8dyA=
|
github.com/docker/docker v23.0.1+incompatible h1:vjgvJZxprTTE1A37nm+CLNAdwu6xZekyoiVlUZEINcY=
|
||||||
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
||||||
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
|
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
|
||||||
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
|
github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ=
|
||||||
github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
|
github.com/emicklei/go-restful/v3 v3.10.1 h1:rc42Y5YTp7Am7CS630D7JmhRjq4UlEUuEKfrDac4bSQ=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||||
github.com/envoyproxy/go-control-plane v0.10.3 h1:xdCVXxEe0Y3FQith+0cj2irwZudqGYvecuLB1HtdexY=
|
github.com/envoyproxy/go-control-plane v0.11.0 h1:jtLewhRR2vMRNnq2ZZUoCjUlgut+Y0+sDDWPOfwOi1o=
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY=
|
github.com/envoyproxy/protoc-gen-validate v0.9.1 h1:PS7VIOgmSVhWUEeZwTe7z7zouA22Cr590PzXKbZHOVY=
|
||||||
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
|
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
|
||||||
|
@ -186,17 +186,17 @@ github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
|
||||||
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||||
github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY=
|
github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
|
||||||
github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA=
|
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
|
||||||
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
|
github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
|
||||||
github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48 h1:JVrqSeQfdhYRFk24TvhTZWU0q8lfCojxZQFi3Ou7+uY=
|
github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/go-zookeeper/zk v1.0.3 h1:7M2kwOsc//9VeeFiPtf+uSJlVpU66x9Ba5+8XK7/TDg=
|
github.com/go-zookeeper/zk v1.0.3 h1:7M2kwOsc//9VeeFiPtf+uSJlVpU66x9Ba5+8XK7/TDg=
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||||
github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
|
github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
|
||||||
github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU=
|
github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||||
|
@ -232,7 +232,7 @@ github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
||||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
|
github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
|
@ -270,30 +270,30 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+
|
||||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||||
github.com/googleapis/gax-go/v2 v2.8.0 h1:UBtEZqx1bjXtOQ5BVTkuYghXrr3N4V123VKJK67vJZc=
|
github.com/googleapis/gax-go/v2 v2.8.0 h1:UBtEZqx1bjXtOQ5BVTkuYghXrr3N4V123VKJK67vJZc=
|
||||||
github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
|
github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI=
|
||||||
github.com/gophercloud/gophercloud v1.1.1 h1:MuGyqbSxiuVBqkPZ3+Nhbytk1xZxhmfCB2Rg1cJWFWM=
|
github.com/gophercloud/gophercloud v1.2.0 h1:1oXyj4g54KBg/kFtCdMM6jtxSzeIyg8wv4z1HoGPp1E=
|
||||||
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
|
||||||
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd h1:PpuIBO5P3e9hpqBD0O/HjhShYuM6XE0i/lbE6J94kww=
|
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd h1:PpuIBO5P3e9hpqBD0O/HjhShYuM6XE0i/lbE6J94kww=
|
||||||
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A=
|
github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A=
|
||||||
github.com/hashicorp/consul/api v1.18.0 h1:R7PPNzTCeN6VuQNDwwhZWJvzCtGSrNpJqfb22h3yH9g=
|
github.com/hashicorp/consul/api v1.20.0 h1:9IHTjNVSZ7MIwjlW3N3a7iGiykCMDpxZu8jsxFJh0yc=
|
||||||
github.com/hashicorp/cronexpr v1.1.1 h1:NJZDd87hGXjoZBdvyCF9mX4DCq5Wy7+A/w+A7q0wn6c=
|
github.com/hashicorp/cronexpr v1.1.1 h1:NJZDd87hGXjoZBdvyCF9mX4DCq5Wy7+A/w+A7q0wn6c=
|
||||||
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
|
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
|
||||||
github.com/hashicorp/go-hclog v0.16.2 h1:K4ev2ib4LdQETX5cSZBG0DVLk1jwGqSPXBjdah3veNs=
|
github.com/hashicorp/go-hclog v1.4.0 h1:ctuWFGrhFha8BnnzxqeRGidlEcQkDyL5u8J8t5eA11I=
|
||||||
github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=
|
github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=
|
||||||
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=
|
||||||
github.com/hashicorp/go-retryablehttp v0.7.1 h1:sUiuQAnLlbvmExtFQs72iFW/HXeUn8Z1aJLQ4LJJbTQ=
|
github.com/hashicorp/go-retryablehttp v0.7.2 h1:AcYqCvkpalPnPF2pn0KamgwamS42TqUDDYFRKq/RAd0=
|
||||||
github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
|
github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
|
||||||
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||||
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
|
||||||
github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4=
|
github.com/hashicorp/golang-lru v0.6.0 h1:uL2shRDx7RTrOrTCUZEGP/wJUFiUI8QT6E7z5o8jga4=
|
||||||
github.com/hashicorp/nomad/api v0.0.0-20230124213148-69fd1a0e4bf7 h1:XOdd3JHyeQnBRxotBo9ibxBFiYGuYhQU25s/YeV2cTU=
|
github.com/hashicorp/nomad/api v0.0.0-20230308192510-48e7d70fcd4b h1:EkuSTU8c/63q4LMayj8ilgg/4I5PXDFVcnqKfs9qcwI=
|
||||||
github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY=
|
github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY=
|
||||||
github.com/hetznercloud/hcloud-go v1.39.0 h1:RUlzI458nGnPR6dlcZlrsGXYC1hQlFbKdm8tVtEQQB0=
|
github.com/hetznercloud/hcloud-go v1.41.0 h1:KJGFRRc68QiVu4PrEP5BmCQVveCP2CM26UGQUKGpIUs=
|
||||||
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||||
github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
|
github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk=
|
||||||
github.com/influxdata/influxdb v1.11.0 h1:0X+ZsbcOWc6AEi5MHee9BYqXCKmz8IZsljrRYjmV8Qg=
|
github.com/influxdata/influxdb v1.11.0 h1:0X+ZsbcOWc6AEi5MHee9BYqXCKmz8IZsljrRYjmV8Qg=
|
||||||
github.com/influxdata/influxdb v1.11.0/go.mod h1:V93tJcidY0Zh0LtSONZWnXXGDyt20dtVf+Ddp4EnhaA=
|
github.com/influxdata/influxdb v1.11.0/go.mod h1:V93tJcidY0Zh0LtSONZWnXXGDyt20dtVf+Ddp4EnhaA=
|
||||||
github.com/ionos-cloud/sdk-go/v6 v6.1.3 h1:vb6yqdpiqaytvreM0bsn2pXw+1YDvEk2RKSmBAQvgDQ=
|
github.com/ionos-cloud/sdk-go/v6 v6.1.4 h1:BJHhFA8Q1SZC7VOXqKKr2BV2ysQ2/4hlk1e4hZte7GY=
|
||||||
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
|
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
|
||||||
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
||||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
|
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
|
||||||
|
@ -325,19 +325,19 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
|
||||||
github.com/linode/linodego v1.12.0 h1:33mOIrZ+gVva14gyJMKPZ85mQGovAvZCEP1ftgmFBjA=
|
github.com/linode/linodego v1.14.1 h1:uGxQyy0BidoEpLGdvfi4cPgEW+0YUFsEGrLEhcTfjNc=
|
||||||
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
|
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
|
||||||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||||
github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
|
github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
|
||||||
github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||||
github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
|
github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU=
|
||||||
github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
|
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
|
||||||
github.com/miekg/dns v1.1.50 h1:DQUfb9uc6smULcREF09Uc+/Gd46YWqJd5DbpPE9xkcA=
|
github.com/miekg/dns v1.1.51 h1:0+Xg7vObnhrz/4ZCZcZh7zPXlmU0aveS2HDBd0m0qSo=
|
||||||
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
|
||||||
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
@ -388,19 +388,18 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O
|
||||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||||
github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
|
github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI=
|
||||||
github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
|
github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY=
|
||||||
github.com/prometheus/prometheus v0.42.0 h1:G769v8covTkOiNckXFIwLx01XE04OE6Fr0JPA0oR2nI=
|
github.com/prometheus/prometheus v0.43.0 h1:18iCSfrbAHbXvYFvR38U1Pt4uZmU9SmDcCpCrBKUiGg=
|
||||||
github.com/prometheus/prometheus v0.42.0/go.mod h1:Pfqb/MLnnR2KK+0vchiaH39jXxvLMBk+3lnIGP4N7Vk=
|
github.com/prometheus/prometheus v0.43.0/go.mod h1:2BA14LgBeqlPuzObSEbh+Y+JwLH2GcqDlJKbF2sA6FM=
|
||||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||||
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
|
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
|
||||||
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
|
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
|
||||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.12 h1:Aaz4T7dZp7cB2cv7D/tGtRdSMh48sRaDYr7Jh0HV4qQ=
|
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14 h1:yFl3jyaSVLNYXlnNYM5z2pagEk1dYQhfr1p20T1NyKY=
|
||||||
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
|
||||||
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
|
||||||
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
|
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
@ -468,7 +467,7 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
|
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||||
golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU=
|
golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
|
@ -479,8 +478,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
|
||||||
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
|
||||||
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
|
||||||
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
|
||||||
golang.org/x/exp v0.0.0-20230315142452-642cacee5cc0 h1:pVgRXcIictcr+lBQIFeiwuwtDIs4eL21OuM9nyAADmo=
|
golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug=
|
||||||
golang.org/x/exp v0.0.0-20230315142452-642cacee5cc0/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
|
golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
|
||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
|
@ -502,7 +501,7 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
|
||||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
|
golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
@ -668,7 +667,7 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc
|
||||||
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
|
golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||||
|
@ -691,8 +690,8 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M
|
||||||
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
||||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
||||||
google.golang.org/api v0.113.0 h1:3zLZyS9hgne8yoXUFy871yWdQcA2tA6wp59aaCT6Cp4=
|
google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE=
|
||||||
google.golang.org/api v0.113.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg=
|
google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg=
|
||||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||||
|
@ -730,8 +729,8 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
|
||||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA=
|
google.golang.org/genproto v0.0.0-20230323212658-478b75c54725 h1:VmCWItVXcKboEMCwZaWge+1JLiTCQSngZeINF+wzO+g=
|
||||||
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s=
|
google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||||
|
@ -745,8 +744,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
|
||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||||
google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
|
google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag=
|
||||||
google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
|
google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
|
@ -759,8 +758,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
|
||||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM=
|
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||||
google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||||
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-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
@ -768,7 +767,7 @@ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8
|
||||||
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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
|
||||||
gopkg.in/ini.v1 v1.66.6 h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI=
|
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
@ -787,13 +786,13 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||||
k8s.io/api v0.26.1 h1:f+SWYiPd/GsiWwVRz+NbFyCgvv75Pk9NK6dlkZgpCRQ=
|
k8s.io/api v0.26.2 h1:dM3cinp3PGB6asOySalOZxEG4CZ0IAdJsrYZXE/ovGQ=
|
||||||
k8s.io/apimachinery v0.26.1 h1:8EZ/eGJL+hY/MYCNwhmDzVqq2lPl3N3Bo8rvweJwXUQ=
|
k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ=
|
||||||
k8s.io/client-go v0.26.1 h1:87CXzYJnAMGaa/IDDfRdhTzxk/wzGZ+/HUQpqgVSZXU=
|
k8s.io/client-go v0.26.2 h1:s1WkVujHX3kTp4Zn4yGNFK+dlDXy1bAAkIl+cFAiuYI=
|
||||||
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
|
k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8=
|
||||||
k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4=
|
k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
|
||||||
k8s.io/kube-openapi v0.0.0-20221207184640-f3cff1453715 h1:tBEbstoM+K0FiBV5KGAKQ0kuvf54v/hwpldiJt69w1s=
|
k8s.io/kube-openapi v0.0.0-20230303024457-afdc3dddf62d h1:VcFq5n7wCJB2FQMCIHfC+f+jNcGgNMar1uKd6rVlifU=
|
||||||
k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 h1:KTgPnR10d5zhztWptI952TNtt/4u5h3IzDXkdIMuo2Y=
|
k8s.io/utils v0.0.0-20230308161112-d77c459e9343 h1:m7tbIjXGcGIAtpmQr7/NAi7RsWoW3E7Zcm4jI1HicTc=
|
||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
|
|
2
vendor/cloud.google.com/go/compute/internal/version.go
generated
vendored
2
vendor/cloud.google.com/go/compute/internal/version.go
generated
vendored
|
@ -15,4 +15,4 @@
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
// Version is the current tagged release of the library.
|
// Version is the current tagged release of the library.
|
||||||
const Version = "1.18.0"
|
const Version = "1.19.0"
|
||||||
|
|
9
vendor/cloud.google.com/go/storage/CHANGES.md
generated
vendored
9
vendor/cloud.google.com/go/storage/CHANGES.md
generated
vendored
|
@ -1,6 +1,15 @@
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
|
|
||||||
|
## [1.30.1](https://github.com/googleapis/google-cloud-go/compare/storage/v1.30.0...storage/v1.30.1) (2023-03-21)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **storage:** Retract versions with Copier bug ([#7583](https://github.com/googleapis/google-cloud-go/issues/7583)) ([9c10b6f](https://github.com/googleapis/google-cloud-go/commit/9c10b6f8a54cb8447260148b5e4a9b5160281020))
|
||||||
|
* Versions v1.25.0-v1.27.0 are retracted due to [#6857](https://github.com/googleapis/google-cloud-go/issues/6857).
|
||||||
|
* **storage:** SignedURL v4 allows headers with colons in value ([#7603](https://github.com/googleapis/google-cloud-go/issues/7603)) ([6b50f9b](https://github.com/googleapis/google-cloud-go/commit/6b50f9b368f5b271ade1706c342865cef46712e6))
|
||||||
|
|
||||||
## [1.30.0](https://github.com/googleapis/google-cloud-go/compare/storage/v1.29.0...storage/v1.30.0) (2023-03-15)
|
## [1.30.0](https://github.com/googleapis/google-cloud-go/compare/storage/v1.29.0...storage/v1.30.0) (2023-03-15)
|
||||||
|
|
||||||
|
|
||||||
|
|
2
vendor/cloud.google.com/go/storage/internal/apiv2/storage_client.go
generated
vendored
2
vendor/cloud.google.com/go/storage/internal/apiv2/storage_client.go
generated
vendored
|
@ -24,7 +24,7 @@ import (
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"cloud.google.com/go/iam/apiv1/iampb"
|
iampb "cloud.google.com/go/iam/apiv1/iampb"
|
||||||
storagepb "cloud.google.com/go/storage/internal/apiv2/stubs"
|
storagepb "cloud.google.com/go/storage/internal/apiv2/stubs"
|
||||||
gax "github.com/googleapis/gax-go/v2"
|
gax "github.com/googleapis/gax-go/v2"
|
||||||
"google.golang.org/api/iterator"
|
"google.golang.org/api/iterator"
|
||||||
|
|
54
vendor/cloud.google.com/go/storage/internal/apiv2/stubs/storage.pb.go
generated
vendored
54
vendor/cloud.google.com/go/storage/internal/apiv2/stubs/storage.pb.go
generated
vendored
|
@ -25,7 +25,7 @@ import (
|
||||||
reflect "reflect"
|
reflect "reflect"
|
||||||
sync "sync"
|
sync "sync"
|
||||||
|
|
||||||
v1 "cloud.google.com/go/iam/apiv1/iampb"
|
iampb "cloud.google.com/go/iam/apiv1/iampb"
|
||||||
_ "google.golang.org/genproto/googleapis/api/annotations"
|
_ "google.golang.org/genproto/googleapis/api/annotations"
|
||||||
date "google.golang.org/genproto/googleapis/type/date"
|
date "google.golang.org/genproto/googleapis/type/date"
|
||||||
grpc "google.golang.org/grpc"
|
grpc "google.golang.org/grpc"
|
||||||
|
@ -8270,12 +8270,12 @@ var file_google_storage_v2_storage_proto_goTypes = []interface{}{
|
||||||
(*timestamppb.Timestamp)(nil), // 76: google.protobuf.Timestamp
|
(*timestamppb.Timestamp)(nil), // 76: google.protobuf.Timestamp
|
||||||
(*durationpb.Duration)(nil), // 77: google.protobuf.Duration
|
(*durationpb.Duration)(nil), // 77: google.protobuf.Duration
|
||||||
(*date.Date)(nil), // 78: google.type.Date
|
(*date.Date)(nil), // 78: google.type.Date
|
||||||
(*v1.GetIamPolicyRequest)(nil), // 79: google.iam.v1.GetIamPolicyRequest
|
(*iampb.GetIamPolicyRequest)(nil), // 79: google.iam.v1.GetIamPolicyRequest
|
||||||
(*v1.SetIamPolicyRequest)(nil), // 80: google.iam.v1.SetIamPolicyRequest
|
(*iampb.SetIamPolicyRequest)(nil), // 80: google.iam.v1.SetIamPolicyRequest
|
||||||
(*v1.TestIamPermissionsRequest)(nil), // 81: google.iam.v1.TestIamPermissionsRequest
|
(*iampb.TestIamPermissionsRequest)(nil), // 81: google.iam.v1.TestIamPermissionsRequest
|
||||||
(*emptypb.Empty)(nil), // 82: google.protobuf.Empty
|
(*emptypb.Empty)(nil), // 82: google.protobuf.Empty
|
||||||
(*v1.Policy)(nil), // 83: google.iam.v1.Policy
|
(*iampb.Policy)(nil), // 83: google.iam.v1.Policy
|
||||||
(*v1.TestIamPermissionsResponse)(nil), // 84: google.iam.v1.TestIamPermissionsResponse
|
(*iampb.TestIamPermissionsResponse)(nil), // 84: google.iam.v1.TestIamPermissionsResponse
|
||||||
}
|
}
|
||||||
var file_google_storage_v2_storage_proto_depIdxs = []int32{
|
var file_google_storage_v2_storage_proto_depIdxs = []int32{
|
||||||
75, // 0: google.storage.v2.GetBucketRequest.read_mask:type_name -> google.protobuf.FieldMask
|
75, // 0: google.storage.v2.GetBucketRequest.read_mask:type_name -> google.protobuf.FieldMask
|
||||||
|
@ -9372,18 +9372,18 @@ type StorageClient interface {
|
||||||
// The `resource` field in the request should be
|
// The `resource` field in the request should be
|
||||||
// projects/_/buckets/<bucket_name> for a bucket or
|
// projects/_/buckets/<bucket_name> for a bucket or
|
||||||
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
||||||
GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error)
|
GetIamPolicy(ctx context.Context, in *iampb.GetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error)
|
||||||
// Updates an IAM policy for the specified bucket or object.
|
// Updates an IAM policy for the specified bucket or object.
|
||||||
// The `resource` field in the request should be
|
// The `resource` field in the request should be
|
||||||
// projects/_/buckets/<bucket_name> for a bucket or
|
// projects/_/buckets/<bucket_name> for a bucket or
|
||||||
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
||||||
SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error)
|
SetIamPolicy(ctx context.Context, in *iampb.SetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error)
|
||||||
// Tests a set of permissions on the given bucket or object to see which, if
|
// Tests a set of permissions on the given bucket or object to see which, if
|
||||||
// any, are held by the caller.
|
// any, are held by the caller.
|
||||||
// The `resource` field in the request should be
|
// The `resource` field in the request should be
|
||||||
// projects/_/buckets/<bucket_name> for a bucket or
|
// projects/_/buckets/<bucket_name> for a bucket or
|
||||||
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
||||||
TestIamPermissions(ctx context.Context, in *v1.TestIamPermissionsRequest, opts ...grpc.CallOption) (*v1.TestIamPermissionsResponse, error)
|
TestIamPermissions(ctx context.Context, in *iampb.TestIamPermissionsRequest, opts ...grpc.CallOption) (*iampb.TestIamPermissionsResponse, error)
|
||||||
// Updates a bucket. Equivalent to JSON API's storage.buckets.patch method.
|
// Updates a bucket. Equivalent to JSON API's storage.buckets.patch method.
|
||||||
UpdateBucket(ctx context.Context, in *UpdateBucketRequest, opts ...grpc.CallOption) (*Bucket, error)
|
UpdateBucket(ctx context.Context, in *UpdateBucketRequest, opts ...grpc.CallOption) (*Bucket, error)
|
||||||
// Permanently deletes a NotificationConfig.
|
// Permanently deletes a NotificationConfig.
|
||||||
|
@ -9556,8 +9556,8 @@ func (c *storageClient) LockBucketRetentionPolicy(ctx context.Context, in *LockB
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *storageClient) GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) {
|
func (c *storageClient) GetIamPolicy(ctx context.Context, in *iampb.GetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error) {
|
||||||
out := new(v1.Policy)
|
out := new(iampb.Policy)
|
||||||
err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/GetIamPolicy", in, out, opts...)
|
err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/GetIamPolicy", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -9565,8 +9565,8 @@ func (c *storageClient) GetIamPolicy(ctx context.Context, in *v1.GetIamPolicyReq
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *storageClient) SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyRequest, opts ...grpc.CallOption) (*v1.Policy, error) {
|
func (c *storageClient) SetIamPolicy(ctx context.Context, in *iampb.SetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error) {
|
||||||
out := new(v1.Policy)
|
out := new(iampb.Policy)
|
||||||
err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/SetIamPolicy", in, out, opts...)
|
err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/SetIamPolicy", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -9574,8 +9574,8 @@ func (c *storageClient) SetIamPolicy(ctx context.Context, in *v1.SetIamPolicyReq
|
||||||
return out, nil
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *storageClient) TestIamPermissions(ctx context.Context, in *v1.TestIamPermissionsRequest, opts ...grpc.CallOption) (*v1.TestIamPermissionsResponse, error) {
|
func (c *storageClient) TestIamPermissions(ctx context.Context, in *iampb.TestIamPermissionsRequest, opts ...grpc.CallOption) (*iampb.TestIamPermissionsResponse, error) {
|
||||||
out := new(v1.TestIamPermissionsResponse)
|
out := new(iampb.TestIamPermissionsResponse)
|
||||||
err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/TestIamPermissions", in, out, opts...)
|
err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/TestIamPermissions", in, out, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -9845,18 +9845,18 @@ type StorageServer interface {
|
||||||
// The `resource` field in the request should be
|
// The `resource` field in the request should be
|
||||||
// projects/_/buckets/<bucket_name> for a bucket or
|
// projects/_/buckets/<bucket_name> for a bucket or
|
||||||
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
||||||
GetIamPolicy(context.Context, *v1.GetIamPolicyRequest) (*v1.Policy, error)
|
GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest) (*iampb.Policy, error)
|
||||||
// Updates an IAM policy for the specified bucket or object.
|
// Updates an IAM policy for the specified bucket or object.
|
||||||
// The `resource` field in the request should be
|
// The `resource` field in the request should be
|
||||||
// projects/_/buckets/<bucket_name> for a bucket or
|
// projects/_/buckets/<bucket_name> for a bucket or
|
||||||
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
||||||
SetIamPolicy(context.Context, *v1.SetIamPolicyRequest) (*v1.Policy, error)
|
SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest) (*iampb.Policy, error)
|
||||||
// Tests a set of permissions on the given bucket or object to see which, if
|
// Tests a set of permissions on the given bucket or object to see which, if
|
||||||
// any, are held by the caller.
|
// any, are held by the caller.
|
||||||
// The `resource` field in the request should be
|
// The `resource` field in the request should be
|
||||||
// projects/_/buckets/<bucket_name> for a bucket or
|
// projects/_/buckets/<bucket_name> for a bucket or
|
||||||
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
// projects/_/buckets/<bucket_name>/objects/<object_name> for an object.
|
||||||
TestIamPermissions(context.Context, *v1.TestIamPermissionsRequest) (*v1.TestIamPermissionsResponse, error)
|
TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error)
|
||||||
// Updates a bucket. Equivalent to JSON API's storage.buckets.patch method.
|
// Updates a bucket. Equivalent to JSON API's storage.buckets.patch method.
|
||||||
UpdateBucket(context.Context, *UpdateBucketRequest) (*Bucket, error)
|
UpdateBucket(context.Context, *UpdateBucketRequest) (*Bucket, error)
|
||||||
// Permanently deletes a NotificationConfig.
|
// Permanently deletes a NotificationConfig.
|
||||||
|
@ -9995,13 +9995,13 @@ func (*UnimplementedStorageServer) ListBuckets(context.Context, *ListBucketsRequ
|
||||||
func (*UnimplementedStorageServer) LockBucketRetentionPolicy(context.Context, *LockBucketRetentionPolicyRequest) (*Bucket, error) {
|
func (*UnimplementedStorageServer) LockBucketRetentionPolicy(context.Context, *LockBucketRetentionPolicyRequest) (*Bucket, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method LockBucketRetentionPolicy not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method LockBucketRetentionPolicy not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedStorageServer) GetIamPolicy(context.Context, *v1.GetIamPolicyRequest) (*v1.Policy, error) {
|
func (*UnimplementedStorageServer) GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest) (*iampb.Policy, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method GetIamPolicy not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method GetIamPolicy not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedStorageServer) SetIamPolicy(context.Context, *v1.SetIamPolicyRequest) (*v1.Policy, error) {
|
func (*UnimplementedStorageServer) SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest) (*iampb.Policy, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method SetIamPolicy not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method SetIamPolicy not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedStorageServer) TestIamPermissions(context.Context, *v1.TestIamPermissionsRequest) (*v1.TestIamPermissionsResponse, error) {
|
func (*UnimplementedStorageServer) TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) {
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method TestIamPermissions not implemented")
|
return nil, status.Errorf(codes.Unimplemented, "method TestIamPermissions not implemented")
|
||||||
}
|
}
|
||||||
func (*UnimplementedStorageServer) UpdateBucket(context.Context, *UpdateBucketRequest) (*Bucket, error) {
|
func (*UnimplementedStorageServer) UpdateBucket(context.Context, *UpdateBucketRequest) (*Bucket, error) {
|
||||||
|
@ -10166,7 +10166,7 @@ func _Storage_LockBucketRetentionPolicy_Handler(srv interface{}, ctx context.Con
|
||||||
}
|
}
|
||||||
|
|
||||||
func _Storage_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _Storage_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(v1.GetIamPolicyRequest)
|
in := new(iampb.GetIamPolicyRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -10178,13 +10178,13 @@ func _Storage_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
FullMethod: "/google.storage.v2.Storage/GetIamPolicy",
|
FullMethod: "/google.storage.v2.Storage/GetIamPolicy",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(StorageServer).GetIamPolicy(ctx, req.(*v1.GetIamPolicyRequest))
|
return srv.(StorageServer).GetIamPolicy(ctx, req.(*iampb.GetIamPolicyRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _Storage_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _Storage_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(v1.SetIamPolicyRequest)
|
in := new(iampb.SetIamPolicyRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -10196,13 +10196,13 @@ func _Storage_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec fun
|
||||||
FullMethod: "/google.storage.v2.Storage/SetIamPolicy",
|
FullMethod: "/google.storage.v2.Storage/SetIamPolicy",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(StorageServer).SetIamPolicy(ctx, req.(*v1.SetIamPolicyRequest))
|
return srv.(StorageServer).SetIamPolicy(ctx, req.(*iampb.SetIamPolicyRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
func _Storage_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
func _Storage_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||||
in := new(v1.TestIamPermissionsRequest)
|
in := new(iampb.TestIamPermissionsRequest)
|
||||||
if err := dec(in); err != nil {
|
if err := dec(in); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -10214,7 +10214,7 @@ func _Storage_TestIamPermissions_Handler(srv interface{}, ctx context.Context, d
|
||||||
FullMethod: "/google.storage.v2.Storage/TestIamPermissions",
|
FullMethod: "/google.storage.v2.Storage/TestIamPermissions",
|
||||||
}
|
}
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||||
return srv.(StorageServer).TestIamPermissions(ctx, req.(*v1.TestIamPermissionsRequest))
|
return srv.(StorageServer).TestIamPermissions(ctx, req.(*iampb.TestIamPermissionsRequest))
|
||||||
}
|
}
|
||||||
return interceptor(ctx, in, info, handler)
|
return interceptor(ctx, in, info, handler)
|
||||||
}
|
}
|
||||||
|
|
2
vendor/cloud.google.com/go/storage/internal/version.go
generated
vendored
2
vendor/cloud.google.com/go/storage/internal/version.go
generated
vendored
|
@ -15,4 +15,4 @@
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
// Version is the current tagged release of the library.
|
// Version is the current tagged release of the library.
|
||||||
const Version = "1.30.0"
|
const Version = "1.30.1"
|
||||||
|
|
6
vendor/cloud.google.com/go/storage/storage.go
generated
vendored
6
vendor/cloud.google.com/go/storage/storage.go
generated
vendored
|
@ -539,7 +539,7 @@ func v4SanitizeHeaders(hdrs []string) []string {
|
||||||
sanitizedHeader := strings.TrimSpace(hdr)
|
sanitizedHeader := strings.TrimSpace(hdr)
|
||||||
|
|
||||||
var key, value string
|
var key, value string
|
||||||
headerMatches := strings.Split(sanitizedHeader, ":")
|
headerMatches := strings.SplitN(sanitizedHeader, ":", 2)
|
||||||
if len(headerMatches) < 2 {
|
if len(headerMatches) < 2 {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -653,7 +653,7 @@ var utcNow = func() time.Time {
|
||||||
func extractHeaderNames(kvs []string) []string {
|
func extractHeaderNames(kvs []string) []string {
|
||||||
var res []string
|
var res []string
|
||||||
for _, header := range kvs {
|
for _, header := range kvs {
|
||||||
nameValue := strings.Split(header, ":")
|
nameValue := strings.SplitN(header, ":", 2)
|
||||||
res = append(res, nameValue[0])
|
res = append(res, nameValue[0])
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
|
@ -797,7 +797,7 @@ func sortHeadersByKey(hdrs []string) []string {
|
||||||
headersMap := map[string]string{}
|
headersMap := map[string]string{}
|
||||||
var headersKeys []string
|
var headersKeys []string
|
||||||
for _, h := range hdrs {
|
for _, h := range hdrs {
|
||||||
parts := strings.Split(h, ":")
|
parts := strings.SplitN(h, ":", 2)
|
||||||
k := parts[0]
|
k := parts[0]
|
||||||
v := parts[1]
|
v := parts[1]
|
||||||
headersMap[k] = v
|
headersMap[k] = v
|
||||||
|
|
105
vendor/github.com/aws/aws-sdk-go-v2/CHANGELOG.md
generated
vendored
105
vendor/github.com/aws/aws-sdk-go-v2/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,108 @@
|
||||||
|
# Release (2023-03-21)
|
||||||
|
|
||||||
|
## General Highlights
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
## Module Highlights
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/chimesdkmessaging`: [v1.13.0](service/chimesdkmessaging/CHANGELOG.md#v1130-2023-03-21)
|
||||||
|
* **Feature**: Amazon Chime SDK messaging customers can now manage streaming configuration for messaging data for archival and analysis.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/cleanrooms`: [v1.1.0](service/cleanrooms/CHANGELOG.md#v110-2023-03-21)
|
||||||
|
* **Feature**: GA Release of AWS Clean Rooms, Added Tagging Functionality
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.91.0](service/ec2/CHANGELOG.md#v1910-2023-03-21)
|
||||||
|
* **Feature**: This release adds support for AWS Network Firewall, AWS PrivateLink, and Gateway Load Balancers to Amazon VPC Reachability Analyzer, and it makes the path destination optional as long as a destination address in the filter at source is provided.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/internal/s3shared`: [v1.14.0](service/internal/s3shared/CHANGELOG.md#v1140-2023-03-21)
|
||||||
|
* **Feature**: port v1 sdk 100-continue http header customization for s3 PutObject/UploadPart request and enable user config
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/iotsitewise`: [v1.28.0](service/iotsitewise/CHANGELOG.md#v1280-2023-03-21)
|
||||||
|
* **Feature**: Provide support for tagging of data streams and enabling tag based authorization for property alias
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/mgn`: [v1.18.0](service/mgn/CHANGELOG.md#v1180-2023-03-21)
|
||||||
|
* **Feature**: This release introduces the Import and export feature and expansion of the post-launch actions
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/s3`: [v1.31.0](service/s3/CHANGELOG.md#v1310-2023-03-21)
|
||||||
|
* **Feature**: port v1 sdk 100-continue http header customization for s3 PutObject/UploadPart request and enable user config
|
||||||
|
|
||||||
|
# Release (2023-03-20)
|
||||||
|
|
||||||
|
## Module Highlights
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/applicationautoscaling`: [v1.19.0](service/applicationautoscaling/CHANGELOG.md#v1190-2023-03-20)
|
||||||
|
* **Feature**: With this release customers can now tag their Application Auto Scaling registered targets with key-value pairs and manage IAM permissions for all the tagged resources centrally.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/neptune`: [v1.20.0](service/neptune/CHANGELOG.md#v1200-2023-03-20)
|
||||||
|
* **Feature**: This release makes following few changes. db-cluster-identifier is now a required parameter of create-db-instance. describe-db-cluster will now return PendingModifiedValues and GlobalClusterIdentifier fields in the response.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/s3outposts`: [v1.16.0](service/s3outposts/CHANGELOG.md#v1160-2023-03-20)
|
||||||
|
* **Feature**: S3 On Outposts added support for endpoint status, and a failed endpoint reason, if any
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/workdocs`: [v1.14.0](service/workdocs/CHANGELOG.md#v1140-2023-03-20)
|
||||||
|
* **Feature**: This release adds a new API, SearchResources, which enable users to search through metadata and content of folders, documents, document versions and comments in a WorkDocs site.
|
||||||
|
|
||||||
|
# Release (2023-03-17)
|
||||||
|
|
||||||
|
## Module Highlights
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/billingconductor`: [v1.6.0](service/billingconductor/CHANGELOG.md#v160-2023-03-17)
|
||||||
|
* **Feature**: This release adds a new filter to ListAccountAssociations API and a new filter to ListBillingGroups API.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/configservice`: [v1.30.0](service/configservice/CHANGELOG.md#v1300-2023-03-17)
|
||||||
|
* **Feature**: This release adds resourceType enums for types released from October 2022 through February 2023.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/databasemigrationservice`: [v1.25.0](service/databasemigrationservice/CHANGELOG.md#v1250-2023-03-17)
|
||||||
|
* **Feature**: S3 setting to create AWS Glue Data Catalog. Oracle setting to control conversion of timestamp column. Support for Kafka SASL Plain authentication. Setting to map boolean from PostgreSQL to Redshift. SQL Server settings to force lob lookup on inline LOBs and to control access of database logs.
|
||||||
|
|
||||||
|
# Release (2023-03-16)
|
||||||
|
|
||||||
|
## General Highlights
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
## Module Highlights
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/config`: [v1.18.18](config/CHANGELOG.md#v11818-2023-03-16)
|
||||||
|
* **Bug Fix**: Allow RoleARN to be set as functional option on STS WebIdentityRoleOptions. Fixes aws/aws-sdk-go-v2#2015.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/guardduty`: [v1.18.0](service/guardduty/CHANGELOG.md#v1180-2023-03-16)
|
||||||
|
* **Feature**: Updated 9 APIs for feature enablement to reflect expansion of GuardDuty to features. Added new APIs and updated existing APIs to support RDS Protection GA.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/resourceexplorer2`: [v1.2.7](service/resourceexplorer2/CHANGELOG.md#v127-2023-03-16)
|
||||||
|
* **Documentation**: Documentation updates for APIs.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/sagemakerruntime`: [v1.18.7](service/sagemakerruntime/CHANGELOG.md#v1187-2023-03-16)
|
||||||
|
* **Documentation**: Documentation updates for SageMaker Runtime
|
||||||
|
|
||||||
|
# Release (2023-03-15)
|
||||||
|
|
||||||
|
## Module Highlights
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/migrationhubstrategy`: [v1.9.0](service/migrationhubstrategy/CHANGELOG.md#v190-2023-03-15)
|
||||||
|
* **Feature**: This release adds the binary analysis that analyzes IIS application DLLs on Windows and Java applications on Linux to provide anti-pattern report without configuring access to the source code.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.31.0](service/s3control/CHANGELOG.md#v1310-2023-03-15)
|
||||||
|
* **Feature**: Added support for S3 Object Lambda aliases.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/securitylake`: [v1.3.0](service/securitylake/CHANGELOG.md#v130-2023-03-15)
|
||||||
|
* **Feature**: Make Create/Get/ListSubscribers APIs return resource share ARN and name so they can be used to validate the RAM resource share to accept. GetDatalake can be used to track status of UpdateDatalake and DeleteDatalake requests.
|
||||||
|
|
||||||
|
# Release (2023-03-14)
|
||||||
|
|
||||||
|
## General Highlights
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
## Module Highlights
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/feature/ec2/imds`: [v1.13.0](feature/ec2/imds/CHANGELOG.md#v1130-2023-03-14)
|
||||||
|
* **Feature**: Add flag to disable IMDSv1 fallback
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/applicationautoscaling`: [v1.18.0](service/applicationautoscaling/CHANGELOG.md#v1180-2023-03-14)
|
||||||
|
* **Feature**: Application Auto Scaling customers can now use mathematical functions to customize the metric used with Target Tracking policies within the policy configuration itself, saving the cost and effort of publishing the customizations as a separate metric.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/dataexchange`: [v1.19.0](service/dataexchange/CHANGELOG.md#v1190-2023-03-14)
|
||||||
|
* **Feature**: This release enables data providers to license direct access to S3 objects encrypted with Customer Managed Keys (CMK) in AWS KMS through AWS Data Exchange. Subscribers can use these keys to decrypt, then use the encrypted S3 objects shared with them, without creating or managing copies.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/directconnect`: [v1.18.7](service/directconnect/CHANGELOG.md#v1187-2023-03-14)
|
||||||
|
* **Documentation**: describe-direct-connect-gateway-associations includes a new status, updating, indicating that the association is currently in-process of updating.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/ec2`: [v1.90.0](service/ec2/CHANGELOG.md#v1900-2023-03-14)
|
||||||
|
* **Feature**: This release adds a new DnsOptions key (PrivateDnsOnlyForInboundResolverEndpoint) to CreateVpcEndpoint and ModifyVpcEndpoint APIs.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/iam`: [v1.19.6](service/iam/CHANGELOG.md#v1196-2023-03-14)
|
||||||
|
* **Documentation**: Documentation only updates to correct customer-reported issues
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/keyspaces`: [v1.2.0](service/keyspaces/CHANGELOG.md#v120-2023-03-14)
|
||||||
|
* **Feature**: Adding support for client-side timestamps
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/support`: [v1.14.6](service/support/CHANGELOG.md#v1146-2023-03-14)
|
||||||
|
* **Announcement**: Model regenerated with support for null string values to properly implement `support` service operations `DescribeTrustedAdvisorCheckRefreshStatuses` and `DescribeTrustedAdvisorCheckSummaries`
|
||||||
|
|
||||||
|
# Release (2023-03-13)
|
||||||
|
|
||||||
|
## Module Highlights
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/appintegrations`: [v1.15.0](service/appintegrations/CHANGELOG.md#v1150-2023-03-13)
|
||||||
|
* **Feature**: Adds FileConfiguration to Amazon AppIntegrations CreateDataIntegration supporting scheduled downloading of third party files into Amazon Connect from sources such as Microsoft SharePoint.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/lakeformation`: [v1.20.2](service/lakeformation/CHANGELOG.md#v1202-2023-03-13)
|
||||||
|
* **Documentation**: This release updates the documentation regarding Get/Update DataCellsFilter
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/s3control`: [v1.30.0](service/s3control/CHANGELOG.md#v1300-2023-03-13)
|
||||||
|
* **Feature**: Added support for cross-account Multi-Region Access Points. Added support for S3 Replication for S3 on Outposts.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/tnb`: [v1.1.0](service/tnb/CHANGELOG.md#v110-2023-03-13)
|
||||||
|
* **Feature**: This release adds tagging support to the following Network Instance APIs : Instantiate, Update, Terminate.
|
||||||
|
* `github.com/aws/aws-sdk-go-v2/service/wisdom`: [v1.13.0](service/wisdom/CHANGELOG.md#v1130-2023-03-13)
|
||||||
|
* **Feature**: This release extends Wisdom CreateKnowledgeBase API to support SharePoint connector type by removing the @required trait for objectField
|
||||||
|
|
||||||
# Release (2023-03-10)
|
# Release (2023-03-10)
|
||||||
|
|
||||||
## General Highlights
|
## General Highlights
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package aws
|
package aws
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.17.6"
|
const goModuleVersion = "1.17.7"
|
||||||
|
|
1
vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go
generated
vendored
1
vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go
generated
vendored
|
@ -7,6 +7,7 @@ var IgnoredHeaders = Rules{
|
||||||
"Authorization": struct{}{},
|
"Authorization": struct{}{},
|
||||||
"User-Agent": struct{}{},
|
"User-Agent": struct{}{},
|
||||||
"X-Amzn-Trace-Id": struct{}{},
|
"X-Amzn-Trace-Id": struct{}{},
|
||||||
|
"Expect": struct{}{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.18.19 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.18.18 (2023-03-16)
|
||||||
|
|
||||||
|
* **Bug Fix**: Allow RoleARN to be set as functional option on STS WebIdentityRoleOptions. Fixes aws/aws-sdk-go-v2#2015.
|
||||||
|
|
||||||
# v1.18.17 (2023-03-14)
|
# v1.18.17 (2023-03-14)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package config
|
package config
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.18.17"
|
const goModuleVersion = "1.18.19"
|
||||||
|
|
24
vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go
generated
vendored
24
vendor/github.com/aws/aws-sdk-go-v2/config/resolve_credentials.go
generated
vendored
|
@ -384,10 +384,6 @@ func assumeWebIdentity(ctx context.Context, cfg *aws.Config, filepath string, ro
|
||||||
return fmt.Errorf("token file path is not set")
|
return fmt.Errorf("token file path is not set")
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(roleARN) == 0 {
|
|
||||||
return fmt.Errorf("role ARN is not set")
|
|
||||||
}
|
|
||||||
|
|
||||||
optFns := []func(*stscreds.WebIdentityRoleOptions){
|
optFns := []func(*stscreds.WebIdentityRoleOptions){
|
||||||
func(options *stscreds.WebIdentityRoleOptions) {
|
func(options *stscreds.WebIdentityRoleOptions) {
|
||||||
options.RoleSessionName = sessionName
|
options.RoleSessionName = sessionName
|
||||||
|
@ -398,11 +394,29 @@ func assumeWebIdentity(ctx context.Context, cfg *aws.Config, filepath string, ro
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if found {
|
if found {
|
||||||
optFns = append(optFns, optFn)
|
optFns = append(optFns, optFn)
|
||||||
}
|
}
|
||||||
|
|
||||||
provider := stscreds.NewWebIdentityRoleProvider(sts.NewFromConfig(*cfg), roleARN, stscreds.IdentityTokenFile(filepath), optFns...)
|
opts := stscreds.WebIdentityRoleOptions{
|
||||||
|
RoleARN: roleARN,
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, fn := range optFns {
|
||||||
|
fn(&opts)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(opts.RoleARN) == 0 {
|
||||||
|
return fmt.Errorf("role ARN is not set")
|
||||||
|
}
|
||||||
|
|
||||||
|
client := opts.Client
|
||||||
|
if client == nil {
|
||||||
|
client = sts.NewFromConfig(*cfg)
|
||||||
|
}
|
||||||
|
|
||||||
|
provider := stscreds.NewWebIdentityRoleProvider(client, roleARN, stscreds.IdentityTokenFile(filepath), optFns...)
|
||||||
|
|
||||||
cfg.Credentials = provider
|
cfg.Credentials = provider
|
||||||
|
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.13.18 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.13.17 (2023-03-14)
|
# v1.13.17 (2023-03-14)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package credentials
|
package credentials
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.13.17"
|
const goModuleVersion = "1.13.18"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.13.1 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.13.0 (2023-03-14)
|
# v1.13.0 (2023-03-14)
|
||||||
|
|
||||||
* **Feature**: Add flag to disable IMDSv1 fallback
|
* **Feature**: Add flag to disable IMDSv1 fallback
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package imds
|
package imds
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.13.0"
|
const goModuleVersion = "1.13.1"
|
||||||
|
|
8
vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md
generated
vendored
8
vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,11 @@
|
||||||
|
# v1.11.59 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
|
# v1.11.58 (2023-03-16)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.11.57 (2023-03-14)
|
# v1.11.57 (2023-03-14)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package manager
|
package manager
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.11.57"
|
const goModuleVersion = "1.11.59"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.1.31 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.1.30 (2023-03-10)
|
# v1.1.30 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package configsources
|
package configsources
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.1.30"
|
const goModuleVersion = "1.1.31"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v2.4.25 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v2.4.24 (2023-03-10)
|
# v2.4.24 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package endpoints
|
package endpoints
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "2.4.24"
|
const goModuleVersion = "2.4.25"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/internal/ini/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.3.32 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.3.31 (2023-03-10)
|
# v1.3.31 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/ini/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package ini
|
package ini
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.3.31"
|
const goModuleVersion = "1.3.32"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.0.23 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.0.22 (2023-03-10)
|
# v1.0.22 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package v4a
|
package v4a
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.0.22"
|
const goModuleVersion = "1.0.23"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.1.26 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.1.25 (2023-03-10)
|
# v1.1.25 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package checksum
|
package checksum
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.1.25"
|
const goModuleVersion = "1.1.26"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.9.25 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.9.24 (2023-03-10)
|
# v1.9.24 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
package presignedurl
|
package presignedurl
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.9.24"
|
const goModuleVersion = "1.9.25"
|
||||||
|
|
5
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md
generated
vendored
5
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,8 @@
|
||||||
|
# v1.14.0 (2023-03-21)
|
||||||
|
|
||||||
|
* **Feature**: port v1 sdk 100-continue http header customization for s3 PutObject/UploadPart request and enable user config
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.13.24 (2023-03-10)
|
# v1.13.24 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package s3shared
|
package s3shared
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.13.24"
|
const goModuleVersion = "1.14.0"
|
||||||
|
|
54
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/s3100continue.go
generated
vendored
Normal file
54
vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/s3100continue.go
generated
vendored
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
package s3shared
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"github.com/aws/smithy-go/middleware"
|
||||||
|
smithyhttp "github.com/aws/smithy-go/transport/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
const s3100ContinueID = "S3100Continue"
|
||||||
|
const default100ContinueThresholdBytes int64 = 1024 * 1024 * 2
|
||||||
|
|
||||||
|
// Add100Continue add middleware, which adds {Expect: 100-continue} header for s3 client HTTP PUT request larger than 2MB
|
||||||
|
// or with unknown size streaming bodies, during operation builder step
|
||||||
|
func Add100Continue(stack *middleware.Stack, continueHeaderThresholdBytes int64) error {
|
||||||
|
return stack.Build.Add(&s3100Continue{
|
||||||
|
continueHeaderThresholdBytes: continueHeaderThresholdBytes,
|
||||||
|
}, middleware.After)
|
||||||
|
}
|
||||||
|
|
||||||
|
type s3100Continue struct {
|
||||||
|
continueHeaderThresholdBytes int64
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID returns the middleware identifier
|
||||||
|
func (m *s3100Continue) ID() string {
|
||||||
|
return s3100ContinueID
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *s3100Continue) HandleBuild(
|
||||||
|
ctx context.Context, in middleware.BuildInput, next middleware.BuildHandler,
|
||||||
|
) (
|
||||||
|
out middleware.BuildOutput, metadata middleware.Metadata, err error,
|
||||||
|
) {
|
||||||
|
sizeLimit := default100ContinueThresholdBytes
|
||||||
|
switch {
|
||||||
|
case m.continueHeaderThresholdBytes == -1:
|
||||||
|
return next.HandleBuild(ctx, in)
|
||||||
|
case m.continueHeaderThresholdBytes > 0:
|
||||||
|
sizeLimit = m.continueHeaderThresholdBytes
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
req, ok := in.Request.(*smithyhttp.Request)
|
||||||
|
if !ok {
|
||||||
|
return out, metadata, fmt.Errorf("unknown request type %T", req)
|
||||||
|
}
|
||||||
|
|
||||||
|
if req.ContentLength == -1 || (req.ContentLength == 0 && req.Body != nil) || req.ContentLength >= sizeLimit {
|
||||||
|
req.Header.Set("Expect", "100-continue")
|
||||||
|
}
|
||||||
|
|
||||||
|
return next.HandleBuild(ctx, in)
|
||||||
|
}
|
5
vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md
generated
vendored
5
vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,8 @@
|
||||||
|
# v1.31.0 (2023-03-21)
|
||||||
|
|
||||||
|
* **Feature**: port v1 sdk 100-continue http header customization for s3 PutObject/UploadPart request and enable user config
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.30.6 (2023-03-10)
|
# v1.30.6 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
9
vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go
generated
vendored
9
vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go
generated
vendored
|
@ -80,6 +80,11 @@ type Options struct {
|
||||||
// Configures the events that will be sent to the configured logger.
|
// Configures the events that will be sent to the configured logger.
|
||||||
ClientLogMode aws.ClientLogMode
|
ClientLogMode aws.ClientLogMode
|
||||||
|
|
||||||
|
// The threshold ContentLength in bytes for HTTP PUT request to receive {Expect:
|
||||||
|
// 100-continue} header. Setting to -1 will disable adding the Expect header to
|
||||||
|
// requests; setting to 0 will set the threshold to default 2MB
|
||||||
|
ContinueHeaderThresholdBytes int64
|
||||||
|
|
||||||
// The credentials object to use when signing requests.
|
// The credentials object to use when signing requests.
|
||||||
Credentials aws.CredentialsProvider
|
Credentials aws.CredentialsProvider
|
||||||
|
|
||||||
|
@ -530,6 +535,10 @@ func addMetadataRetrieverMiddleware(stack *middleware.Stack) error {
|
||||||
return s3shared.AddMetadataRetrieverMiddleware(stack)
|
return s3shared.AddMetadataRetrieverMiddleware(stack)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func add100Continue(stack *middleware.Stack, options Options) error {
|
||||||
|
return s3shared.Add100Continue(stack, options.ContinueHeaderThresholdBytes)
|
||||||
|
}
|
||||||
|
|
||||||
// ComputedInputChecksumsMetadata provides information about the algorithms used to
|
// ComputedInputChecksumsMetadata provides information about the algorithms used to
|
||||||
// compute the checksum(s) of the input payload.
|
// compute the checksum(s) of the input payload.
|
||||||
type ComputedInputChecksumsMetadata struct {
|
type ComputedInputChecksumsMetadata struct {
|
||||||
|
|
3
vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go
generated
vendored
3
vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go
generated
vendored
|
@ -500,6 +500,9 @@ func (c *Client) addOperationPutObjectMiddlewares(stack *middleware.Stack, optio
|
||||||
if err = addMetadataRetrieverMiddleware(stack); err != nil {
|
if err = addMetadataRetrieverMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = add100Continue(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addPutObjectInputChecksumMiddlewares(stack, options); err != nil {
|
if err = addPutObjectInputChecksumMiddlewares(stack, options); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
3
vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go
generated
vendored
3
vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go
generated
vendored
|
@ -383,6 +383,9 @@ func (c *Client) addOperationUploadPartMiddlewares(stack *middleware.Stack, opti
|
||||||
if err = addMetadataRetrieverMiddleware(stack); err != nil {
|
if err = addMetadataRetrieverMiddleware(stack); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err = add100Continue(stack, options); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if err = addUploadPartInputChecksumMiddlewares(stack, options); err != nil {
|
if err = addUploadPartInputChecksumMiddlewares(stack, options); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package s3
|
package s3
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.30.6"
|
const goModuleVersion = "1.31.0"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.12.6 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.12.5 (2023-03-10)
|
# v1.12.5 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package sso
|
package sso
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.12.5"
|
const goModuleVersion = "1.12.6"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.14.6 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.14.5 (2023-03-10)
|
# v1.14.5 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package ssooidc
|
package ssooidc
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.14.5"
|
const goModuleVersion = "1.14.6"
|
||||||
|
|
4
vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md
generated
vendored
4
vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md
generated
vendored
|
@ -1,3 +1,7 @@
|
||||||
|
# v1.18.7 (2023-03-21)
|
||||||
|
|
||||||
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
||||||
# v1.18.6 (2023-03-10)
|
# v1.18.6 (2023-03-10)
|
||||||
|
|
||||||
* **Dependency Update**: Updated to the latest SDK module versions
|
* **Dependency Update**: Updated to the latest SDK module versions
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go
generated
vendored
|
@ -3,4 +3,4 @@
|
||||||
package sts
|
package sts
|
||||||
|
|
||||||
// goModuleVersion is the tagged release for this module
|
// goModuleVersion is the tagged release for this module
|
||||||
const goModuleVersion = "1.18.6"
|
const goModuleVersion = "1.18.7"
|
||||||
|
|
243
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
243
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
|
@ -1852,6 +1852,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-central-1",
|
Region: "eu-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-central-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-north-1",
|
Region: "eu-north-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -2390,24 +2393,39 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-south-1",
|
Region: "ap-south-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-south-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-southeast-1",
|
Region: "ap-southeast-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-southeast-2",
|
Region: "ap-southeast-2",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-southeast-3",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-southeast-4",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ca-central-1",
|
Region: "ca-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-central-1",
|
Region: "eu-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-central-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-north-1",
|
Region: "eu-north-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-south-1",
|
Region: "eu-south-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-south-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-1",
|
Region: "eu-west-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -2417,6 +2435,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-3",
|
Region: "eu-west-3",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "me-central-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "me-south-1",
|
Region: "me-south-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -14320,6 +14341,31 @@ var awsPartition = partition{
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"ivsrealtime": service{
|
||||||
|
Endpoints: serviceEndpoints{
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-northeast-1",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-northeast-2",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-south-1",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-central-1",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-west-1",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-east-1",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-west-2",
|
||||||
|
}: endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"kafka": service{
|
"kafka": service{
|
||||||
Endpoints: serviceEndpoints{
|
Endpoints: serviceEndpoints{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
|
@ -17516,6 +17562,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-central-1",
|
Region: "eu-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-central-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-north-1",
|
Region: "eu-north-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -21898,6 +21947,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-central-1",
|
Region: "eu-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-central-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-north-1",
|
Region: "eu-north-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -23370,6 +23422,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-south-1",
|
Region: "ap-south-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-south-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-southeast-1",
|
Region: "ap-southeast-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -23385,12 +23440,18 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-central-1",
|
Region: "eu-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-central-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-north-1",
|
Region: "eu-north-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-south-1",
|
Region: "eu-south-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-south-2",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-1",
|
Region: "eu-west-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -23488,6 +23549,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-northeast-1",
|
Region: "ap-northeast-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-southeast-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ap-southeast-2",
|
Region: "ap-southeast-2",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -23497,6 +23561,12 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-1",
|
Region: "eu-west-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "eu-west-2",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "sa-east-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-east-1",
|
Region: "us-east-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -23657,6 +23727,9 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-3",
|
Region: "eu-west-3",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "me-central-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "me-south-1",
|
Region: "me-south-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -23977,6 +24050,15 @@ var awsPartition = partition{
|
||||||
}: endpoint{
|
}: endpoint{
|
||||||
Hostname: "servicediscovery.ap-southeast-3.amazonaws.com",
|
Hostname: "servicediscovery.ap-southeast-3.amazonaws.com",
|
||||||
},
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-southeast-4",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ap-southeast-4",
|
||||||
|
Variant: dualStackVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "servicediscovery.ap-southeast-4.amazonaws.com",
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ca-central-1",
|
Region: "ca-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -25509,6 +25591,12 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "ca-central-1",
|
Region: "ca-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "ca-central-1",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.ca-central-1.amazonaws.com",
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-central-1",
|
Region: "eu-central-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -25527,6 +25615,51 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "eu-west-3",
|
Region: "eu-west-3",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "fips-ca-central-1",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.ca-central-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "ca-central-1",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "fips-us-east-1",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.us-east-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-east-1",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "fips-us-east-2",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.us-east-2.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-east-2",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "fips-us-west-1",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.us-west-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-west-1",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "fips-us-west-2",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.us-west-2.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-west-2",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "me-south-1",
|
Region: "me-south-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -25536,15 +25669,39 @@ var awsPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-east-1",
|
Region: "us-east-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-east-1",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.us-east-1.amazonaws.com",
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-east-2",
|
Region: "us-east-2",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-east-2",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.us-east-2.amazonaws.com",
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-west-1",
|
Region: "us-west-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-west-1",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.us-west-1.amazonaws.com",
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-west-2",
|
Region: "us-west-2",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-west-2",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "ssm-sap-fips.us-west-2.amazonaws.com",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"sso": service{
|
"sso": service{
|
||||||
|
@ -27099,6 +27256,9 @@ var awsPartition = partition{
|
||||||
},
|
},
|
||||||
Deprecated: boxedTrue,
|
Deprecated: boxedTrue,
|
||||||
},
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "me-central-1",
|
||||||
|
}: endpoint{},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "me-south-1",
|
Region: "me-south-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
@ -30281,6 +30441,16 @@ var awscnPartition = partition{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"oam": service{
|
||||||
|
Endpoints: serviceEndpoints{
|
||||||
|
endpointKey{
|
||||||
|
Region: "cn-north-1",
|
||||||
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "cn-northwest-1",
|
||||||
|
}: endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"organizations": service{
|
"organizations": service{
|
||||||
PartitionEndpoint: "aws-cn-global",
|
PartitionEndpoint: "aws-cn-global",
|
||||||
IsRegionalized: boxedFalse,
|
IsRegionalized: boxedFalse,
|
||||||
|
@ -31754,6 +31924,24 @@ var awsusgovPartition = partition{
|
||||||
Region: "us-gov-east-1",
|
Region: "us-gov-east-1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-east-1",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "cassandra.us-gov-east-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-east-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-east-1-fips",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "cassandra.us-gov-east-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-east-1",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-gov-west-1",
|
Region: "us-gov-west-1",
|
||||||
}: endpoint{
|
}: endpoint{
|
||||||
|
@ -31762,6 +31950,24 @@ var awsusgovPartition = partition{
|
||||||
Region: "us-gov-west-1",
|
Region: "us-gov-west-1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "cassandra.us-gov-west-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-west-1-fips",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "cassandra.us-gov-west-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"cloudcontrolapi": service{
|
"cloudcontrolapi": service{
|
||||||
|
@ -32458,9 +32664,39 @@ var awsusgovPartition = partition{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-gov-east-1",
|
Region: "us-gov-east-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-east-1",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "dlm.us-gov-east-1.amazonaws.com",
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-east-1-fips",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "dlm.us-gov-east-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-east-1",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
endpointKey{
|
endpointKey{
|
||||||
Region: "us-gov-west-1",
|
Region: "us-gov-west-1",
|
||||||
}: endpoint{},
|
}: endpoint{},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
Variant: fipsVariant,
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "dlm.us-gov-west-1.amazonaws.com",
|
||||||
|
},
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-west-1-fips",
|
||||||
|
}: endpoint{
|
||||||
|
Hostname: "dlm.us-gov-west-1.amazonaws.com",
|
||||||
|
CredentialScope: credentialScope{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
},
|
||||||
|
Deprecated: boxedTrue,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"dms": service{
|
"dms": service{
|
||||||
|
@ -33926,6 +34162,13 @@ var awsusgovPartition = partition{
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"iottwinmaker": service{
|
||||||
|
Endpoints: serviceEndpoints{
|
||||||
|
endpointKey{
|
||||||
|
Region: "us-gov-west-1",
|
||||||
|
}: endpoint{},
|
||||||
|
},
|
||||||
|
},
|
||||||
"kafka": service{
|
"kafka": service{
|
||||||
Endpoints: serviceEndpoints{
|
Endpoints: serviceEndpoints{
|
||||||
endpointKey{
|
endpointKey{
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go/aws/session/session.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/session/session.go
generated
vendored
|
@ -224,7 +224,7 @@ type Options struct {
|
||||||
// from stdin for the MFA token code.
|
// from stdin for the MFA token code.
|
||||||
//
|
//
|
||||||
// This field is only used if the shared configuration is enabled, and
|
// This field is only used if the shared configuration is enabled, and
|
||||||
// the config enables assume role wit MFA via the mfa_serial field.
|
// the config enables assume role with MFA via the mfa_serial field.
|
||||||
AssumeRoleTokenProvider func() (string, error)
|
AssumeRoleTokenProvider func() (string, error)
|
||||||
|
|
||||||
// When the SDK's shared config is configured to assume a role this option
|
// When the SDK's shared config is configured to assume a role this option
|
||||||
|
|
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
|
@ -5,4 +5,4 @@ package aws
|
||||||
const SDKName = "aws-sdk-go"
|
const SDKName = "aws-sdk-go"
|
||||||
|
|
||||||
// SDKVersion is the version of this SDK
|
// SDKVersion is the version of this SDK
|
||||||
const SDKVersion = "1.44.222"
|
const SDKVersion = "1.44.229"
|
||||||
|
|
132
vendor/github.com/prometheus/prometheus/config/config.go
generated
vendored
132
vendor/github.com/prometheus/prometheus/config/config.go
generated
vendored
|
@ -216,12 +216,13 @@ var (
|
||||||
|
|
||||||
// Config is the top-level configuration for Prometheus's config files.
|
// Config is the top-level configuration for Prometheus's config files.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
GlobalConfig GlobalConfig `yaml:"global"`
|
GlobalConfig GlobalConfig `yaml:"global"`
|
||||||
AlertingConfig AlertingConfig `yaml:"alerting,omitempty"`
|
AlertingConfig AlertingConfig `yaml:"alerting,omitempty"`
|
||||||
RuleFiles []string `yaml:"rule_files,omitempty"`
|
RuleFiles []string `yaml:"rule_files,omitempty"`
|
||||||
ScrapeConfigs []*ScrapeConfig `yaml:"scrape_configs,omitempty"`
|
ScrapeConfigFiles []string `yaml:"scrape_config_files,omitempty"`
|
||||||
StorageConfig StorageConfig `yaml:"storage,omitempty"`
|
ScrapeConfigs []*ScrapeConfig `yaml:"scrape_configs,omitempty"`
|
||||||
TracingConfig TracingConfig `yaml:"tracing,omitempty"`
|
StorageConfig StorageConfig `yaml:"storage,omitempty"`
|
||||||
|
TracingConfig TracingConfig `yaml:"tracing,omitempty"`
|
||||||
|
|
||||||
RemoteWriteConfigs []*RemoteWriteConfig `yaml:"remote_write,omitempty"`
|
RemoteWriteConfigs []*RemoteWriteConfig `yaml:"remote_write,omitempty"`
|
||||||
RemoteReadConfigs []*RemoteReadConfig `yaml:"remote_read,omitempty"`
|
RemoteReadConfigs []*RemoteReadConfig `yaml:"remote_read,omitempty"`
|
||||||
|
@ -235,6 +236,9 @@ func (c *Config) SetDirectory(dir string) {
|
||||||
for i, file := range c.RuleFiles {
|
for i, file := range c.RuleFiles {
|
||||||
c.RuleFiles[i] = config.JoinDir(dir, file)
|
c.RuleFiles[i] = config.JoinDir(dir, file)
|
||||||
}
|
}
|
||||||
|
for i, file := range c.ScrapeConfigFiles {
|
||||||
|
c.ScrapeConfigFiles[i] = config.JoinDir(dir, file)
|
||||||
|
}
|
||||||
for _, c := range c.ScrapeConfigs {
|
for _, c := range c.ScrapeConfigs {
|
||||||
c.SetDirectory(dir)
|
c.SetDirectory(dir)
|
||||||
}
|
}
|
||||||
|
@ -254,6 +258,58 @@ func (c Config) String() string {
|
||||||
return string(b)
|
return string(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ScrapeConfigs returns the scrape configurations.
|
||||||
|
func (c *Config) GetScrapeConfigs() ([]*ScrapeConfig, error) {
|
||||||
|
scfgs := make([]*ScrapeConfig, len(c.ScrapeConfigs))
|
||||||
|
|
||||||
|
jobNames := map[string]string{}
|
||||||
|
for i, scfg := range c.ScrapeConfigs {
|
||||||
|
// We do these checks for library users that would not call Validate in
|
||||||
|
// Unmarshal.
|
||||||
|
if err := scfg.Validate(c.GlobalConfig.ScrapeInterval, c.GlobalConfig.ScrapeTimeout); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := jobNames[scfg.JobName]; ok {
|
||||||
|
return nil, fmt.Errorf("found multiple scrape configs with job name %q", scfg.JobName)
|
||||||
|
}
|
||||||
|
jobNames[scfg.JobName] = "main config file"
|
||||||
|
scfgs[i] = scfg
|
||||||
|
}
|
||||||
|
for _, pat := range c.ScrapeConfigFiles {
|
||||||
|
fs, err := filepath.Glob(pat)
|
||||||
|
if err != nil {
|
||||||
|
// The only error can be a bad pattern.
|
||||||
|
return nil, fmt.Errorf("error retrieving scrape config files for %q: %w", pat, err)
|
||||||
|
}
|
||||||
|
for _, filename := range fs {
|
||||||
|
cfg := ScrapeConfigs{}
|
||||||
|
content, err := os.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fileErr(filename, err)
|
||||||
|
}
|
||||||
|
err = yaml.UnmarshalStrict(content, &cfg)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fileErr(filename, err)
|
||||||
|
}
|
||||||
|
for _, scfg := range cfg.ScrapeConfigs {
|
||||||
|
if err := scfg.Validate(c.GlobalConfig.ScrapeInterval, c.GlobalConfig.ScrapeTimeout); err != nil {
|
||||||
|
return nil, fileErr(filename, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if f, ok := jobNames[scfg.JobName]; ok {
|
||||||
|
return nil, fileErr(filename, fmt.Errorf("found multiple scrape configs with job name %q, first found in %s", scfg.JobName, f))
|
||||||
|
}
|
||||||
|
jobNames[scfg.JobName] = fmt.Sprintf("%q", filePath(filename))
|
||||||
|
|
||||||
|
scfg.SetDirectory(filepath.Dir(filename))
|
||||||
|
scfgs = append(scfgs, scfg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return scfgs, nil
|
||||||
|
}
|
||||||
|
|
||||||
// UnmarshalYAML implements the yaml.Unmarshaler interface.
|
// UnmarshalYAML implements the yaml.Unmarshaler interface.
|
||||||
func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
*c = DefaultConfig
|
*c = DefaultConfig
|
||||||
|
@ -276,26 +332,18 @@ func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
return fmt.Errorf("invalid rule file path %q", rf)
|
return fmt.Errorf("invalid rule file path %q", rf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, sf := range c.ScrapeConfigFiles {
|
||||||
|
if !patRulePath.MatchString(sf) {
|
||||||
|
return fmt.Errorf("invalid scrape config file path %q", sf)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Do global overrides and validate unique names.
|
// Do global overrides and validate unique names.
|
||||||
jobNames := map[string]struct{}{}
|
jobNames := map[string]struct{}{}
|
||||||
for _, scfg := range c.ScrapeConfigs {
|
for _, scfg := range c.ScrapeConfigs {
|
||||||
if scfg == nil {
|
if err := scfg.Validate(c.GlobalConfig.ScrapeInterval, c.GlobalConfig.ScrapeTimeout); err != nil {
|
||||||
return errors.New("empty or null scrape config section")
|
return err
|
||||||
}
|
|
||||||
// First set the correct scrape interval, then check that the timeout
|
|
||||||
// (inferred or explicit) is not greater than that.
|
|
||||||
if scfg.ScrapeInterval == 0 {
|
|
||||||
scfg.ScrapeInterval = c.GlobalConfig.ScrapeInterval
|
|
||||||
}
|
|
||||||
if scfg.ScrapeTimeout > scfg.ScrapeInterval {
|
|
||||||
return fmt.Errorf("scrape timeout greater than scrape interval for scrape config with job name %q", scfg.JobName)
|
|
||||||
}
|
|
||||||
if scfg.ScrapeTimeout == 0 {
|
|
||||||
if c.GlobalConfig.ScrapeTimeout > scfg.ScrapeInterval {
|
|
||||||
scfg.ScrapeTimeout = scfg.ScrapeInterval
|
|
||||||
} else {
|
|
||||||
scfg.ScrapeTimeout = c.GlobalConfig.ScrapeTimeout
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := jobNames[scfg.JobName]; ok {
|
if _, ok := jobNames[scfg.JobName]; ok {
|
||||||
|
@ -401,6 +449,10 @@ func (c *GlobalConfig) isZero() bool {
|
||||||
c.QueryLogFile == ""
|
c.QueryLogFile == ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ScrapeConfigs struct {
|
||||||
|
ScrapeConfigs []*ScrapeConfig `yaml:"scrape_configs,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// ScrapeConfig configures a scraping unit for Prometheus.
|
// ScrapeConfig configures a scraping unit for Prometheus.
|
||||||
type ScrapeConfig struct {
|
type ScrapeConfig struct {
|
||||||
// The job name to which the job label is set by default.
|
// The job name to which the job label is set by default.
|
||||||
|
@ -494,6 +546,28 @@ func (c *ScrapeConfig) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ScrapeConfig) Validate(defaultInterval, defaultTimeout model.Duration) error {
|
||||||
|
if c == nil {
|
||||||
|
return errors.New("empty or null scrape config section")
|
||||||
|
}
|
||||||
|
// First set the correct scrape interval, then check that the timeout
|
||||||
|
// (inferred or explicit) is not greater than that.
|
||||||
|
if c.ScrapeInterval == 0 {
|
||||||
|
c.ScrapeInterval = defaultInterval
|
||||||
|
}
|
||||||
|
if c.ScrapeTimeout > c.ScrapeInterval {
|
||||||
|
return fmt.Errorf("scrape timeout greater than scrape interval for scrape config with job name %q", c.JobName)
|
||||||
|
}
|
||||||
|
if c.ScrapeTimeout == 0 {
|
||||||
|
if defaultTimeout > c.ScrapeInterval {
|
||||||
|
c.ScrapeTimeout = c.ScrapeInterval
|
||||||
|
} else {
|
||||||
|
c.ScrapeTimeout = defaultTimeout
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalYAML implements the yaml.Marshaler interface.
|
// MarshalYAML implements the yaml.Marshaler interface.
|
||||||
func (c *ScrapeConfig) MarshalYAML() (interface{}, error) {
|
func (c *ScrapeConfig) MarshalYAML() (interface{}, error) {
|
||||||
return discovery.MarshalYAMLWithInlineConfigs(c)
|
return discovery.MarshalYAMLWithInlineConfigs(c)
|
||||||
|
@ -936,3 +1010,15 @@ func (c *RemoteReadConfig) UnmarshalYAML(unmarshal func(interface{}) error) erro
|
||||||
// Thus we just do its validation here.
|
// Thus we just do its validation here.
|
||||||
return c.HTTPClientConfig.Validate()
|
return c.HTTPClientConfig.Validate()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func filePath(filename string) string {
|
||||||
|
absPath, err := filepath.Abs(filename)
|
||||||
|
if err != nil {
|
||||||
|
return filename
|
||||||
|
}
|
||||||
|
return absPath
|
||||||
|
}
|
||||||
|
|
||||||
|
func fileErr(filename string, err error) error {
|
||||||
|
return fmt.Errorf("%q: %w", filePath(filename), err)
|
||||||
|
}
|
||||||
|
|
64
vendor/github.com/prometheus/prometheus/model/labels/labels.go
generated
vendored
64
vendor/github.com/prometheus/prometheus/model/labels/labels.go
generated
vendored
|
@ -11,16 +11,18 @@
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build !stringlabels
|
||||||
|
|
||||||
package labels
|
package labels
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"sort"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/cespare/xxhash/v2"
|
"github.com/cespare/xxhash/v2"
|
||||||
"github.com/prometheus/common/model"
|
"github.com/prometheus/common/model"
|
||||||
|
"golang.org/x/exp/slices"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Well-known label names used by Prometheus components.
|
// Well-known label names used by Prometheus components.
|
||||||
|
@ -358,7 +360,7 @@ func EmptyLabels() Labels {
|
||||||
func New(ls ...Label) Labels {
|
func New(ls ...Label) Labels {
|
||||||
set := make(Labels, 0, len(ls))
|
set := make(Labels, 0, len(ls))
|
||||||
set = append(set, ls...)
|
set = append(set, ls...)
|
||||||
sort.Sort(set)
|
slices.SortFunc(set, func(a, b Label) bool { return a.Name < b.Name })
|
||||||
|
|
||||||
return set
|
return set
|
||||||
}
|
}
|
||||||
|
@ -382,7 +384,7 @@ func FromStrings(ss ...string) Labels {
|
||||||
res = append(res, Label{Name: ss[i], Value: ss[i+1]})
|
res = append(res, Label{Name: ss[i], Value: ss[i+1]})
|
||||||
}
|
}
|
||||||
|
|
||||||
sort.Sort(res)
|
slices.SortFunc(res, func(a, b Label) bool { return a.Name < b.Name })
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -528,6 +530,46 @@ func (b *Builder) Set(n, v string) *Builder {
|
||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (b *Builder) Get(n string) string {
|
||||||
|
for _, d := range b.del {
|
||||||
|
if d == n {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, a := range b.add {
|
||||||
|
if a.Name == n {
|
||||||
|
return a.Value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return b.base.Get(n)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Range calls f on each label in the Builder.
|
||||||
|
func (b *Builder) Range(f func(l Label)) {
|
||||||
|
// Stack-based arrays to avoid heap allocation in most cases.
|
||||||
|
var addStack [1024]Label
|
||||||
|
var delStack [1024]string
|
||||||
|
// Take a copy of add and del, so they are unaffected by calls to Set() or Del().
|
||||||
|
origAdd, origDel := append(addStack[:0], b.add...), append(delStack[:0], b.del...)
|
||||||
|
b.base.Range(func(l Label) {
|
||||||
|
if !slices.Contains(origDel, l.Name) && !contains(origAdd, l.Name) {
|
||||||
|
f(l)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
for _, a := range origAdd {
|
||||||
|
f(a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func contains(s []Label, n string) bool {
|
||||||
|
for _, a := range s {
|
||||||
|
if a.Name == n {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// Labels returns the labels from the builder, adding them to res if non-nil.
|
// Labels returns the labels from the builder, adding them to res if non-nil.
|
||||||
// Argument res can be the same as b.base, if caller wants to overwrite that slice.
|
// Argument res can be the same as b.base, if caller wants to overwrite that slice.
|
||||||
// If no modifications were made, the original labels are returned.
|
// If no modifications were made, the original labels are returned.
|
||||||
|
@ -543,26 +585,18 @@ func (b *Builder) Labels(res Labels) Labels {
|
||||||
} else {
|
} else {
|
||||||
res = res[:0]
|
res = res[:0]
|
||||||
}
|
}
|
||||||
Outer:
|
|
||||||
// Justification that res can be the same slice as base: in this loop
|
// Justification that res can be the same slice as base: in this loop
|
||||||
// we move forward through base, and either skip an element or assign
|
// we move forward through base, and either skip an element or assign
|
||||||
// it to res at its current position or an earlier position.
|
// it to res at its current position or an earlier position.
|
||||||
for _, l := range b.base {
|
for _, l := range b.base {
|
||||||
for _, n := range b.del {
|
if slices.Contains(b.del, l.Name) || contains(b.add, l.Name) {
|
||||||
if l.Name == n {
|
continue
|
||||||
continue Outer
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for _, la := range b.add {
|
|
||||||
if l.Name == la.Name {
|
|
||||||
continue Outer
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
res = append(res, l)
|
res = append(res, l)
|
||||||
}
|
}
|
||||||
if len(b.add) > 0 { // Base is already in order, so we only need to sort if we add to it.
|
if len(b.add) > 0 { // Base is already in order, so we only need to sort if we add to it.
|
||||||
res = append(res, b.add...)
|
res = append(res, b.add...)
|
||||||
sort.Sort(res)
|
slices.SortFunc(res, func(a, b Label) bool { return a.Name < b.Name })
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
@ -589,7 +623,7 @@ func (b *ScratchBuilder) Add(name, value string) {
|
||||||
|
|
||||||
// Sort the labels added so far by name.
|
// Sort the labels added so far by name.
|
||||||
func (b *ScratchBuilder) Sort() {
|
func (b *ScratchBuilder) Sort() {
|
||||||
sort.Sort(b.add)
|
slices.SortFunc(b.add, func(a, b Label) bool { return a.Name < b.Name })
|
||||||
}
|
}
|
||||||
|
|
||||||
// Asssign is for when you already have a Labels which you want this ScratchBuilder to return.
|
// Asssign is for when you already have a Labels which you want this ScratchBuilder to return.
|
||||||
|
|
825
vendor/github.com/prometheus/prometheus/model/labels/labels_string.go
generated
vendored
Normal file
825
vendor/github.com/prometheus/prometheus/model/labels/labels_string.go
generated
vendored
Normal file
|
@ -0,0 +1,825 @@
|
||||||
|
// Copyright 2017 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
//go:build stringlabels
|
||||||
|
|
||||||
|
package labels
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"reflect"
|
||||||
|
"strconv"
|
||||||
|
"unsafe"
|
||||||
|
|
||||||
|
"github.com/cespare/xxhash/v2"
|
||||||
|
"github.com/prometheus/common/model"
|
||||||
|
"golang.org/x/exp/slices"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Well-known label names used by Prometheus components.
|
||||||
|
const (
|
||||||
|
MetricName = "__name__"
|
||||||
|
AlertName = "alertname"
|
||||||
|
BucketLabel = "le"
|
||||||
|
InstanceName = "instance"
|
||||||
|
)
|
||||||
|
|
||||||
|
var seps = []byte{'\xff'}
|
||||||
|
|
||||||
|
// Label is a key/value pair of strings.
|
||||||
|
type Label struct {
|
||||||
|
Name, Value string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Labels is implemented by a single flat string holding name/value pairs.
|
||||||
|
// Each name and value is preceded by its length in varint encoding.
|
||||||
|
// Names are in order.
|
||||||
|
type Labels struct {
|
||||||
|
data string
|
||||||
|
}
|
||||||
|
|
||||||
|
type labelSlice []Label
|
||||||
|
|
||||||
|
func (ls labelSlice) Len() int { return len(ls) }
|
||||||
|
func (ls labelSlice) Swap(i, j int) { ls[i], ls[j] = ls[j], ls[i] }
|
||||||
|
func (ls labelSlice) Less(i, j int) bool { return ls[i].Name < ls[j].Name }
|
||||||
|
|
||||||
|
func decodeSize(data string, index int) (int, int) {
|
||||||
|
var size int
|
||||||
|
for shift := uint(0); ; shift += 7 {
|
||||||
|
// Just panic if we go of the end of data, since all Labels strings are constructed internally and
|
||||||
|
// malformed data indicates a bug, or memory corruption.
|
||||||
|
b := data[index]
|
||||||
|
index++
|
||||||
|
size |= int(b&0x7F) << shift
|
||||||
|
if b < 0x80 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return size, index
|
||||||
|
}
|
||||||
|
|
||||||
|
func decodeString(data string, index int) (string, int) {
|
||||||
|
var size int
|
||||||
|
size, index = decodeSize(data, index)
|
||||||
|
return data[index : index+size], index + size
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ls Labels) String() string {
|
||||||
|
var b bytes.Buffer
|
||||||
|
|
||||||
|
b.WriteByte('{')
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
if i > 0 {
|
||||||
|
b.WriteByte(',')
|
||||||
|
b.WriteByte(' ')
|
||||||
|
}
|
||||||
|
var name, value string
|
||||||
|
name, i = decodeString(ls.data, i)
|
||||||
|
value, i = decodeString(ls.data, i)
|
||||||
|
b.WriteString(name)
|
||||||
|
b.WriteByte('=')
|
||||||
|
b.WriteString(strconv.Quote(value))
|
||||||
|
}
|
||||||
|
b.WriteByte('}')
|
||||||
|
return b.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bytes returns ls as a byte slice.
|
||||||
|
// It uses non-printing characters and so should not be used for printing.
|
||||||
|
func (ls Labels) Bytes(buf []byte) []byte {
|
||||||
|
if cap(buf) < len(ls.data) {
|
||||||
|
buf = make([]byte, len(ls.data))
|
||||||
|
} else {
|
||||||
|
buf = buf[:len(ls.data)]
|
||||||
|
}
|
||||||
|
copy(buf, ls.data)
|
||||||
|
return buf
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalJSON implements json.Marshaler.
|
||||||
|
func (ls Labels) MarshalJSON() ([]byte, error) {
|
||||||
|
return json.Marshal(ls.Map())
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalJSON implements json.Unmarshaler.
|
||||||
|
func (ls *Labels) UnmarshalJSON(b []byte) error {
|
||||||
|
var m map[string]string
|
||||||
|
|
||||||
|
if err := json.Unmarshal(b, &m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*ls = FromMap(m)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalYAML implements yaml.Marshaler.
|
||||||
|
func (ls Labels) MarshalYAML() (interface{}, error) {
|
||||||
|
return ls.Map(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsZero implements yaml.IsZeroer - if we don't have this then 'omitempty' fields are always omitted.
|
||||||
|
func (ls Labels) IsZero() bool {
|
||||||
|
return len(ls.data) == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalYAML implements yaml.Unmarshaler.
|
||||||
|
func (ls *Labels) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||||||
|
var m map[string]string
|
||||||
|
|
||||||
|
if err := unmarshal(&m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*ls = FromMap(m)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MatchLabels returns a subset of Labels that matches/does not match with the provided label names based on the 'on' boolean.
|
||||||
|
// If on is set to true, it returns the subset of labels that match with the provided label names and its inverse when 'on' is set to false.
|
||||||
|
// TODO: This is only used in printing an error message
|
||||||
|
func (ls Labels) MatchLabels(on bool, names ...string) Labels {
|
||||||
|
b := NewBuilder(ls)
|
||||||
|
if on {
|
||||||
|
b.Keep(names...)
|
||||||
|
} else {
|
||||||
|
b.Del(MetricName)
|
||||||
|
b.Del(names...)
|
||||||
|
}
|
||||||
|
return b.Labels(EmptyLabels())
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hash returns a hash value for the label set.
|
||||||
|
// Note: the result is not guaranteed to be consistent across different runs of Prometheus.
|
||||||
|
func (ls Labels) Hash() uint64 {
|
||||||
|
return xxhash.Sum64(yoloBytes(ls.data))
|
||||||
|
}
|
||||||
|
|
||||||
|
// HashForLabels returns a hash value for the labels matching the provided names.
|
||||||
|
// 'names' have to be sorted in ascending order.
|
||||||
|
func (ls Labels) HashForLabels(b []byte, names ...string) (uint64, []byte) {
|
||||||
|
b = b[:0]
|
||||||
|
j := 0
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
var name, value string
|
||||||
|
name, i = decodeString(ls.data, i)
|
||||||
|
value, i = decodeString(ls.data, i)
|
||||||
|
for j < len(names) && names[j] < name {
|
||||||
|
j++
|
||||||
|
}
|
||||||
|
if j == len(names) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if name == names[j] {
|
||||||
|
b = append(b, name...)
|
||||||
|
b = append(b, seps[0])
|
||||||
|
b = append(b, value...)
|
||||||
|
b = append(b, seps[0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return xxhash.Sum64(b), b
|
||||||
|
}
|
||||||
|
|
||||||
|
// HashWithoutLabels returns a hash value for all labels except those matching
|
||||||
|
// the provided names.
|
||||||
|
// 'names' have to be sorted in ascending order.
|
||||||
|
func (ls Labels) HashWithoutLabels(b []byte, names ...string) (uint64, []byte) {
|
||||||
|
b = b[:0]
|
||||||
|
j := 0
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
var name, value string
|
||||||
|
name, i = decodeString(ls.data, i)
|
||||||
|
value, i = decodeString(ls.data, i)
|
||||||
|
for j < len(names) && names[j] < name {
|
||||||
|
j++
|
||||||
|
}
|
||||||
|
if name == MetricName || (j < len(names) && name == names[j]) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
b = append(b, name...)
|
||||||
|
b = append(b, seps[0])
|
||||||
|
b = append(b, value...)
|
||||||
|
b = append(b, seps[0])
|
||||||
|
}
|
||||||
|
return xxhash.Sum64(b), b
|
||||||
|
}
|
||||||
|
|
||||||
|
// BytesWithLabels is just as Bytes(), but only for labels matching names.
|
||||||
|
// 'names' have to be sorted in ascending order.
|
||||||
|
func (ls Labels) BytesWithLabels(buf []byte, names ...string) []byte {
|
||||||
|
b := buf[:0]
|
||||||
|
j := 0
|
||||||
|
for pos := 0; pos < len(ls.data); {
|
||||||
|
lName, newPos := decodeString(ls.data, pos)
|
||||||
|
_, newPos = decodeString(ls.data, newPos)
|
||||||
|
for j < len(names) && names[j] < lName {
|
||||||
|
j++
|
||||||
|
}
|
||||||
|
if j == len(names) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if lName == names[j] {
|
||||||
|
b = append(b, ls.data[pos:newPos]...)
|
||||||
|
}
|
||||||
|
pos = newPos
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// BytesWithoutLabels is just as Bytes(), but only for labels not matching names.
|
||||||
|
// 'names' have to be sorted in ascending order.
|
||||||
|
func (ls Labels) BytesWithoutLabels(buf []byte, names ...string) []byte {
|
||||||
|
b := buf[:0]
|
||||||
|
j := 0
|
||||||
|
for pos := 0; pos < len(ls.data); {
|
||||||
|
lName, newPos := decodeString(ls.data, pos)
|
||||||
|
_, newPos = decodeString(ls.data, newPos)
|
||||||
|
for j < len(names) && names[j] < lName {
|
||||||
|
j++
|
||||||
|
}
|
||||||
|
if j == len(names) || lName != names[j] {
|
||||||
|
b = append(b, ls.data[pos:newPos]...)
|
||||||
|
}
|
||||||
|
pos = newPos
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy returns a copy of the labels.
|
||||||
|
func (ls Labels) Copy() Labels {
|
||||||
|
buf := append([]byte{}, ls.data...)
|
||||||
|
return Labels{data: yoloString(buf)}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get returns the value for the label with the given name.
|
||||||
|
// Returns an empty string if the label doesn't exist.
|
||||||
|
func (ls Labels) Get(name string) string {
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
var lName, lValue string
|
||||||
|
lName, i = decodeString(ls.data, i)
|
||||||
|
lValue, i = decodeString(ls.data, i)
|
||||||
|
if lName == name {
|
||||||
|
return lValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// Has returns true if the label with the given name is present.
|
||||||
|
func (ls Labels) Has(name string) bool {
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
var lName string
|
||||||
|
lName, i = decodeString(ls.data, i)
|
||||||
|
_, i = decodeString(ls.data, i)
|
||||||
|
if lName == name {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// HasDuplicateLabelNames returns whether ls has duplicate label names.
|
||||||
|
// It assumes that the labelset is sorted.
|
||||||
|
func (ls Labels) HasDuplicateLabelNames() (string, bool) {
|
||||||
|
var lName, prevName string
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
lName, i = decodeString(ls.data, i)
|
||||||
|
_, i = decodeString(ls.data, i)
|
||||||
|
if lName == prevName {
|
||||||
|
return lName, true
|
||||||
|
}
|
||||||
|
prevName = lName
|
||||||
|
}
|
||||||
|
return "", false
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithoutEmpty returns the labelset without empty labels.
|
||||||
|
// May return the same labelset.
|
||||||
|
func (ls Labels) WithoutEmpty() Labels {
|
||||||
|
for pos := 0; pos < len(ls.data); {
|
||||||
|
_, newPos := decodeString(ls.data, pos)
|
||||||
|
lValue, newPos := decodeString(ls.data, newPos)
|
||||||
|
if lValue != "" {
|
||||||
|
pos = newPos
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Do not copy the slice until it's necessary.
|
||||||
|
// TODO: could optimise the case where all blanks are at the end.
|
||||||
|
// Note: we size the new buffer on the assumption there is exactly one blank value.
|
||||||
|
buf := make([]byte, pos, pos+(len(ls.data)-newPos))
|
||||||
|
copy(buf, ls.data[:pos]) // copy the initial non-blank labels
|
||||||
|
pos = newPos // move past the first blank value
|
||||||
|
for pos < len(ls.data) {
|
||||||
|
var newPos int
|
||||||
|
_, newPos = decodeString(ls.data, pos)
|
||||||
|
lValue, newPos = decodeString(ls.data, newPos)
|
||||||
|
if lValue != "" {
|
||||||
|
buf = append(buf, ls.data[pos:newPos]...)
|
||||||
|
}
|
||||||
|
pos = newPos
|
||||||
|
}
|
||||||
|
return Labels{data: yoloString(buf)}
|
||||||
|
}
|
||||||
|
return ls
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsValid checks if the metric name or label names are valid.
|
||||||
|
func (ls Labels) IsValid() bool {
|
||||||
|
err := ls.Validate(func(l Label) error {
|
||||||
|
if l.Name == model.MetricNameLabel && !model.IsValidMetricName(model.LabelValue(l.Value)) {
|
||||||
|
return strconv.ErrSyntax
|
||||||
|
}
|
||||||
|
if !model.LabelName(l.Name).IsValid() || !model.LabelValue(l.Value).IsValid() {
|
||||||
|
return strconv.ErrSyntax
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
return err == nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Equal returns whether the two label sets are equal.
|
||||||
|
func Equal(ls, o Labels) bool {
|
||||||
|
return ls.data == o.data
|
||||||
|
}
|
||||||
|
|
||||||
|
// Map returns a string map of the labels.
|
||||||
|
func (ls Labels) Map() map[string]string {
|
||||||
|
m := make(map[string]string, len(ls.data)/10)
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
var lName, lValue string
|
||||||
|
lName, i = decodeString(ls.data, i)
|
||||||
|
lValue, i = decodeString(ls.data, i)
|
||||||
|
m[lName] = lValue
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
// EmptyLabels returns an empty Labels value, for convenience.
|
||||||
|
func EmptyLabels() Labels {
|
||||||
|
return Labels{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func yoloString(b []byte) string {
|
||||||
|
return *((*string)(unsafe.Pointer(&b)))
|
||||||
|
}
|
||||||
|
|
||||||
|
func yoloBytes(s string) (b []byte) {
|
||||||
|
*(*string)(unsafe.Pointer(&b)) = s
|
||||||
|
(*reflect.SliceHeader)(unsafe.Pointer(&b)).Cap = len(s)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// New returns a sorted Labels from the given labels.
|
||||||
|
// The caller has to guarantee that all label names are unique.
|
||||||
|
func New(ls ...Label) Labels {
|
||||||
|
slices.SortFunc(ls, func(a, b Label) bool { return a.Name < b.Name })
|
||||||
|
size := labelsSize(ls)
|
||||||
|
buf := make([]byte, size)
|
||||||
|
marshalLabelsToSizedBuffer(ls, buf)
|
||||||
|
return Labels{data: yoloString(buf)}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FromMap returns new sorted Labels from the given map.
|
||||||
|
func FromMap(m map[string]string) Labels {
|
||||||
|
l := make([]Label, 0, len(m))
|
||||||
|
for k, v := range m {
|
||||||
|
l = append(l, Label{Name: k, Value: v})
|
||||||
|
}
|
||||||
|
return New(l...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FromStrings creates new labels from pairs of strings.
|
||||||
|
func FromStrings(ss ...string) Labels {
|
||||||
|
if len(ss)%2 != 0 {
|
||||||
|
panic("invalid number of strings")
|
||||||
|
}
|
||||||
|
ls := make([]Label, 0, len(ss)/2)
|
||||||
|
for i := 0; i < len(ss); i += 2 {
|
||||||
|
ls = append(ls, Label{Name: ss[i], Value: ss[i+1]})
|
||||||
|
}
|
||||||
|
|
||||||
|
return New(ls...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compare compares the two label sets.
|
||||||
|
// The result will be 0 if a==b, <0 if a < b, and >0 if a > b.
|
||||||
|
// TODO: replace with Less function - Compare is never needed.
|
||||||
|
// TODO: just compare the underlying strings when we don't need alphanumeric sorting.
|
||||||
|
func Compare(a, b Labels) int {
|
||||||
|
l := len(a.data)
|
||||||
|
if len(b.data) < l {
|
||||||
|
l = len(b.data)
|
||||||
|
}
|
||||||
|
|
||||||
|
ia, ib := 0, 0
|
||||||
|
for ia < l {
|
||||||
|
var aName, bName string
|
||||||
|
aName, ia = decodeString(a.data, ia)
|
||||||
|
bName, ib = decodeString(b.data, ib)
|
||||||
|
if aName != bName {
|
||||||
|
if aName < bName {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
var aValue, bValue string
|
||||||
|
aValue, ia = decodeString(a.data, ia)
|
||||||
|
bValue, ib = decodeString(b.data, ib)
|
||||||
|
if aValue != bValue {
|
||||||
|
if aValue < bValue {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// If all labels so far were in common, the set with fewer labels comes first.
|
||||||
|
return len(a.data) - len(b.data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copy labels from b on top of whatever was in ls previously, reusing memory or expanding if needed.
|
||||||
|
func (ls *Labels) CopyFrom(b Labels) {
|
||||||
|
ls.data = b.data // strings are immutable
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsEmpty returns true if ls represents an empty set of labels.
|
||||||
|
func (ls Labels) IsEmpty() bool {
|
||||||
|
return len(ls.data) == 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Len returns the number of labels; it is relatively slow.
|
||||||
|
func (ls Labels) Len() int {
|
||||||
|
count := 0
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
var size int
|
||||||
|
size, i = decodeSize(ls.data, i)
|
||||||
|
i += size
|
||||||
|
size, i = decodeSize(ls.data, i)
|
||||||
|
i += size
|
||||||
|
count++
|
||||||
|
}
|
||||||
|
return count
|
||||||
|
}
|
||||||
|
|
||||||
|
// Range calls f on each label.
|
||||||
|
func (ls Labels) Range(f func(l Label)) {
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
var lName, lValue string
|
||||||
|
lName, i = decodeString(ls.data, i)
|
||||||
|
lValue, i = decodeString(ls.data, i)
|
||||||
|
f(Label{Name: lName, Value: lValue})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate calls f on each label. If f returns a non-nil error, then it returns that error cancelling the iteration.
|
||||||
|
func (ls Labels) Validate(f func(l Label) error) error {
|
||||||
|
for i := 0; i < len(ls.data); {
|
||||||
|
var lName, lValue string
|
||||||
|
lName, i = decodeString(ls.data, i)
|
||||||
|
lValue, i = decodeString(ls.data, i)
|
||||||
|
err := f(Label{Name: lName, Value: lValue})
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// InternStrings calls intern on every string value inside ls, replacing them with what it returns.
|
||||||
|
func (ls *Labels) InternStrings(intern func(string) string) {
|
||||||
|
ls.data = intern(ls.data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReleaseStrings calls release on every string value inside ls.
|
||||||
|
func (ls Labels) ReleaseStrings(release func(string)) {
|
||||||
|
release(ls.data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Builder allows modifying Labels.
|
||||||
|
type Builder struct {
|
||||||
|
base Labels
|
||||||
|
del []string
|
||||||
|
add []Label
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewBuilder returns a new LabelsBuilder.
|
||||||
|
func NewBuilder(base Labels) *Builder {
|
||||||
|
b := &Builder{
|
||||||
|
del: make([]string, 0, 5),
|
||||||
|
add: make([]Label, 0, 5),
|
||||||
|
}
|
||||||
|
b.Reset(base)
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// Reset clears all current state for the builder.
|
||||||
|
func (b *Builder) Reset(base Labels) {
|
||||||
|
b.base = base
|
||||||
|
b.del = b.del[:0]
|
||||||
|
b.add = b.add[:0]
|
||||||
|
for i := 0; i < len(base.data); {
|
||||||
|
var lName, lValue string
|
||||||
|
lName, i = decodeString(base.data, i)
|
||||||
|
lValue, i = decodeString(base.data, i)
|
||||||
|
if lValue == "" {
|
||||||
|
b.del = append(b.del, lName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Del deletes the label of the given name.
|
||||||
|
func (b *Builder) Del(ns ...string) *Builder {
|
||||||
|
for _, n := range ns {
|
||||||
|
for i, a := range b.add {
|
||||||
|
if a.Name == n {
|
||||||
|
b.add = append(b.add[:i], b.add[i+1:]...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b.del = append(b.del, n)
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// Keep removes all labels from the base except those with the given names.
|
||||||
|
func (b *Builder) Keep(ns ...string) *Builder {
|
||||||
|
Outer:
|
||||||
|
for i := 0; i < len(b.base.data); {
|
||||||
|
var lName string
|
||||||
|
lName, i = decodeString(b.base.data, i)
|
||||||
|
_, i = decodeString(b.base.data, i)
|
||||||
|
for _, n := range ns {
|
||||||
|
if lName == n {
|
||||||
|
continue Outer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b.del = append(b.del, lName)
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the name/value pair as a label. A value of "" means delete that label.
|
||||||
|
func (b *Builder) Set(n, v string) *Builder {
|
||||||
|
if v == "" {
|
||||||
|
// Empty labels are the same as missing labels.
|
||||||
|
return b.Del(n)
|
||||||
|
}
|
||||||
|
for i, a := range b.add {
|
||||||
|
if a.Name == n {
|
||||||
|
b.add[i].Value = v
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
b.add = append(b.add, Label{Name: n, Value: v})
|
||||||
|
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *Builder) Get(n string) string {
|
||||||
|
if slices.Contains(b.del, n) {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
for _, a := range b.add {
|
||||||
|
if a.Name == n {
|
||||||
|
return a.Value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return b.base.Get(n)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Range calls f on each label in the Builder.
|
||||||
|
func (b *Builder) Range(f func(l Label)) {
|
||||||
|
// Stack-based arrays to avoid heap allocation in most cases.
|
||||||
|
var addStack [1024]Label
|
||||||
|
var delStack [1024]string
|
||||||
|
// Take a copy of add and del, so they are unaffected by calls to Set() or Del().
|
||||||
|
origAdd, origDel := append(addStack[:0], b.add...), append(delStack[:0], b.del...)
|
||||||
|
b.base.Range(func(l Label) {
|
||||||
|
if !slices.Contains(origDel, l.Name) && !contains(origAdd, l.Name) {
|
||||||
|
f(l)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
for _, a := range origAdd {
|
||||||
|
f(a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func contains(s []Label, n string) bool {
|
||||||
|
for _, a := range s {
|
||||||
|
if a.Name == n {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Labels returns the labels from the builder, adding them to res if non-nil.
|
||||||
|
// Argument res can be the same as b.base, if caller wants to overwrite that slice.
|
||||||
|
// If no modifications were made, the original labels are returned.
|
||||||
|
func (b *Builder) Labels(res Labels) Labels {
|
||||||
|
if len(b.del) == 0 && len(b.add) == 0 {
|
||||||
|
return b.base
|
||||||
|
}
|
||||||
|
|
||||||
|
slices.SortFunc(b.add, func(a, b Label) bool { return a.Name < b.Name })
|
||||||
|
slices.Sort(b.del)
|
||||||
|
a, d := 0, 0
|
||||||
|
|
||||||
|
bufSize := len(b.base.data) + labelsSize(b.add)
|
||||||
|
buf := make([]byte, 0, bufSize) // TODO: see if we can re-use the buffer from res.
|
||||||
|
for pos := 0; pos < len(b.base.data); {
|
||||||
|
oldPos := pos
|
||||||
|
var lName string
|
||||||
|
lName, pos = decodeString(b.base.data, pos)
|
||||||
|
_, pos = decodeString(b.base.data, pos)
|
||||||
|
for d < len(b.del) && b.del[d] < lName {
|
||||||
|
d++
|
||||||
|
}
|
||||||
|
if d < len(b.del) && b.del[d] == lName {
|
||||||
|
continue // This label has been deleted.
|
||||||
|
}
|
||||||
|
for ; a < len(b.add) && b.add[a].Name < lName; a++ {
|
||||||
|
buf = appendLabelTo(buf, &b.add[a]) // Insert label that was not in the base set.
|
||||||
|
}
|
||||||
|
if a < len(b.add) && b.add[a].Name == lName {
|
||||||
|
buf = appendLabelTo(buf, &b.add[a])
|
||||||
|
a++
|
||||||
|
continue // This label has been replaced.
|
||||||
|
}
|
||||||
|
buf = append(buf, b.base.data[oldPos:pos]...)
|
||||||
|
}
|
||||||
|
// We have come to the end of the base set; add any remaining labels.
|
||||||
|
for ; a < len(b.add); a++ {
|
||||||
|
buf = appendLabelTo(buf, &b.add[a])
|
||||||
|
}
|
||||||
|
return Labels{data: yoloString(buf)}
|
||||||
|
}
|
||||||
|
|
||||||
|
func marshalLabelsToSizedBuffer(lbls []Label, data []byte) int {
|
||||||
|
i := len(data)
|
||||||
|
for index := len(lbls) - 1; index >= 0; index-- {
|
||||||
|
size := marshalLabelToSizedBuffer(&lbls[index], data[:i])
|
||||||
|
i -= size
|
||||||
|
}
|
||||||
|
return len(data) - i
|
||||||
|
}
|
||||||
|
|
||||||
|
func marshalLabelToSizedBuffer(m *Label, data []byte) int {
|
||||||
|
i := len(data)
|
||||||
|
i -= len(m.Value)
|
||||||
|
copy(data[i:], m.Value)
|
||||||
|
i = encodeSize(data, i, len(m.Value))
|
||||||
|
i -= len(m.Name)
|
||||||
|
copy(data[i:], m.Name)
|
||||||
|
i = encodeSize(data, i, len(m.Name))
|
||||||
|
return len(data) - i
|
||||||
|
}
|
||||||
|
|
||||||
|
func sizeVarint(x uint64) (n int) {
|
||||||
|
// Most common case first
|
||||||
|
if x < 1<<7 {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
if x >= 1<<56 {
|
||||||
|
return 9
|
||||||
|
}
|
||||||
|
if x >= 1<<28 {
|
||||||
|
x >>= 28
|
||||||
|
n = 4
|
||||||
|
}
|
||||||
|
if x >= 1<<14 {
|
||||||
|
x >>= 14
|
||||||
|
n += 2
|
||||||
|
}
|
||||||
|
if x >= 1<<7 {
|
||||||
|
n++
|
||||||
|
}
|
||||||
|
return n + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
func encodeVarint(data []byte, offset int, v uint64) int {
|
||||||
|
offset -= sizeVarint(v)
|
||||||
|
base := offset
|
||||||
|
for v >= 1<<7 {
|
||||||
|
data[offset] = uint8(v&0x7f | 0x80)
|
||||||
|
v >>= 7
|
||||||
|
offset++
|
||||||
|
}
|
||||||
|
data[offset] = uint8(v)
|
||||||
|
return base
|
||||||
|
}
|
||||||
|
|
||||||
|
// Special code for the common case that a size is less than 128
|
||||||
|
func encodeSize(data []byte, offset, v int) int {
|
||||||
|
if v < 1<<7 {
|
||||||
|
offset--
|
||||||
|
data[offset] = uint8(v)
|
||||||
|
return offset
|
||||||
|
}
|
||||||
|
return encodeVarint(data, offset, uint64(v))
|
||||||
|
}
|
||||||
|
|
||||||
|
func labelsSize(lbls []Label) (n int) {
|
||||||
|
// we just encode name/value/name/value, without any extra tags or length bytes
|
||||||
|
for _, e := range lbls {
|
||||||
|
n += labelSize(&e)
|
||||||
|
}
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
|
||||||
|
func labelSize(m *Label) (n int) {
|
||||||
|
// strings are encoded as length followed by contents.
|
||||||
|
l := len(m.Name)
|
||||||
|
n += l + sizeVarint(uint64(l))
|
||||||
|
l = len(m.Value)
|
||||||
|
n += l + sizeVarint(uint64(l))
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
|
||||||
|
func appendLabelTo(buf []byte, m *Label) []byte {
|
||||||
|
size := labelSize(m)
|
||||||
|
sizeRequired := len(buf) + size
|
||||||
|
if cap(buf) >= sizeRequired {
|
||||||
|
buf = buf[:sizeRequired]
|
||||||
|
} else {
|
||||||
|
bufSize := cap(buf)
|
||||||
|
// Double size of buffer each time it needs to grow, to amortise copying cost.
|
||||||
|
for bufSize < sizeRequired {
|
||||||
|
bufSize = bufSize*2 + 1
|
||||||
|
}
|
||||||
|
newBuf := make([]byte, sizeRequired, bufSize)
|
||||||
|
copy(newBuf, buf)
|
||||||
|
buf = newBuf
|
||||||
|
}
|
||||||
|
marshalLabelToSizedBuffer(m, buf)
|
||||||
|
return buf
|
||||||
|
}
|
||||||
|
|
||||||
|
// ScratchBuilder allows efficient construction of a Labels from scratch.
|
||||||
|
type ScratchBuilder struct {
|
||||||
|
add []Label
|
||||||
|
output Labels
|
||||||
|
overwriteBuffer []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewScratchBuilder creates a ScratchBuilder initialized for Labels with n entries.
|
||||||
|
func NewScratchBuilder(n int) ScratchBuilder {
|
||||||
|
return ScratchBuilder{add: make([]Label, 0, n)}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (b *ScratchBuilder) Reset() {
|
||||||
|
b.add = b.add[:0]
|
||||||
|
b.output = EmptyLabels()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a name/value pair.
|
||||||
|
// Note if you Add the same name twice you will get a duplicate label, which is invalid.
|
||||||
|
func (b *ScratchBuilder) Add(name, value string) {
|
||||||
|
b.add = append(b.add, Label{Name: name, Value: value})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort the labels added so far by name.
|
||||||
|
func (b *ScratchBuilder) Sort() {
|
||||||
|
slices.SortFunc(b.add, func(a, b Label) bool { return a.Name < b.Name })
|
||||||
|
}
|
||||||
|
|
||||||
|
// Asssign is for when you already have a Labels which you want this ScratchBuilder to return.
|
||||||
|
func (b *ScratchBuilder) Assign(l Labels) {
|
||||||
|
b.output = l
|
||||||
|
}
|
||||||
|
|
||||||
|
// Labels returns the name/value pairs added as a Labels object. Calling Add() after Labels() has no effect.
|
||||||
|
// Note: if you want them sorted, call Sort() first.
|
||||||
|
func (b *ScratchBuilder) Labels() Labels {
|
||||||
|
if b.output.IsEmpty() {
|
||||||
|
size := labelsSize(b.add)
|
||||||
|
buf := make([]byte, size)
|
||||||
|
marshalLabelsToSizedBuffer(b.add, buf)
|
||||||
|
b.output = Labels{data: yoloString(buf)}
|
||||||
|
}
|
||||||
|
return b.output
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write the newly-built Labels out to ls, reusing an internal buffer.
|
||||||
|
// Callers must ensure that there are no other references to ls.
|
||||||
|
func (b *ScratchBuilder) Overwrite(ls *Labels) {
|
||||||
|
size := labelsSize(b.add)
|
||||||
|
if size <= cap(b.overwriteBuffer) {
|
||||||
|
b.overwriteBuffer = b.overwriteBuffer[:size]
|
||||||
|
} else {
|
||||||
|
b.overwriteBuffer = make([]byte, size)
|
||||||
|
}
|
||||||
|
marshalLabelsToSizedBuffer(b.add, b.overwriteBuffer)
|
||||||
|
ls.data = yoloString(b.overwriteBuffer)
|
||||||
|
}
|
66
vendor/github.com/prometheus/prometheus/model/relabel/relabel.go
generated
vendored
66
vendor/github.com/prometheus/prometheus/model/relabel/relabel.go
generated
vendored
|
@ -15,6 +15,7 @@ package relabel
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
|
"encoding/binary"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
@ -206,45 +207,52 @@ func (re Regexp) String() string {
|
||||||
// If a label set is dropped, EmptyLabels and false is returned.
|
// If a label set is dropped, EmptyLabels and false is returned.
|
||||||
// May return the input labelSet modified.
|
// May return the input labelSet modified.
|
||||||
func Process(lbls labels.Labels, cfgs ...*Config) (ret labels.Labels, keep bool) {
|
func Process(lbls labels.Labels, cfgs ...*Config) (ret labels.Labels, keep bool) {
|
||||||
lb := labels.NewBuilder(labels.EmptyLabels())
|
lb := labels.NewBuilder(lbls)
|
||||||
for _, cfg := range cfgs {
|
if !ProcessBuilder(lb, cfgs...) {
|
||||||
lbls, keep = relabel(lbls, cfg, lb)
|
return labels.EmptyLabels(), false
|
||||||
if !keep {
|
|
||||||
return labels.EmptyLabels(), false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return lbls, true
|
return lb.Labels(lbls), true
|
||||||
}
|
}
|
||||||
|
|
||||||
func relabel(lset labels.Labels, cfg *Config, lb *labels.Builder) (ret labels.Labels, keep bool) {
|
// ProcessBuilder is like Process, but the caller passes a labels.Builder
|
||||||
|
// containing the initial set of labels, which is mutated by the rules.
|
||||||
|
func ProcessBuilder(lb *labels.Builder, cfgs ...*Config) (keep bool) {
|
||||||
|
for _, cfg := range cfgs {
|
||||||
|
keep = relabel(cfg, lb)
|
||||||
|
if !keep {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func relabel(cfg *Config, lb *labels.Builder) (keep bool) {
|
||||||
var va [16]string
|
var va [16]string
|
||||||
values := va[:0]
|
values := va[:0]
|
||||||
if len(cfg.SourceLabels) > cap(values) {
|
if len(cfg.SourceLabels) > cap(values) {
|
||||||
values = make([]string, 0, len(cfg.SourceLabels))
|
values = make([]string, 0, len(cfg.SourceLabels))
|
||||||
}
|
}
|
||||||
for _, ln := range cfg.SourceLabels {
|
for _, ln := range cfg.SourceLabels {
|
||||||
values = append(values, lset.Get(string(ln)))
|
values = append(values, lb.Get(string(ln)))
|
||||||
}
|
}
|
||||||
val := strings.Join(values, cfg.Separator)
|
val := strings.Join(values, cfg.Separator)
|
||||||
|
|
||||||
lb.Reset(lset)
|
|
||||||
|
|
||||||
switch cfg.Action {
|
switch cfg.Action {
|
||||||
case Drop:
|
case Drop:
|
||||||
if cfg.Regex.MatchString(val) {
|
if cfg.Regex.MatchString(val) {
|
||||||
return labels.EmptyLabels(), false
|
return false
|
||||||
}
|
}
|
||||||
case Keep:
|
case Keep:
|
||||||
if !cfg.Regex.MatchString(val) {
|
if !cfg.Regex.MatchString(val) {
|
||||||
return labels.EmptyLabels(), false
|
return false
|
||||||
}
|
}
|
||||||
case DropEqual:
|
case DropEqual:
|
||||||
if lset.Get(cfg.TargetLabel) == val {
|
if lb.Get(cfg.TargetLabel) == val {
|
||||||
return labels.EmptyLabels(), false
|
return false
|
||||||
}
|
}
|
||||||
case KeepEqual:
|
case KeepEqual:
|
||||||
if lset.Get(cfg.TargetLabel) != val {
|
if lb.Get(cfg.TargetLabel) != val {
|
||||||
return labels.EmptyLabels(), false
|
return false
|
||||||
}
|
}
|
||||||
case Replace:
|
case Replace:
|
||||||
indexes := cfg.Regex.FindStringSubmatchIndex(val)
|
indexes := cfg.Regex.FindStringSubmatchIndex(val)
|
||||||
|
@ -268,23 +276,25 @@ func relabel(lset labels.Labels, cfg *Config, lb *labels.Builder) (ret labels.La
|
||||||
case Uppercase:
|
case Uppercase:
|
||||||
lb.Set(cfg.TargetLabel, strings.ToUpper(val))
|
lb.Set(cfg.TargetLabel, strings.ToUpper(val))
|
||||||
case HashMod:
|
case HashMod:
|
||||||
mod := sum64(md5.Sum([]byte(val))) % cfg.Modulus
|
hash := md5.Sum([]byte(val))
|
||||||
|
// Use only the last 8 bytes of the hash to give the same result as earlier versions of this code.
|
||||||
|
mod := binary.BigEndian.Uint64(hash[8:]) % cfg.Modulus
|
||||||
lb.Set(cfg.TargetLabel, fmt.Sprintf("%d", mod))
|
lb.Set(cfg.TargetLabel, fmt.Sprintf("%d", mod))
|
||||||
case LabelMap:
|
case LabelMap:
|
||||||
lset.Range(func(l labels.Label) {
|
lb.Range(func(l labels.Label) {
|
||||||
if cfg.Regex.MatchString(l.Name) {
|
if cfg.Regex.MatchString(l.Name) {
|
||||||
res := cfg.Regex.ReplaceAllString(l.Name, cfg.Replacement)
|
res := cfg.Regex.ReplaceAllString(l.Name, cfg.Replacement)
|
||||||
lb.Set(res, l.Value)
|
lb.Set(res, l.Value)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
case LabelDrop:
|
case LabelDrop:
|
||||||
lset.Range(func(l labels.Label) {
|
lb.Range(func(l labels.Label) {
|
||||||
if cfg.Regex.MatchString(l.Name) {
|
if cfg.Regex.MatchString(l.Name) {
|
||||||
lb.Del(l.Name)
|
lb.Del(l.Name)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
case LabelKeep:
|
case LabelKeep:
|
||||||
lset.Range(func(l labels.Label) {
|
lb.Range(func(l labels.Label) {
|
||||||
if !cfg.Regex.MatchString(l.Name) {
|
if !cfg.Regex.MatchString(l.Name) {
|
||||||
lb.Del(l.Name)
|
lb.Del(l.Name)
|
||||||
}
|
}
|
||||||
|
@ -293,17 +303,5 @@ func relabel(lset labels.Labels, cfg *Config, lb *labels.Builder) (ret labels.La
|
||||||
panic(fmt.Errorf("relabel: unknown relabel action type %q", cfg.Action))
|
panic(fmt.Errorf("relabel: unknown relabel action type %q", cfg.Action))
|
||||||
}
|
}
|
||||||
|
|
||||||
return lb.Labels(lset), true
|
return true
|
||||||
}
|
|
||||||
|
|
||||||
// sum64 sums the md5 hash to an uint64.
|
|
||||||
func sum64(hash [md5.Size]byte) uint64 {
|
|
||||||
var s uint64
|
|
||||||
|
|
||||||
for i, b := range hash {
|
|
||||||
shift := uint64((md5.Size - i - 1) * 8)
|
|
||||||
|
|
||||||
s |= uint64(b) << shift
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
}
|
||||||
|
|
77
vendor/github.com/prometheus/prometheus/model/textparse/openmetricsparse.go
generated
vendored
77
vendor/github.com/prometheus/prometheus/model/textparse/openmetricsparse.go
generated
vendored
|
@ -17,7 +17,6 @@
|
||||||
package textparse
|
package textparse
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
@ -31,8 +30,6 @@ import (
|
||||||
"github.com/prometheus/prometheus/model/value"
|
"github.com/prometheus/prometheus/model/value"
|
||||||
)
|
)
|
||||||
|
|
||||||
var allowedSuffixes = [][]byte{[]byte("_total"), []byte("_bucket")}
|
|
||||||
|
|
||||||
type openMetricsLexer struct {
|
type openMetricsLexer struct {
|
||||||
b []byte
|
b []byte
|
||||||
i int
|
i int
|
||||||
|
@ -46,13 +43,6 @@ func (l *openMetricsLexer) buf() []byte {
|
||||||
return l.b[l.start:l.i]
|
return l.b[l.start:l.i]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *openMetricsLexer) cur() byte {
|
|
||||||
if l.i < len(l.b) {
|
|
||||||
return l.b[l.i]
|
|
||||||
}
|
|
||||||
return byte(' ')
|
|
||||||
}
|
|
||||||
|
|
||||||
// next advances the openMetricsLexer to the next character.
|
// next advances the openMetricsLexer to the next character.
|
||||||
func (l *openMetricsLexer) next() byte {
|
func (l *openMetricsLexer) next() byte {
|
||||||
l.i++
|
l.i++
|
||||||
|
@ -223,6 +213,14 @@ func (p *OpenMetricsParser) nextToken() token {
|
||||||
return tok
|
return tok
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *OpenMetricsParser) parseError(exp string, got token) error {
|
||||||
|
e := p.l.i + 1
|
||||||
|
if len(p.l.b) < e {
|
||||||
|
e = len(p.l.b)
|
||||||
|
}
|
||||||
|
return fmt.Errorf("%s, got %q (%q) while parsing: %q", exp, p.l.b[p.l.start:e], got, p.l.b[p.start:e])
|
||||||
|
}
|
||||||
|
|
||||||
// Next advances the parser to the next sample. It returns false if no
|
// Next advances the parser to the next sample. It returns false if no
|
||||||
// more samples were read or an error occurred.
|
// more samples were read or an error occurred.
|
||||||
func (p *OpenMetricsParser) Next() (Entry, error) {
|
func (p *OpenMetricsParser) Next() (Entry, error) {
|
||||||
|
@ -248,7 +246,7 @@ func (p *OpenMetricsParser) Next() (Entry, error) {
|
||||||
case tMName:
|
case tMName:
|
||||||
p.offsets = append(p.offsets, p.l.start, p.l.i)
|
p.offsets = append(p.offsets, p.l.start, p.l.i)
|
||||||
default:
|
default:
|
||||||
return EntryInvalid, parseError("expected metric name after "+t.String(), t2)
|
return EntryInvalid, p.parseError("expected metric name after "+t.String(), t2)
|
||||||
}
|
}
|
||||||
switch t2 := p.nextToken(); t2 {
|
switch t2 := p.nextToken(); t2 {
|
||||||
case tText:
|
case tText:
|
||||||
|
@ -284,7 +282,7 @@ func (p *OpenMetricsParser) Next() (Entry, error) {
|
||||||
}
|
}
|
||||||
case tHelp:
|
case tHelp:
|
||||||
if !utf8.Valid(p.text) {
|
if !utf8.Valid(p.text) {
|
||||||
return EntryInvalid, errors.New("help text is not a valid utf8 string")
|
return EntryInvalid, fmt.Errorf("help text %q is not a valid utf8 string", p.text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch t {
|
switch t {
|
||||||
|
@ -297,7 +295,7 @@ func (p *OpenMetricsParser) Next() (Entry, error) {
|
||||||
u := yoloString(p.text)
|
u := yoloString(p.text)
|
||||||
if len(u) > 0 {
|
if len(u) > 0 {
|
||||||
if !strings.HasSuffix(m, u) || len(m) < len(u)+1 || p.l.b[p.offsets[1]-len(u)-1] != '_' {
|
if !strings.HasSuffix(m, u) || len(m) < len(u)+1 || p.l.b[p.offsets[1]-len(u)-1] != '_' {
|
||||||
return EntryInvalid, fmt.Errorf("unit not a suffix of metric %q", m)
|
return EntryInvalid, fmt.Errorf("unit %q not a suffix of metric %q", u, m)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return EntryUnit, nil
|
return EntryUnit, nil
|
||||||
|
@ -336,10 +334,10 @@ func (p *OpenMetricsParser) Next() (Entry, error) {
|
||||||
var ts float64
|
var ts float64
|
||||||
// A float is enough to hold what we need for millisecond resolution.
|
// A float is enough to hold what we need for millisecond resolution.
|
||||||
if ts, err = parseFloat(yoloString(p.l.buf()[1:])); err != nil {
|
if ts, err = parseFloat(yoloString(p.l.buf()[1:])); err != nil {
|
||||||
return EntryInvalid, err
|
return EntryInvalid, fmt.Errorf("%v while parsing: %q", err, p.l.b[p.start:p.l.i])
|
||||||
}
|
}
|
||||||
if math.IsNaN(ts) || math.IsInf(ts, 0) {
|
if math.IsNaN(ts) || math.IsInf(ts, 0) {
|
||||||
return EntryInvalid, errors.New("invalid timestamp")
|
return EntryInvalid, fmt.Errorf("invalid timestamp %f", ts)
|
||||||
}
|
}
|
||||||
p.ts = int64(ts * 1000)
|
p.ts = int64(ts * 1000)
|
||||||
switch t3 := p.nextToken(); t3 {
|
switch t3 := p.nextToken(); t3 {
|
||||||
|
@ -349,26 +347,20 @@ func (p *OpenMetricsParser) Next() (Entry, error) {
|
||||||
return EntryInvalid, err
|
return EntryInvalid, err
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return EntryInvalid, parseError("expected next entry after timestamp", t3)
|
return EntryInvalid, p.parseError("expected next entry after timestamp", t3)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return EntryInvalid, parseError("expected timestamp or # symbol", t2)
|
return EntryInvalid, p.parseError("expected timestamp or # symbol", t2)
|
||||||
}
|
}
|
||||||
return EntrySeries, nil
|
return EntrySeries, nil
|
||||||
|
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("%q %q is not a valid start token", t, string(p.l.cur()))
|
err = p.parseError("expected a valid start token", t)
|
||||||
}
|
}
|
||||||
return EntryInvalid, err
|
return EntryInvalid, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *OpenMetricsParser) parseComment() error {
|
func (p *OpenMetricsParser) parseComment() error {
|
||||||
// Validate the name of the metric. It must have _total or _bucket as
|
|
||||||
// suffix for exemplars to be supported.
|
|
||||||
if err := p.validateNameForExemplar(p.series[:p.offsets[0]-p.start]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
// Parse the labels.
|
// Parse the labels.
|
||||||
p.eOffsets, err = p.parseLVals(p.eOffsets)
|
p.eOffsets, err = p.parseLVals(p.eOffsets)
|
||||||
|
@ -395,19 +387,19 @@ func (p *OpenMetricsParser) parseComment() error {
|
||||||
var ts float64
|
var ts float64
|
||||||
// A float is enough to hold what we need for millisecond resolution.
|
// A float is enough to hold what we need for millisecond resolution.
|
||||||
if ts, err = parseFloat(yoloString(p.l.buf()[1:])); err != nil {
|
if ts, err = parseFloat(yoloString(p.l.buf()[1:])); err != nil {
|
||||||
return err
|
return fmt.Errorf("%v while parsing: %q", err, p.l.b[p.start:p.l.i])
|
||||||
}
|
}
|
||||||
if math.IsNaN(ts) || math.IsInf(ts, 0) {
|
if math.IsNaN(ts) || math.IsInf(ts, 0) {
|
||||||
return errors.New("invalid exemplar timestamp")
|
return fmt.Errorf("invalid exemplar timestamp %f", ts)
|
||||||
}
|
}
|
||||||
p.exemplarTs = int64(ts * 1000)
|
p.exemplarTs = int64(ts * 1000)
|
||||||
switch t3 := p.nextToken(); t3 {
|
switch t3 := p.nextToken(); t3 {
|
||||||
case tLinebreak:
|
case tLinebreak:
|
||||||
default:
|
default:
|
||||||
return parseError("expected next entry after exemplar timestamp", t3)
|
return p.parseError("expected next entry after exemplar timestamp", t3)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return parseError("expected timestamp or comment", t2)
|
return p.parseError("expected timestamp or comment", t2)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -421,21 +413,21 @@ func (p *OpenMetricsParser) parseLVals(offsets []int) ([]int, error) {
|
||||||
return offsets, nil
|
return offsets, nil
|
||||||
case tComma:
|
case tComma:
|
||||||
if first {
|
if first {
|
||||||
return nil, parseError("expected label name or left brace", t)
|
return nil, p.parseError("expected label name or left brace", t)
|
||||||
}
|
}
|
||||||
t = p.nextToken()
|
t = p.nextToken()
|
||||||
if t != tLName {
|
if t != tLName {
|
||||||
return nil, parseError("expected label name", t)
|
return nil, p.parseError("expected label name", t)
|
||||||
}
|
}
|
||||||
case tLName:
|
case tLName:
|
||||||
if !first {
|
if !first {
|
||||||
return nil, parseError("expected comma", t)
|
return nil, p.parseError("expected comma", t)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if first {
|
if first {
|
||||||
return nil, parseError("expected label name or left brace", t)
|
return nil, p.parseError("expected label name or left brace", t)
|
||||||
}
|
}
|
||||||
return nil, parseError("expected comma or left brace", t)
|
return nil, p.parseError("expected comma or left brace", t)
|
||||||
|
|
||||||
}
|
}
|
||||||
first = false
|
first = false
|
||||||
|
@ -444,13 +436,13 @@ func (p *OpenMetricsParser) parseLVals(offsets []int) ([]int, error) {
|
||||||
offsets = append(offsets, p.l.start, p.l.i)
|
offsets = append(offsets, p.l.start, p.l.i)
|
||||||
|
|
||||||
if t := p.nextToken(); t != tEqual {
|
if t := p.nextToken(); t != tEqual {
|
||||||
return nil, parseError("expected equal", t)
|
return nil, p.parseError("expected equal", t)
|
||||||
}
|
}
|
||||||
if t := p.nextToken(); t != tLValue {
|
if t := p.nextToken(); t != tLValue {
|
||||||
return nil, parseError("expected label value", t)
|
return nil, p.parseError("expected label value", t)
|
||||||
}
|
}
|
||||||
if !utf8.Valid(p.l.buf()) {
|
if !utf8.Valid(p.l.buf()) {
|
||||||
return nil, errors.New("invalid UTF-8 label value")
|
return nil, fmt.Errorf("invalid UTF-8 label value: %q", p.l.buf())
|
||||||
}
|
}
|
||||||
|
|
||||||
// The openMetricsLexer ensures the value string is quoted. Strip first
|
// The openMetricsLexer ensures the value string is quoted. Strip first
|
||||||
|
@ -461,11 +453,11 @@ func (p *OpenMetricsParser) parseLVals(offsets []int) ([]int, error) {
|
||||||
|
|
||||||
func (p *OpenMetricsParser) getFloatValue(t token, after string) (float64, error) {
|
func (p *OpenMetricsParser) getFloatValue(t token, after string) (float64, error) {
|
||||||
if t != tValue {
|
if t != tValue {
|
||||||
return 0, parseError(fmt.Sprintf("expected value after %v", after), t)
|
return 0, p.parseError(fmt.Sprintf("expected value after %v", after), t)
|
||||||
}
|
}
|
||||||
val, err := parseFloat(yoloString(p.l.buf()[1:]))
|
val, err := parseFloat(yoloString(p.l.buf()[1:]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, err
|
return 0, fmt.Errorf("%v while parsing: %q", err, p.l.b[p.start:p.l.i])
|
||||||
}
|
}
|
||||||
// Ensure canonical NaN value.
|
// Ensure canonical NaN value.
|
||||||
if math.IsNaN(p.exemplarVal) {
|
if math.IsNaN(p.exemplarVal) {
|
||||||
|
@ -473,12 +465,3 @@ func (p *OpenMetricsParser) getFloatValue(t token, after string) (float64, error
|
||||||
}
|
}
|
||||||
return val, nil
|
return val, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *OpenMetricsParser) validateNameForExemplar(name []byte) error {
|
|
||||||
for _, suffix := range allowedSuffixes {
|
|
||||||
if bytes.HasSuffix(name, suffix) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return fmt.Errorf("metric name %v does not support exemplars", string(name))
|
|
||||||
}
|
|
||||||
|
|
36
vendor/github.com/prometheus/prometheus/model/textparse/promparse.go
generated
vendored
36
vendor/github.com/prometheus/prometheus/model/textparse/promparse.go
generated
vendored
|
@ -254,8 +254,12 @@ func (p *PromParser) nextToken() token {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseError(exp string, got token) error {
|
func (p *PromParser) parseError(exp string, got token) error {
|
||||||
return fmt.Errorf("%s, got %q", exp, got)
|
e := p.l.i + 1
|
||||||
|
if len(p.l.b) < e {
|
||||||
|
e = len(p.l.b)
|
||||||
|
}
|
||||||
|
return fmt.Errorf("%s, got %q (%q) while parsing: %q", exp, p.l.b[p.l.start:e], got, p.l.b[p.start:e])
|
||||||
}
|
}
|
||||||
|
|
||||||
// Next advances the parser to the next sample. It returns false if no
|
// Next advances the parser to the next sample. It returns false if no
|
||||||
|
@ -278,7 +282,7 @@ func (p *PromParser) Next() (Entry, error) {
|
||||||
case tMName:
|
case tMName:
|
||||||
p.offsets = append(p.offsets, p.l.start, p.l.i)
|
p.offsets = append(p.offsets, p.l.start, p.l.i)
|
||||||
default:
|
default:
|
||||||
return EntryInvalid, parseError("expected metric name after "+t.String(), t2)
|
return EntryInvalid, p.parseError("expected metric name after "+t.String(), t2)
|
||||||
}
|
}
|
||||||
switch t2 := p.nextToken(); t2 {
|
switch t2 := p.nextToken(); t2 {
|
||||||
case tText:
|
case tText:
|
||||||
|
@ -308,11 +312,11 @@ func (p *PromParser) Next() (Entry, error) {
|
||||||
}
|
}
|
||||||
case tHelp:
|
case tHelp:
|
||||||
if !utf8.Valid(p.text) {
|
if !utf8.Valid(p.text) {
|
||||||
return EntryInvalid, fmt.Errorf("help text is not a valid utf8 string")
|
return EntryInvalid, fmt.Errorf("help text %q is not a valid utf8 string", p.text)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if t := p.nextToken(); t != tLinebreak {
|
if t := p.nextToken(); t != tLinebreak {
|
||||||
return EntryInvalid, parseError("linebreak expected after metadata", t)
|
return EntryInvalid, p.parseError("linebreak expected after metadata", t)
|
||||||
}
|
}
|
||||||
switch t {
|
switch t {
|
||||||
case tHelp:
|
case tHelp:
|
||||||
|
@ -323,7 +327,7 @@ func (p *PromParser) Next() (Entry, error) {
|
||||||
case tComment:
|
case tComment:
|
||||||
p.text = p.l.buf()
|
p.text = p.l.buf()
|
||||||
if t := p.nextToken(); t != tLinebreak {
|
if t := p.nextToken(); t != tLinebreak {
|
||||||
return EntryInvalid, parseError("linebreak expected after comment", t)
|
return EntryInvalid, p.parseError("linebreak expected after comment", t)
|
||||||
}
|
}
|
||||||
return EntryComment, nil
|
return EntryComment, nil
|
||||||
|
|
||||||
|
@ -340,10 +344,10 @@ func (p *PromParser) Next() (Entry, error) {
|
||||||
t2 = p.nextToken()
|
t2 = p.nextToken()
|
||||||
}
|
}
|
||||||
if t2 != tValue {
|
if t2 != tValue {
|
||||||
return EntryInvalid, parseError("expected value after metric", t2)
|
return EntryInvalid, p.parseError("expected value after metric", t2)
|
||||||
}
|
}
|
||||||
if p.val, err = parseFloat(yoloString(p.l.buf())); err != nil {
|
if p.val, err = parseFloat(yoloString(p.l.buf())); err != nil {
|
||||||
return EntryInvalid, err
|
return EntryInvalid, fmt.Errorf("%v while parsing: %q", err, p.l.b[p.start:p.l.i])
|
||||||
}
|
}
|
||||||
// Ensure canonical NaN value.
|
// Ensure canonical NaN value.
|
||||||
if math.IsNaN(p.val) {
|
if math.IsNaN(p.val) {
|
||||||
|
@ -356,18 +360,18 @@ func (p *PromParser) Next() (Entry, error) {
|
||||||
case tTimestamp:
|
case tTimestamp:
|
||||||
p.hasTS = true
|
p.hasTS = true
|
||||||
if p.ts, err = strconv.ParseInt(yoloString(p.l.buf()), 10, 64); err != nil {
|
if p.ts, err = strconv.ParseInt(yoloString(p.l.buf()), 10, 64); err != nil {
|
||||||
return EntryInvalid, err
|
return EntryInvalid, fmt.Errorf("%v while parsing: %q", err, p.l.b[p.start:p.l.i])
|
||||||
}
|
}
|
||||||
if t2 := p.nextToken(); t2 != tLinebreak {
|
if t2 := p.nextToken(); t2 != tLinebreak {
|
||||||
return EntryInvalid, parseError("expected next entry after timestamp", t2)
|
return EntryInvalid, p.parseError("expected next entry after timestamp", t2)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return EntryInvalid, parseError("expected timestamp or new record", t)
|
return EntryInvalid, p.parseError("expected timestamp or new record", t)
|
||||||
}
|
}
|
||||||
return EntrySeries, nil
|
return EntrySeries, nil
|
||||||
|
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("%q is not a valid start token", t)
|
err = p.parseError("expected a valid start token", t)
|
||||||
}
|
}
|
||||||
return EntryInvalid, err
|
return EntryInvalid, err
|
||||||
}
|
}
|
||||||
|
@ -380,18 +384,18 @@ func (p *PromParser) parseLVals() error {
|
||||||
return nil
|
return nil
|
||||||
case tLName:
|
case tLName:
|
||||||
default:
|
default:
|
||||||
return parseError("expected label name", t)
|
return p.parseError("expected label name", t)
|
||||||
}
|
}
|
||||||
p.offsets = append(p.offsets, p.l.start, p.l.i)
|
p.offsets = append(p.offsets, p.l.start, p.l.i)
|
||||||
|
|
||||||
if t := p.nextToken(); t != tEqual {
|
if t := p.nextToken(); t != tEqual {
|
||||||
return parseError("expected equal", t)
|
return p.parseError("expected equal", t)
|
||||||
}
|
}
|
||||||
if t := p.nextToken(); t != tLValue {
|
if t := p.nextToken(); t != tLValue {
|
||||||
return parseError("expected label value", t)
|
return p.parseError("expected label value", t)
|
||||||
}
|
}
|
||||||
if !utf8.Valid(p.l.buf()) {
|
if !utf8.Valid(p.l.buf()) {
|
||||||
return fmt.Errorf("invalid UTF-8 label value")
|
return fmt.Errorf("invalid UTF-8 label value: %q", p.l.buf())
|
||||||
}
|
}
|
||||||
|
|
||||||
// The promlexer ensures the value string is quoted. Strip first
|
// The promlexer ensures the value string is quoted. Strip first
|
||||||
|
|
187
vendor/github.com/prometheus/prometheus/prompb/io/prometheus/client/metrics.pb.go
generated
vendored
187
vendor/github.com/prometheus/prometheus/prompb/io/prometheus/client/metrics.pb.go
generated
vendored
|
@ -10,6 +10,7 @@ import (
|
||||||
math "math"
|
math "math"
|
||||||
math_bits "math/bits"
|
math_bits "math/bits"
|
||||||
|
|
||||||
|
_ "github.com/gogo/protobuf/gogoproto"
|
||||||
proto "github.com/gogo/protobuf/proto"
|
proto "github.com/gogo/protobuf/proto"
|
||||||
types "github.com/gogo/protobuf/types"
|
types "github.com/gogo/protobuf/types"
|
||||||
)
|
)
|
||||||
|
@ -281,12 +282,12 @@ func (m *Quantile) GetValue() float64 {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Summary struct {
|
type Summary struct {
|
||||||
SampleCount uint64 `protobuf:"varint,1,opt,name=sample_count,json=sampleCount,proto3" json:"sample_count,omitempty"`
|
SampleCount uint64 `protobuf:"varint,1,opt,name=sample_count,json=sampleCount,proto3" json:"sample_count,omitempty"`
|
||||||
SampleSum float64 `protobuf:"fixed64,2,opt,name=sample_sum,json=sampleSum,proto3" json:"sample_sum,omitempty"`
|
SampleSum float64 `protobuf:"fixed64,2,opt,name=sample_sum,json=sampleSum,proto3" json:"sample_sum,omitempty"`
|
||||||
Quantile []*Quantile `protobuf:"bytes,3,rep,name=quantile,proto3" json:"quantile,omitempty"`
|
Quantile []Quantile `protobuf:"bytes,3,rep,name=quantile,proto3" json:"quantile"`
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
XXX_unrecognized []byte `json:"-"`
|
XXX_unrecognized []byte `json:"-"`
|
||||||
XXX_sizecache int32 `json:"-"`
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Summary) Reset() { *m = Summary{} }
|
func (m *Summary) Reset() { *m = Summary{} }
|
||||||
|
@ -336,7 +337,7 @@ func (m *Summary) GetSampleSum() float64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Summary) GetQuantile() []*Quantile {
|
func (m *Summary) GetQuantile() []Quantile {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Quantile
|
return m.Quantile
|
||||||
}
|
}
|
||||||
|
@ -395,7 +396,7 @@ type Histogram struct {
|
||||||
SampleCountFloat float64 `protobuf:"fixed64,4,opt,name=sample_count_float,json=sampleCountFloat,proto3" json:"sample_count_float,omitempty"`
|
SampleCountFloat float64 `protobuf:"fixed64,4,opt,name=sample_count_float,json=sampleCountFloat,proto3" json:"sample_count_float,omitempty"`
|
||||||
SampleSum float64 `protobuf:"fixed64,2,opt,name=sample_sum,json=sampleSum,proto3" json:"sample_sum,omitempty"`
|
SampleSum float64 `protobuf:"fixed64,2,opt,name=sample_sum,json=sampleSum,proto3" json:"sample_sum,omitempty"`
|
||||||
// Buckets for the conventional histogram.
|
// Buckets for the conventional histogram.
|
||||||
Bucket []*Bucket `protobuf:"bytes,3,rep,name=bucket,proto3" json:"bucket,omitempty"`
|
Bucket []Bucket `protobuf:"bytes,3,rep,name=bucket,proto3" json:"bucket"`
|
||||||
// schema defines the bucket schema. Currently, valid numbers are -4 <= n <= 8.
|
// schema defines the bucket schema. Currently, valid numbers are -4 <= n <= 8.
|
||||||
// They are all for base-2 bucket schemas, where 1 is a bucket boundary in each case, and
|
// They are all for base-2 bucket schemas, where 1 is a bucket boundary in each case, and
|
||||||
// then each power of two is divided into 2^n logarithmic buckets.
|
// then each power of two is divided into 2^n logarithmic buckets.
|
||||||
|
@ -406,14 +407,14 @@ type Histogram struct {
|
||||||
ZeroCount uint64 `protobuf:"varint,7,opt,name=zero_count,json=zeroCount,proto3" json:"zero_count,omitempty"`
|
ZeroCount uint64 `protobuf:"varint,7,opt,name=zero_count,json=zeroCount,proto3" json:"zero_count,omitempty"`
|
||||||
ZeroCountFloat float64 `protobuf:"fixed64,8,opt,name=zero_count_float,json=zeroCountFloat,proto3" json:"zero_count_float,omitempty"`
|
ZeroCountFloat float64 `protobuf:"fixed64,8,opt,name=zero_count_float,json=zeroCountFloat,proto3" json:"zero_count_float,omitempty"`
|
||||||
// Negative buckets for the native histogram.
|
// Negative buckets for the native histogram.
|
||||||
NegativeSpan []*BucketSpan `protobuf:"bytes,9,rep,name=negative_span,json=negativeSpan,proto3" json:"negative_span,omitempty"`
|
NegativeSpan []BucketSpan `protobuf:"bytes,9,rep,name=negative_span,json=negativeSpan,proto3" json:"negative_span"`
|
||||||
// Use either "negative_delta" or "negative_count", the former for
|
// Use either "negative_delta" or "negative_count", the former for
|
||||||
// regular histograms with integer counts, the latter for float
|
// regular histograms with integer counts, the latter for float
|
||||||
// histograms.
|
// histograms.
|
||||||
NegativeDelta []int64 `protobuf:"zigzag64,10,rep,packed,name=negative_delta,json=negativeDelta,proto3" json:"negative_delta,omitempty"`
|
NegativeDelta []int64 `protobuf:"zigzag64,10,rep,packed,name=negative_delta,json=negativeDelta,proto3" json:"negative_delta,omitempty"`
|
||||||
NegativeCount []float64 `protobuf:"fixed64,11,rep,packed,name=negative_count,json=negativeCount,proto3" json:"negative_count,omitempty"`
|
NegativeCount []float64 `protobuf:"fixed64,11,rep,packed,name=negative_count,json=negativeCount,proto3" json:"negative_count,omitempty"`
|
||||||
// Positive buckets for the native histogram.
|
// Positive buckets for the native histogram.
|
||||||
PositiveSpan []*BucketSpan `protobuf:"bytes,12,rep,name=positive_span,json=positiveSpan,proto3" json:"positive_span,omitempty"`
|
PositiveSpan []BucketSpan `protobuf:"bytes,12,rep,name=positive_span,json=positiveSpan,proto3" json:"positive_span"`
|
||||||
// Use either "positive_delta" or "positive_count", the former for
|
// Use either "positive_delta" or "positive_count", the former for
|
||||||
// regular histograms with integer counts, the latter for float
|
// regular histograms with integer counts, the latter for float
|
||||||
// histograms.
|
// histograms.
|
||||||
|
@ -478,7 +479,7 @@ func (m *Histogram) GetSampleSum() float64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Histogram) GetBucket() []*Bucket {
|
func (m *Histogram) GetBucket() []Bucket {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Bucket
|
return m.Bucket
|
||||||
}
|
}
|
||||||
|
@ -513,7 +514,7 @@ func (m *Histogram) GetZeroCountFloat() float64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Histogram) GetNegativeSpan() []*BucketSpan {
|
func (m *Histogram) GetNegativeSpan() []BucketSpan {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.NegativeSpan
|
return m.NegativeSpan
|
||||||
}
|
}
|
||||||
|
@ -534,7 +535,7 @@ func (m *Histogram) GetNegativeCount() []float64 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Histogram) GetPositiveSpan() []*BucketSpan {
|
func (m *Histogram) GetPositiveSpan() []BucketSpan {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.PositiveSpan
|
return m.PositiveSpan
|
||||||
}
|
}
|
||||||
|
@ -688,7 +689,7 @@ func (m *BucketSpan) GetLength() uint32 {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Exemplar struct {
|
type Exemplar struct {
|
||||||
Label []*LabelPair `protobuf:"bytes,1,rep,name=label,proto3" json:"label,omitempty"`
|
Label []LabelPair `protobuf:"bytes,1,rep,name=label,proto3" json:"label"`
|
||||||
Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
|
Value float64 `protobuf:"fixed64,2,opt,name=value,proto3" json:"value,omitempty"`
|
||||||
Timestamp *types.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
Timestamp *types.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
|
@ -729,7 +730,7 @@ func (m *Exemplar) XXX_DiscardUnknown() {
|
||||||
|
|
||||||
var xxx_messageInfo_Exemplar proto.InternalMessageInfo
|
var xxx_messageInfo_Exemplar proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *Exemplar) GetLabel() []*LabelPair {
|
func (m *Exemplar) GetLabel() []LabelPair {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Label
|
return m.Label
|
||||||
}
|
}
|
||||||
|
@ -751,16 +752,16 @@ func (m *Exemplar) GetTimestamp() *types.Timestamp {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Metric struct {
|
type Metric struct {
|
||||||
Label []*LabelPair `protobuf:"bytes,1,rep,name=label,proto3" json:"label,omitempty"`
|
Label []LabelPair `protobuf:"bytes,1,rep,name=label,proto3" json:"label"`
|
||||||
Gauge *Gauge `protobuf:"bytes,2,opt,name=gauge,proto3" json:"gauge,omitempty"`
|
Gauge *Gauge `protobuf:"bytes,2,opt,name=gauge,proto3" json:"gauge,omitempty"`
|
||||||
Counter *Counter `protobuf:"bytes,3,opt,name=counter,proto3" json:"counter,omitempty"`
|
Counter *Counter `protobuf:"bytes,3,opt,name=counter,proto3" json:"counter,omitempty"`
|
||||||
Summary *Summary `protobuf:"bytes,4,opt,name=summary,proto3" json:"summary,omitempty"`
|
Summary *Summary `protobuf:"bytes,4,opt,name=summary,proto3" json:"summary,omitempty"`
|
||||||
Untyped *Untyped `protobuf:"bytes,5,opt,name=untyped,proto3" json:"untyped,omitempty"`
|
Untyped *Untyped `protobuf:"bytes,5,opt,name=untyped,proto3" json:"untyped,omitempty"`
|
||||||
Histogram *Histogram `protobuf:"bytes,7,opt,name=histogram,proto3" json:"histogram,omitempty"`
|
Histogram *Histogram `protobuf:"bytes,7,opt,name=histogram,proto3" json:"histogram,omitempty"`
|
||||||
TimestampMs int64 `protobuf:"varint,6,opt,name=timestamp_ms,json=timestampMs,proto3" json:"timestamp_ms,omitempty"`
|
TimestampMs int64 `protobuf:"varint,6,opt,name=timestamp_ms,json=timestampMs,proto3" json:"timestamp_ms,omitempty"`
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
XXX_unrecognized []byte `json:"-"`
|
XXX_unrecognized []byte `json:"-"`
|
||||||
XXX_sizecache int32 `json:"-"`
|
XXX_sizecache int32 `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Metric) Reset() { *m = Metric{} }
|
func (m *Metric) Reset() { *m = Metric{} }
|
||||||
|
@ -796,7 +797,7 @@ func (m *Metric) XXX_DiscardUnknown() {
|
||||||
|
|
||||||
var xxx_messageInfo_Metric proto.InternalMessageInfo
|
var xxx_messageInfo_Metric proto.InternalMessageInfo
|
||||||
|
|
||||||
func (m *Metric) GetLabel() []*LabelPair {
|
func (m *Metric) GetLabel() []LabelPair {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Label
|
return m.Label
|
||||||
}
|
}
|
||||||
|
@ -849,7 +850,7 @@ type MetricFamily struct {
|
||||||
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
|
||||||
Help string `protobuf:"bytes,2,opt,name=help,proto3" json:"help,omitempty"`
|
Help string `protobuf:"bytes,2,opt,name=help,proto3" json:"help,omitempty"`
|
||||||
Type MetricType `protobuf:"varint,3,opt,name=type,proto3,enum=io.prometheus.client.MetricType" json:"type,omitempty"`
|
Type MetricType `protobuf:"varint,3,opt,name=type,proto3,enum=io.prometheus.client.MetricType" json:"type,omitempty"`
|
||||||
Metric []*Metric `protobuf:"bytes,4,rep,name=metric,proto3" json:"metric,omitempty"`
|
Metric []Metric `protobuf:"bytes,4,rep,name=metric,proto3" json:"metric"`
|
||||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||||
XXX_unrecognized []byte `json:"-"`
|
XXX_unrecognized []byte `json:"-"`
|
||||||
XXX_sizecache int32 `json:"-"`
|
XXX_sizecache int32 `json:"-"`
|
||||||
|
@ -909,7 +910,7 @@ func (m *MetricFamily) GetType() MetricType {
|
||||||
return MetricType_COUNTER
|
return MetricType_COUNTER
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MetricFamily) GetMetric() []*Metric {
|
func (m *MetricFamily) GetMetric() []Metric {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Metric
|
return m.Metric
|
||||||
}
|
}
|
||||||
|
@ -937,63 +938,65 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileDescriptor_d1e5ddb18987a258 = []byte{
|
var fileDescriptor_d1e5ddb18987a258 = []byte{
|
||||||
// 894 bytes of a gzipped FileDescriptorProto
|
// 923 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdd, 0x6e, 0xe3, 0x44,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdd, 0x8e, 0xdb, 0x44,
|
||||||
0x18, 0xc5, 0xcd, 0xaf, 0xbf, 0x34, 0xdd, 0xec, 0x50, 0xad, 0xac, 0x42, 0xdb, 0x60, 0x09, 0xa9,
|
0x18, 0xad, 0x1b, 0xe7, 0xc7, 0x5f, 0x36, 0xdb, 0x74, 0x88, 0x2a, 0x6b, 0x61, 0x37, 0xc1, 0x12,
|
||||||
0x20, 0xe4, 0x08, 0xe8, 0x0a, 0x84, 0xe0, 0xa2, 0xdd, 0xcd, 0x76, 0x91, 0xc8, 0xee, 0x32, 0x49,
|
0xd2, 0x82, 0x50, 0x22, 0xa0, 0x08, 0x54, 0x40, 0x62, 0xb7, 0xdd, 0x6e, 0x51, 0x49, 0x5b, 0x26,
|
||||||
0x2e, 0x16, 0x2e, 0xac, 0x49, 0x3a, 0x4d, 0x2c, 0x3c, 0x1e, 0x63, 0x8f, 0x57, 0x94, 0x17, 0xe0,
|
0xc9, 0x45, 0xe1, 0xc2, 0x9a, 0x64, 0x67, 0x1d, 0x0b, 0xdb, 0x63, 0xec, 0x71, 0xc5, 0x72, 0xcf,
|
||||||
0x9a, 0x57, 0xe0, 0x61, 0x10, 0x97, 0x3c, 0x02, 0x2a, 0x0f, 0x02, 0x9a, 0x3f, 0xbb, 0x59, 0x39,
|
0x25, 0xd7, 0xbc, 0x02, 0x4f, 0x82, 0x7a, 0xc9, 0x13, 0x20, 0xb4, 0xef, 0xc0, 0x3d, 0x9a, 0x3f,
|
||||||
0xcb, 0xb2, 0x77, 0x99, 0xe3, 0x73, 0xbe, 0x39, 0x67, 0x3c, 0x39, 0x06, 0x3f, 0xe2, 0xa3, 0x34,
|
0x3b, 0x5b, 0x39, 0x85, 0x15, 0x77, 0x33, 0xc7, 0xe7, 0xfb, 0xe6, 0x9c, 0x99, 0xc9, 0x99, 0x80,
|
||||||
0xe3, 0x8c, 0x8a, 0x35, 0x2d, 0xf2, 0xd1, 0x32, 0x8e, 0x68, 0x22, 0x46, 0x8c, 0x8a, 0x2c, 0x5a,
|
0x17, 0xb2, 0x49, 0x9a, 0xb1, 0x98, 0xf2, 0x35, 0x2d, 0xf2, 0xc9, 0x2a, 0x0a, 0x69, 0xc2, 0x27,
|
||||||
0xe6, 0x41, 0x9a, 0x71, 0xc1, 0xd1, 0x7e, 0xc4, 0x83, 0x8a, 0x13, 0x68, 0xce, 0xc1, 0xf1, 0x8a,
|
0x31, 0xe5, 0x59, 0xb8, 0xca, 0xc7, 0x69, 0xc6, 0x38, 0x43, 0x83, 0x90, 0x8d, 0x2b, 0xce, 0x58,
|
||||||
0xf3, 0x55, 0x4c, 0x47, 0x8a, 0xb3, 0x28, 0xae, 0x46, 0x22, 0x62, 0x34, 0x17, 0x84, 0xa5, 0x5a,
|
0x71, 0xf6, 0x06, 0x01, 0x0b, 0x98, 0x24, 0x4c, 0xc4, 0x48, 0x71, 0xf7, 0x86, 0x01, 0x63, 0x41,
|
||||||
0xe6, 0xdf, 0x07, 0xf7, 0x1b, 0xb2, 0xa0, 0xf1, 0x33, 0x12, 0x65, 0x08, 0x41, 0x33, 0x21, 0x8c,
|
0x44, 0x27, 0x72, 0xb6, 0x2c, 0xce, 0x27, 0x3c, 0x8c, 0x69, 0xce, 0x49, 0x9c, 0x2a, 0x82, 0xf7,
|
||||||
0x7a, 0xce, 0xd0, 0x39, 0x71, 0xb1, 0xfa, 0x8d, 0xf6, 0xa1, 0xf5, 0x82, 0xc4, 0x05, 0xf5, 0x76,
|
0x31, 0x38, 0x5f, 0x93, 0x25, 0x8d, 0x9e, 0x91, 0x30, 0x43, 0x08, 0xec, 0x84, 0xc4, 0xd4, 0xb5,
|
||||||
0x14, 0xa8, 0x17, 0xfe, 0x21, 0xb4, 0x2e, 0x48, 0xb1, 0xba, 0xf5, 0x58, 0x6a, 0x1c, 0xfb, 0xf8,
|
0x46, 0xd6, 0xa1, 0x83, 0xe5, 0x18, 0x0d, 0xa0, 0xf9, 0x82, 0x44, 0x05, 0x75, 0x6f, 0x4a, 0x50,
|
||||||
0x7b, 0xe8, 0x3c, 0xe0, 0x45, 0x22, 0x68, 0x56, 0x4f, 0x40, 0x5f, 0x40, 0x97, 0xfe, 0x44, 0x59,
|
0x4d, 0xbc, 0x7d, 0x68, 0x9e, 0x92, 0x22, 0xd8, 0xf8, 0x2c, 0x6a, 0x2c, 0xf3, 0xf9, 0x3b, 0x68,
|
||||||
0x1a, 0x93, 0x4c, 0x0d, 0xee, 0x7d, 0x72, 0x14, 0xd4, 0x05, 0x08, 0xc6, 0x86, 0x85, 0x4b, 0xbe,
|
0xdf, 0x67, 0x45, 0xc2, 0x69, 0x56, 0x4f, 0x40, 0xf7, 0xa0, 0x43, 0x7f, 0xa4, 0x71, 0x1a, 0x91,
|
||||||
0xff, 0x25, 0x74, 0xbf, 0x2d, 0x48, 0x22, 0xa2, 0x98, 0xa2, 0x03, 0xe8, 0xfe, 0x68, 0x7e, 0x9b,
|
0x4c, 0x36, 0xee, 0x7e, 0x78, 0x30, 0xae, 0xb3, 0x35, 0x3e, 0xd1, 0x2c, 0x5c, 0xf2, 0xbd, 0xcf,
|
||||||
0x0d, 0xca, 0xf5, 0xa6, 0xf3, 0xd2, 0xda, 0x2f, 0x0e, 0x74, 0xa6, 0x05, 0x63, 0x24, 0xbb, 0x46,
|
0xa1, 0xf3, 0x4d, 0x41, 0x12, 0x1e, 0x46, 0x14, 0xed, 0x41, 0xe7, 0x07, 0x3d, 0xd6, 0x0b, 0x94,
|
||||||
0xef, 0xc1, 0x6e, 0x4e, 0x58, 0x1a, 0xd3, 0x70, 0x29, 0xdd, 0xaa, 0x09, 0x4d, 0xdc, 0xd3, 0x98,
|
0xf3, 0xab, 0xca, 0x4b, 0x69, 0xbf, 0x58, 0xd0, 0x9e, 0x15, 0x71, 0x4c, 0xb2, 0x0b, 0xf4, 0x36,
|
||||||
0x0a, 0x80, 0x0e, 0x01, 0x0c, 0x25, 0x2f, 0x98, 0x99, 0xe4, 0x6a, 0x64, 0x5a, 0x30, 0x99, 0xa3,
|
0xec, 0xe4, 0x24, 0x4e, 0x23, 0xea, 0xaf, 0x84, 0x5a, 0xd9, 0xc1, 0xc6, 0x5d, 0x85, 0x49, 0x03,
|
||||||
0xdc, 0xbf, 0x31, 0x6c, 0x6c, 0xcf, 0x61, 0x1d, 0x57, 0xfe, 0xfc, 0x63, 0xe8, 0xcc, 0x13, 0x71,
|
0x68, 0x1f, 0x40, 0x53, 0xf2, 0x22, 0xd6, 0x9d, 0x1c, 0x85, 0xcc, 0x8a, 0x18, 0x7d, 0xb9, 0xb1,
|
||||||
0x9d, 0xd2, 0xcb, 0x2d, 0xa7, 0xf8, 0x77, 0x13, 0xdc, 0xc7, 0x51, 0x2e, 0xf8, 0x2a, 0x23, 0xec,
|
0x7e, 0x63, 0xd4, 0xd8, 0xee, 0xc3, 0x28, 0x3e, 0xb6, 0x5f, 0xfe, 0x39, 0xbc, 0x51, 0xa9, 0xf4,
|
||||||
0x75, 0xcc, 0x7e, 0x04, 0xe8, 0x36, 0x25, 0xbc, 0x8a, 0x39, 0x11, 0x5e, 0x53, 0xcd, 0x1c, 0xdc,
|
0x86, 0xd0, 0x5e, 0x24, 0xfc, 0x22, 0xa5, 0x67, 0x5b, 0xf6, 0xf2, 0x6f, 0x1b, 0x9c, 0x47, 0x61,
|
||||||
0x22, 0x3e, 0x92, 0xf8, 0x7f, 0x45, 0x3b, 0x85, 0xf6, 0xa2, 0x58, 0xfe, 0x40, 0x85, 0x09, 0xf6,
|
0xce, 0x59, 0x90, 0x91, 0xf8, 0xbf, 0x48, 0x7e, 0x1f, 0xd0, 0x26, 0xc5, 0x3f, 0x8f, 0x18, 0xe1,
|
||||||
0x6e, 0x7d, 0xb0, 0x73, 0xc5, 0xc1, 0x86, 0x8b, 0xee, 0x41, 0x3b, 0x5f, 0xae, 0x29, 0x23, 0x5e,
|
0xae, 0x2d, 0x7b, 0xf6, 0x37, 0x88, 0x0f, 0x05, 0xfe, 0x6f, 0x06, 0xef, 0x41, 0x6b, 0x59, 0xac,
|
||||||
0x6b, 0xe8, 0x9c, 0xdc, 0xc5, 0x66, 0x85, 0xde, 0x87, 0xbd, 0x9f, 0x69, 0xc6, 0x43, 0xb1, 0xce,
|
0xbe, 0xa7, 0x5c, 0xdb, 0x7b, 0xab, 0xde, 0xde, 0xb1, 0xe4, 0x68, 0x73, 0xba, 0x02, 0xdd, 0x81,
|
||||||
0x68, 0xbe, 0xe6, 0xf1, 0xa5, 0xd7, 0x56, 0x1b, 0xf6, 0x25, 0x3a, 0xb3, 0xa0, 0xf4, 0xa4, 0x68,
|
0x56, 0xbe, 0x5a, 0xd3, 0x98, 0xb8, 0xcd, 0x91, 0x75, 0x78, 0x1b, 0xeb, 0x19, 0x7a, 0x07, 0x76,
|
||||||
0x3a, 0x62, 0x47, 0x45, 0x74, 0x25, 0xa2, 0x03, 0x9e, 0xc0, 0xa0, 0x7a, 0x6c, 0xe2, 0x75, 0xd5,
|
0x7f, 0xa2, 0x19, 0xf3, 0xf9, 0x3a, 0xa3, 0xf9, 0x9a, 0x45, 0x67, 0x6e, 0x4b, 0x2e, 0xdb, 0x13,
|
||||||
0x9c, 0xbd, 0x92, 0xa4, 0xc3, 0x8d, 0xa1, 0x9f, 0xd0, 0x15, 0x11, 0xd1, 0x0b, 0x1a, 0xe6, 0x29,
|
0xe8, 0xdc, 0x80, 0x42, 0x99, 0xa4, 0x29, 0xa3, 0x6d, 0x69, 0xd4, 0x11, 0x88, 0xb2, 0x79, 0x08,
|
||||||
0x49, 0x3c, 0x57, 0x85, 0x18, 0xbe, 0x2a, 0xc4, 0x34, 0x25, 0x09, 0xde, 0xb5, 0x32, 0xb9, 0x92,
|
0xfd, 0xea, 0xb3, 0x36, 0xd9, 0x91, 0x7d, 0x76, 0x4b, 0x92, 0xb2, 0xf8, 0x18, 0x7a, 0x09, 0x0d,
|
||||||
0xb6, 0xcb, 0x31, 0x97, 0x34, 0x16, 0xc4, 0x83, 0x61, 0xe3, 0x04, 0xe1, 0x72, 0xf8, 0x43, 0x09,
|
0x08, 0x0f, 0x5f, 0x50, 0x3f, 0x4f, 0x49, 0xe2, 0x3a, 0xd2, 0xca, 0xe8, 0x75, 0x56, 0x66, 0x29,
|
||||||
0x6e, 0xd0, 0xb4, 0xf5, 0xde, 0xb0, 0x21, 0xd3, 0x59, 0x54, 0xdb, 0x1f, 0x43, 0x3f, 0xe5, 0x79,
|
0x49, 0xb4, 0x9d, 0x1d, 0x53, 0x2c, 0x30, 0x21, 0xbe, 0x6c, 0x76, 0x46, 0x23, 0x4e, 0x5c, 0x18,
|
||||||
0x54, 0x99, 0xda, 0x7d, 0x5d, 0x53, 0x56, 0x66, 0x4d, 0x95, 0x63, 0xb4, 0xa9, 0xbe, 0x36, 0x65,
|
0x35, 0x0e, 0x11, 0x2e, 0x97, 0x78, 0x20, 0xc0, 0x2b, 0x34, 0x65, 0xa0, 0x3b, 0x6a, 0x08, 0x8f,
|
||||||
0xd1, 0xd2, 0x54, 0x49, 0xd3, 0xa6, 0xf6, 0xb4, 0x29, 0x8b, 0x2a, 0x53, 0xfe, 0xef, 0x0e, 0xb4,
|
0x06, 0x55, 0x26, 0x1e, 0x43, 0x2f, 0x65, 0x79, 0x58, 0x49, 0xdb, 0xb9, 0x9e, 0x34, 0x53, 0x6c,
|
||||||
0xf5, 0x56, 0xe8, 0x03, 0x18, 0x2c, 0x0b, 0x56, 0xc4, 0xb7, 0x83, 0xe8, 0x6b, 0x76, 0xa7, 0xc2,
|
0xa4, 0x95, 0xcd, 0x94, 0xb4, 0x9e, 0x92, 0x66, 0xd0, 0x52, 0x5a, 0x49, 0x53, 0xd2, 0x76, 0x95,
|
||||||
0x75, 0x94, 0x53, 0xb8, 0xf7, 0x32, 0x75, 0xe3, 0xba, 0xed, 0xbf, 0x24, 0xd0, 0x6f, 0xe5, 0x18,
|
0x34, 0x83, 0x4a, 0x69, 0xde, 0xef, 0x16, 0xb4, 0xd4, 0x82, 0xe8, 0x5d, 0xe8, 0xaf, 0x8a, 0xb8,
|
||||||
0x7a, 0x45, 0x9a, 0xd2, 0x2c, 0x5c, 0xf0, 0x22, 0xb9, 0x34, 0x77, 0x0e, 0x14, 0x74, 0x2e, 0x91,
|
0x88, 0x36, 0xed, 0xa8, 0x8b, 0x77, 0xab, 0xc2, 0x95, 0xa1, 0xbb, 0x70, 0xe7, 0x55, 0xea, 0x95,
|
||||||
0x8d, 0x5e, 0x68, 0xfc, 0xef, 0x5e, 0x80, 0xea, 0xc8, 0xe4, 0x45, 0xe4, 0x57, 0x57, 0x39, 0xd5,
|
0x0b, 0x38, 0x78, 0xa5, 0x40, 0x9d, 0xd0, 0x10, 0xba, 0x45, 0x9a, 0xd2, 0xcc, 0x5f, 0xb2, 0x22,
|
||||||
0x09, 0xee, 0x62, 0xb3, 0x92, 0x78, 0x4c, 0x93, 0x95, 0x58, 0xab, 0xdd, 0xfb, 0xd8, 0xac, 0xfc,
|
0x39, 0xd3, 0xb7, 0x10, 0x24, 0x74, 0x2c, 0x90, 0x2b, 0x79, 0xd1, 0xb8, 0x76, 0x5e, 0x40, 0xb5,
|
||||||
0x5f, 0x1d, 0xe8, 0xda, 0xa1, 0xe8, 0x3e, 0xb4, 0x62, 0xd9, 0x8a, 0x9e, 0xa3, 0x5e, 0xd0, 0x71,
|
0x71, 0xe2, 0x52, 0xb2, 0xf3, 0xf3, 0x9c, 0x2a, 0x07, 0xb7, 0xb1, 0x9e, 0x09, 0x3c, 0xa2, 0x49,
|
||||||
0xbd, 0x87, 0xb2, 0x38, 0xb1, 0x66, 0xd7, 0x37, 0x0e, 0xfa, 0x1c, 0xdc, 0xb2, 0x75, 0x4d, 0xa8,
|
0xc0, 0xd7, 0x72, 0xf5, 0x1e, 0xd6, 0x33, 0xef, 0x57, 0x0b, 0x3a, 0xa6, 0x29, 0xfa, 0x0c, 0x9a,
|
||||||
0x83, 0x40, 0xf7, 0x72, 0x60, 0x7b, 0x39, 0x98, 0x59, 0x06, 0xae, 0xc8, 0xfe, 0x3f, 0x3b, 0xd0,
|
0x91, 0x48, 0x4b, 0xd7, 0x92, 0xc7, 0x34, 0xac, 0xd7, 0x50, 0x06, 0xaa, 0x3e, 0x25, 0x55, 0x53,
|
||||||
0x9e, 0xa8, 0x96, 0x7f, 0x53, 0x47, 0x1f, 0x43, 0x6b, 0x25, 0x7b, 0xda, 0x94, 0xec, 0x3b, 0xf5,
|
0x9f, 0x47, 0xe8, 0x53, 0x70, 0xca, 0x4c, 0xd6, 0xd6, 0xf6, 0xc6, 0x2a, 0xb5, 0xc7, 0x26, 0xb5,
|
||||||
0x32, 0x55, 0xe5, 0x58, 0x33, 0xd1, 0x67, 0xd0, 0x59, 0xea, 0xee, 0x36, 0x66, 0x0f, 0xeb, 0x45,
|
0xc7, 0x73, 0xc3, 0xc0, 0x15, 0xd9, 0xfb, 0xb9, 0x01, 0xad, 0xa9, 0x7c, 0x19, 0xfe, 0x9f, 0xae,
|
||||||
0xa6, 0xe0, 0xb1, 0x65, 0x4b, 0x61, 0xae, 0x8b, 0x55, 0xdd, 0x81, 0xad, 0x42, 0xd3, 0xbe, 0xd8,
|
0x0f, 0xa0, 0x19, 0x88, 0x2c, 0xd7, 0x41, 0xfc, 0x66, 0x7d, 0xb1, 0x8c, 0x7b, 0xac, 0x98, 0xe8,
|
||||||
0xb2, 0xa5, 0xb0, 0xd0, 0x45, 0xa8, 0x4a, 0x63, 0xab, 0xd0, 0xb4, 0x25, 0xb6, 0x6c, 0xf4, 0x15,
|
0x13, 0x68, 0xaf, 0x54, 0xbe, 0x6b, 0xc9, 0xfb, 0xf5, 0x45, 0xfa, 0x11, 0xc0, 0x86, 0x2d, 0x0a,
|
||||||
0xb8, 0x6b, 0xdb, 0x8f, 0xaa, 0x2c, 0xb6, 0x1e, 0x4c, 0x59, 0xa3, 0xb8, 0x52, 0xc8, 0x46, 0x2d,
|
0x73, 0x15, 0xbe, 0xf2, 0x3e, 0x6c, 0x2d, 0xd4, 0x09, 0x8d, 0x0d, 0x5b, 0x14, 0x16, 0x2a, 0x26,
|
||||||
0xcf, 0x3a, 0x64, 0xb9, 0x6a, 0xa4, 0x06, 0xee, 0x95, 0xd8, 0x24, 0xf7, 0x7f, 0x73, 0x60, 0x57,
|
0x65, 0x98, 0x6c, 0x2d, 0xd4, 0x59, 0x8a, 0x0d, 0x1b, 0x7d, 0x01, 0xce, 0xda, 0xa4, 0xa7, 0x0c,
|
||||||
0xbf, 0x81, 0x47, 0x84, 0x45, 0xf1, 0x75, 0xed, 0x27, 0x12, 0x41, 0x73, 0x4d, 0xe3, 0xd4, 0x7c,
|
0x91, 0xad, 0xdb, 0x53, 0x86, 0x2c, 0xae, 0x2a, 0x44, 0xde, 0x96, 0x3b, 0xee, 0xc7, 0xb9, 0x4c,
|
||||||
0x21, 0xd5, 0x6f, 0x74, 0x0a, 0x4d, 0xe9, 0x51, 0x1d, 0xe1, 0xde, 0xb6, 0x7f, 0xb8, 0x9e, 0x3c,
|
0xaa, 0x06, 0xee, 0x96, 0xd8, 0x34, 0xf7, 0x7e, 0xb3, 0x60, 0x47, 0x9d, 0xc3, 0x43, 0x12, 0x87,
|
||||||
0xbb, 0x4e, 0x29, 0x56, 0x6c, 0xd9, 0xb9, 0xfa, 0xab, 0xee, 0x35, 0x5f, 0xd5, 0xb9, 0x5a, 0x87,
|
0xd1, 0x45, 0xed, 0x33, 0x8a, 0xc0, 0x5e, 0xd3, 0x28, 0xd5, 0xaf, 0xa8, 0x1c, 0xa3, 0xbb, 0x60,
|
||||||
0x0d, 0xf7, 0xc3, 0x05, 0x40, 0x35, 0x09, 0xf5, 0xa0, 0xf3, 0xe0, 0xe9, 0xfc, 0xc9, 0x6c, 0x8c,
|
0x0b, 0x8d, 0x72, 0x0b, 0x77, 0xb7, 0xfd, 0xe6, 0x55, 0xe7, 0xf9, 0x45, 0x4a, 0xb1, 0x64, 0x8b,
|
||||||
0x07, 0x6f, 0x21, 0x17, 0x5a, 0x17, 0x67, 0xf3, 0x8b, 0xf1, 0xc0, 0x91, 0xf8, 0x74, 0x3e, 0x99,
|
0x44, 0x56, 0xff, 0x07, 0x5c, 0xfb, 0x75, 0x89, 0xac, 0xea, 0x4c, 0x22, 0xab, 0x8a, 0xf7, 0x96,
|
||||||
0x9c, 0xe1, 0xe7, 0x83, 0x1d, 0xb9, 0x98, 0x3f, 0x99, 0x3d, 0x7f, 0x36, 0x7e, 0x38, 0x68, 0xa0,
|
0x00, 0x55, 0x3f, 0xd4, 0x85, 0xf6, 0xfd, 0xa7, 0x8b, 0x27, 0xf3, 0x13, 0xdc, 0xbf, 0x81, 0x1c,
|
||||||
0x3e, 0xb8, 0x8f, 0xbf, 0x9e, 0xce, 0x9e, 0x5e, 0xe0, 0xb3, 0xc9, 0xa0, 0x89, 0xde, 0x86, 0x3b,
|
0x68, 0x9e, 0x1e, 0x2d, 0x4e, 0x4f, 0xfa, 0x96, 0xc0, 0x67, 0x8b, 0xe9, 0xf4, 0x08, 0x3f, 0xef,
|
||||||
0x4a, 0x13, 0x56, 0x60, 0xeb, 0xdc, 0xff, 0xe3, 0xe6, 0xc8, 0xf9, 0xf3, 0xe6, 0xc8, 0xf9, 0xeb,
|
0xdf, 0x14, 0x93, 0xc5, 0x93, 0xf9, 0xf3, 0x67, 0x27, 0x0f, 0xfa, 0x0d, 0xd4, 0x03, 0xe7, 0xd1,
|
||||||
0xe6, 0xc8, 0xf9, 0x6e, 0x3f, 0xe2, 0x61, 0x65, 0x2b, 0xd4, 0xb6, 0x16, 0x6d, 0x75, 0x9b, 0x3f,
|
0x57, 0xb3, 0xf9, 0xd3, 0x53, 0x7c, 0x34, 0xed, 0xdb, 0xe8, 0x0d, 0xb8, 0x25, 0x6b, 0xfc, 0x0a,
|
||||||
0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0xf0, 0xbc, 0x25, 0x8b, 0xaf, 0x08, 0x00, 0x00,
|
0x6c, 0x1e, 0x7b, 0x2f, 0x2f, 0x0f, 0xac, 0x3f, 0x2e, 0x0f, 0xac, 0xbf, 0x2e, 0x0f, 0xac, 0x6f,
|
||||||
|
0x07, 0x21, 0xf3, 0x2b, 0x71, 0xbe, 0x12, 0xb7, 0x6c, 0xc9, 0x9b, 0xfd, 0xd1, 0x3f, 0x01, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x52, 0x2d, 0xb5, 0x31, 0xef, 0x08, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *LabelPair) Marshal() (dAtA []byte, err error) {
|
func (m *LabelPair) Marshal() (dAtA []byte, err error) {
|
||||||
|
@ -2496,7 +2499,7 @@ func (m *Summary) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.Quantile = append(m.Quantile, &Quantile{})
|
m.Quantile = append(m.Quantile, Quantile{})
|
||||||
if err := m.Quantile[len(m.Quantile)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.Quantile[len(m.Quantile)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -2673,7 +2676,7 @@ func (m *Histogram) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.Bucket = append(m.Bucket, &Bucket{})
|
m.Bucket = append(m.Bucket, Bucket{})
|
||||||
if err := m.Bucket[len(m.Bucket)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.Bucket[len(m.Bucket)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -2780,7 +2783,7 @@ func (m *Histogram) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.NegativeSpan = append(m.NegativeSpan, &BucketSpan{})
|
m.NegativeSpan = append(m.NegativeSpan, BucketSpan{})
|
||||||
if err := m.NegativeSpan[len(m.NegativeSpan)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.NegativeSpan[len(m.NegativeSpan)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -2946,7 +2949,7 @@ func (m *Histogram) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.PositiveSpan = append(m.PositiveSpan, &BucketSpan{})
|
m.PositiveSpan = append(m.PositiveSpan, BucketSpan{})
|
||||||
if err := m.PositiveSpan[len(m.PositiveSpan)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.PositiveSpan[len(m.PositiveSpan)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -3382,7 +3385,7 @@ func (m *Exemplar) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.Label = append(m.Label, &LabelPair{})
|
m.Label = append(m.Label, LabelPair{})
|
||||||
if err := m.Label[len(m.Label)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.Label[len(m.Label)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -3514,7 +3517,7 @@ func (m *Metric) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.Label = append(m.Label, &LabelPair{})
|
m.Label = append(m.Label, LabelPair{})
|
||||||
if err := m.Label[len(m.Label)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.Label[len(m.Label)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -3881,7 +3884,7 @@ func (m *MetricFamily) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.Metric = append(m.Metric, &Metric{})
|
m.Metric = append(m.Metric, Metric{})
|
||||||
if err := m.Metric[len(m.Metric)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.Metric[len(m.Metric)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
39
vendor/github.com/prometheus/prometheus/prompb/io/prometheus/client/metrics.proto
generated
vendored
39
vendor/github.com/prometheus/prometheus/prompb/io/prometheus/client/metrics.proto
generated
vendored
|
@ -21,6 +21,7 @@ syntax = "proto3";
|
||||||
package io.prometheus.client;
|
package io.prometheus.client;
|
||||||
option go_package = "io_prometheus_client";
|
option go_package = "io_prometheus_client";
|
||||||
|
|
||||||
|
import "gogoproto/gogo.proto";
|
||||||
import "google/protobuf/timestamp.proto";
|
import "google/protobuf/timestamp.proto";
|
||||||
|
|
||||||
message LabelPair {
|
message LabelPair {
|
||||||
|
@ -58,9 +59,9 @@ message Quantile {
|
||||||
}
|
}
|
||||||
|
|
||||||
message Summary {
|
message Summary {
|
||||||
uint64 sample_count = 1;
|
uint64 sample_count = 1;
|
||||||
double sample_sum = 2;
|
double sample_sum = 2;
|
||||||
repeated Quantile quantile = 3;
|
repeated Quantile quantile = 3 [(gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
|
|
||||||
message Untyped {
|
message Untyped {
|
||||||
|
@ -72,7 +73,7 @@ message Histogram {
|
||||||
double sample_count_float = 4; // Overrides sample_count if > 0.
|
double sample_count_float = 4; // Overrides sample_count if > 0.
|
||||||
double sample_sum = 2;
|
double sample_sum = 2;
|
||||||
// Buckets for the conventional histogram.
|
// Buckets for the conventional histogram.
|
||||||
repeated Bucket bucket = 3; // Ordered in increasing order of upper_bound, +Inf bucket is optional.
|
repeated Bucket bucket = 3 [(gogoproto.nullable) = false]; // Ordered in increasing order of upper_bound, +Inf bucket is optional.
|
||||||
|
|
||||||
// Everything below here is for native histograms (also known as sparse histograms).
|
// Everything below here is for native histograms (also known as sparse histograms).
|
||||||
// Native histograms are an experimental feature without stability guarantees.
|
// Native histograms are an experimental feature without stability guarantees.
|
||||||
|
@ -88,20 +89,20 @@ message Histogram {
|
||||||
double zero_count_float = 8; // Overrides sb_zero_count if > 0.
|
double zero_count_float = 8; // Overrides sb_zero_count if > 0.
|
||||||
|
|
||||||
// Negative buckets for the native histogram.
|
// Negative buckets for the native histogram.
|
||||||
repeated BucketSpan negative_span = 9;
|
repeated BucketSpan negative_span = 9 [(gogoproto.nullable) = false];
|
||||||
// Use either "negative_delta" or "negative_count", the former for
|
// Use either "negative_delta" or "negative_count", the former for
|
||||||
// regular histograms with integer counts, the latter for float
|
// regular histograms with integer counts, the latter for float
|
||||||
// histograms.
|
// histograms.
|
||||||
repeated sint64 negative_delta = 10; // Count delta of each bucket compared to previous one (or to zero for 1st bucket).
|
repeated sint64 negative_delta = 10; // Count delta of each bucket compared to previous one (or to zero for 1st bucket).
|
||||||
repeated double negative_count = 11; // Absolute count of each bucket.
|
repeated double negative_count = 11; // Absolute count of each bucket.
|
||||||
|
|
||||||
// Positive buckets for the native histogram.
|
// Positive buckets for the native histogram.
|
||||||
repeated BucketSpan positive_span = 12;
|
repeated BucketSpan positive_span = 12 [(gogoproto.nullable) = false];
|
||||||
// Use either "positive_delta" or "positive_count", the former for
|
// Use either "positive_delta" or "positive_count", the former for
|
||||||
// regular histograms with integer counts, the latter for float
|
// regular histograms with integer counts, the latter for float
|
||||||
// histograms.
|
// histograms.
|
||||||
repeated sint64 positive_delta = 13; // Count delta of each bucket compared to previous one (or to zero for 1st bucket).
|
repeated sint64 positive_delta = 13; // Count delta of each bucket compared to previous one (or to zero for 1st bucket).
|
||||||
repeated double positive_count = 14; // Absolute count of each bucket.
|
repeated double positive_count = 14; // Absolute count of each bucket.
|
||||||
}
|
}
|
||||||
|
|
||||||
message Bucket {
|
message Bucket {
|
||||||
|
@ -123,24 +124,24 @@ message BucketSpan {
|
||||||
}
|
}
|
||||||
|
|
||||||
message Exemplar {
|
message Exemplar {
|
||||||
repeated LabelPair label = 1;
|
repeated LabelPair label = 1 [(gogoproto.nullable) = false];
|
||||||
double value = 2;
|
double value = 2;
|
||||||
google.protobuf.Timestamp timestamp = 3; // OpenMetrics-style.
|
google.protobuf.Timestamp timestamp = 3; // OpenMetrics-style.
|
||||||
}
|
}
|
||||||
|
|
||||||
message Metric {
|
message Metric {
|
||||||
repeated LabelPair label = 1;
|
repeated LabelPair label = 1 [(gogoproto.nullable) = false];
|
||||||
Gauge gauge = 2;
|
Gauge gauge = 2;
|
||||||
Counter counter = 3;
|
Counter counter = 3;
|
||||||
Summary summary = 4;
|
Summary summary = 4;
|
||||||
Untyped untyped = 5;
|
Untyped untyped = 5;
|
||||||
Histogram histogram = 7;
|
Histogram histogram = 7;
|
||||||
int64 timestamp_ms = 6;
|
int64 timestamp_ms = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
message MetricFamily {
|
message MetricFamily {
|
||||||
string name = 1;
|
string name = 1;
|
||||||
string help = 2;
|
string help = 2;
|
||||||
MetricType type = 3;
|
MetricType type = 3;
|
||||||
repeated Metric metric = 4;
|
repeated Metric metric = 4 [(gogoproto.nullable) = false];
|
||||||
}
|
}
|
||||||
|
|
150
vendor/github.com/prometheus/prometheus/prompb/types.pb.go
generated
vendored
150
vendor/github.com/prometheus/prometheus/prompb/types.pb.go
generated
vendored
|
@ -383,14 +383,14 @@ type Histogram struct {
|
||||||
// *Histogram_ZeroCountFloat
|
// *Histogram_ZeroCountFloat
|
||||||
ZeroCount isHistogram_ZeroCount `protobuf_oneof:"zero_count"`
|
ZeroCount isHistogram_ZeroCount `protobuf_oneof:"zero_count"`
|
||||||
// Negative Buckets.
|
// Negative Buckets.
|
||||||
NegativeSpans []*BucketSpan `protobuf:"bytes,8,rep,name=negative_spans,json=negativeSpans,proto3" json:"negative_spans,omitempty"`
|
NegativeSpans []BucketSpan `protobuf:"bytes,8,rep,name=negative_spans,json=negativeSpans,proto3" json:"negative_spans"`
|
||||||
// Use either "negative_deltas" or "negative_counts", the former for
|
// Use either "negative_deltas" or "negative_counts", the former for
|
||||||
// regular histograms with integer counts, the latter for float
|
// regular histograms with integer counts, the latter for float
|
||||||
// histograms.
|
// histograms.
|
||||||
NegativeDeltas []int64 `protobuf:"zigzag64,9,rep,packed,name=negative_deltas,json=negativeDeltas,proto3" json:"negative_deltas,omitempty"`
|
NegativeDeltas []int64 `protobuf:"zigzag64,9,rep,packed,name=negative_deltas,json=negativeDeltas,proto3" json:"negative_deltas,omitempty"`
|
||||||
NegativeCounts []float64 `protobuf:"fixed64,10,rep,packed,name=negative_counts,json=negativeCounts,proto3" json:"negative_counts,omitempty"`
|
NegativeCounts []float64 `protobuf:"fixed64,10,rep,packed,name=negative_counts,json=negativeCounts,proto3" json:"negative_counts,omitempty"`
|
||||||
// Positive Buckets.
|
// Positive Buckets.
|
||||||
PositiveSpans []*BucketSpan `protobuf:"bytes,11,rep,name=positive_spans,json=positiveSpans,proto3" json:"positive_spans,omitempty"`
|
PositiveSpans []BucketSpan `protobuf:"bytes,11,rep,name=positive_spans,json=positiveSpans,proto3" json:"positive_spans"`
|
||||||
// Use either "positive_deltas" or "positive_counts", the former for
|
// Use either "positive_deltas" or "positive_counts", the former for
|
||||||
// regular histograms with integer counts, the latter for float
|
// regular histograms with integer counts, the latter for float
|
||||||
// histograms.
|
// histograms.
|
||||||
|
@ -529,7 +529,7 @@ func (m *Histogram) GetZeroCountFloat() float64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Histogram) GetNegativeSpans() []*BucketSpan {
|
func (m *Histogram) GetNegativeSpans() []BucketSpan {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.NegativeSpans
|
return m.NegativeSpans
|
||||||
}
|
}
|
||||||
|
@ -550,7 +550,7 @@ func (m *Histogram) GetNegativeCounts() []float64 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Histogram) GetPositiveSpans() []*BucketSpan {
|
func (m *Histogram) GetPositiveSpans() []BucketSpan {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.PositiveSpans
|
return m.PositiveSpans
|
||||||
}
|
}
|
||||||
|
@ -1143,75 +1143,75 @@ func init() {
|
||||||
func init() { proto.RegisterFile("types.proto", fileDescriptor_d938547f84707355) }
|
func init() { proto.RegisterFile("types.proto", fileDescriptor_d938547f84707355) }
|
||||||
|
|
||||||
var fileDescriptor_d938547f84707355 = []byte{
|
var fileDescriptor_d938547f84707355 = []byte{
|
||||||
// 1075 bytes of a gzipped FileDescriptorProto
|
// 1081 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x8e, 0xdb, 0x44,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdb, 0x6e, 0xdb, 0x46,
|
||||||
0x14, 0x5e, 0xdb, 0x89, 0x13, 0x9f, 0xfc, 0xd4, 0x3b, 0xda, 0x16, 0x53, 0xd1, 0x6d, 0xb0, 0x54,
|
0x13, 0x36, 0x49, 0x89, 0x12, 0x47, 0x87, 0xd0, 0x0b, 0x27, 0x3f, 0xff, 0xa0, 0x71, 0x54, 0x02,
|
||||||
0x88, 0x10, 0xca, 0xaa, 0x85, 0x0b, 0x2a, 0x0a, 0xd2, 0x6e, 0xc9, 0xfe, 0x88, 0x26, 0x51, 0x27,
|
0x69, 0x85, 0xa2, 0x90, 0x91, 0xb4, 0x17, 0x0d, 0x1a, 0x14, 0xb0, 0x5d, 0xf9, 0x80, 0x46, 0x12,
|
||||||
0x59, 0x41, 0xb9, 0x89, 0x66, 0x93, 0xd9, 0xc4, 0xaa, 0xff, 0xf0, 0x4c, 0xaa, 0x0d, 0xef, 0xc1,
|
0xb2, 0x92, 0xd1, 0xa6, 0x37, 0xc2, 0x5a, 0x5a, 0x4b, 0x44, 0x78, 0x2a, 0x77, 0x15, 0x58, 0x7d,
|
||||||
0x1d, 0x2f, 0xc1, 0x3d, 0x12, 0xb7, 0xbd, 0xe4, 0x09, 0x10, 0xda, 0x2b, 0x1e, 0x03, 0xcd, 0xb1,
|
0x8f, 0xde, 0xf5, 0x25, 0x7a, 0xdf, 0x07, 0x08, 0xd0, 0x9b, 0x3e, 0x41, 0x51, 0xf8, 0xaa, 0x8f,
|
||||||
0x1d, 0x3b, 0xdd, 0x82, 0x54, 0xee, 0xe6, 0x7c, 0xe7, 0x3b, 0x33, 0x9f, 0xe7, 0xfc, 0x8c, 0xa1,
|
0x51, 0xec, 0x90, 0x14, 0xa9, 0x38, 0x05, 0x9a, 0xde, 0xed, 0x7c, 0xf3, 0xcd, 0xec, 0xc7, 0xdd,
|
||||||
0x21, 0xd7, 0x31, 0x17, 0xbd, 0x38, 0x89, 0x64, 0x44, 0x20, 0x4e, 0xa2, 0x80, 0xcb, 0x25, 0x5f,
|
0x99, 0x59, 0x42, 0x43, 0xae, 0x63, 0x2e, 0x7a, 0x71, 0x12, 0xc9, 0x88, 0x40, 0x9c, 0x44, 0x01,
|
||||||
0x89, 0xbb, 0x7b, 0x8b, 0x68, 0x11, 0x21, 0x7c, 0xa0, 0x56, 0x29, 0xc3, 0xfd, 0x45, 0x87, 0xf6,
|
0x97, 0x4b, 0xbe, 0x12, 0xf7, 0xf7, 0x16, 0xd1, 0x22, 0x42, 0xf8, 0x40, 0xad, 0x52, 0x86, 0xfb,
|
||||||
0x80, 0xcb, 0xc4, 0x9b, 0x0d, 0xb8, 0x64, 0x73, 0x26, 0x19, 0x79, 0x0c, 0x15, 0xb5, 0x87, 0xa3,
|
0xb3, 0x0e, 0xed, 0x01, 0x97, 0x89, 0x37, 0x1b, 0x70, 0xc9, 0xe6, 0x4c, 0x32, 0xf2, 0x14, 0x2a,
|
||||||
0x75, 0xb4, 0x6e, 0xfb, 0xd1, 0x83, 0x5e, 0xb1, 0x47, 0x6f, 0x9b, 0x99, 0x99, 0x93, 0x75, 0xcc,
|
0x2a, 0x87, 0xa3, 0x75, 0xb4, 0x6e, 0xfb, 0xc9, 0xa3, 0x5e, 0x91, 0xa3, 0xb7, 0xcd, 0xcc, 0xcc,
|
||||||
0x29, 0x86, 0x90, 0x4f, 0x81, 0x04, 0x88, 0x4d, 0x2f, 0x59, 0xe0, 0xf9, 0xeb, 0x69, 0xc8, 0x02,
|
0xc9, 0x3a, 0xe6, 0x14, 0x43, 0xc8, 0xa7, 0x40, 0x02, 0xc4, 0xa6, 0x57, 0x2c, 0xf0, 0xfc, 0xf5,
|
||||||
0xee, 0xe8, 0x1d, 0xad, 0x6b, 0x51, 0x3b, 0xf5, 0x1c, 0xa3, 0x63, 0xc8, 0x02, 0x4e, 0x08, 0x54,
|
0x34, 0x64, 0x01, 0x77, 0xf4, 0x8e, 0xd6, 0xb5, 0xa8, 0x9d, 0x7a, 0x4e, 0xd0, 0x31, 0x64, 0x01,
|
||||||
0x96, 0xdc, 0x8f, 0x9d, 0x0a, 0xfa, 0x71, 0xad, 0xb0, 0x55, 0xe8, 0x49, 0xa7, 0x9a, 0x62, 0x6a,
|
0x27, 0x04, 0x2a, 0x4b, 0xee, 0xc7, 0x4e, 0x05, 0xfd, 0xb8, 0x56, 0xd8, 0x2a, 0xf4, 0xa4, 0x53,
|
||||||
0xed, 0xae, 0x01, 0x8a, 0x93, 0x48, 0x03, 0x6a, 0xe7, 0xc3, 0x6f, 0x87, 0xa3, 0xef, 0x86, 0xf6,
|
0x4d, 0x31, 0xb5, 0x76, 0xd7, 0x00, 0xc5, 0x4e, 0xa4, 0x01, 0xb5, 0x8b, 0xe1, 0x37, 0xc3, 0xd1,
|
||||||
0x8e, 0x32, 0x9e, 0x8e, 0xce, 0x87, 0x93, 0x3e, 0xb5, 0x35, 0x62, 0x41, 0xf5, 0xe4, 0xf0, 0xfc,
|
0xb7, 0x43, 0x7b, 0x47, 0x19, 0xc7, 0xa3, 0x8b, 0xe1, 0xa4, 0x4f, 0x6d, 0x8d, 0x58, 0x50, 0x3d,
|
||||||
0xa4, 0x6f, 0xeb, 0xa4, 0x05, 0xd6, 0xe9, 0xd9, 0x78, 0x32, 0x3a, 0xa1, 0x87, 0x03, 0xdb, 0x20,
|
0x3d, 0xbc, 0x38, 0xed, 0xdb, 0x3a, 0x69, 0x81, 0x75, 0x76, 0x3e, 0x9e, 0x8c, 0x4e, 0xe9, 0xe1,
|
||||||
0x04, 0xda, 0xe8, 0x29, 0xb0, 0x8a, 0x0a, 0x1d, 0x9f, 0x0f, 0x06, 0x87, 0xf4, 0x85, 0x5d, 0x25,
|
0xc0, 0x36, 0x08, 0x81, 0x36, 0x7a, 0x0a, 0xac, 0xa2, 0x42, 0xc7, 0x17, 0x83, 0xc1, 0x21, 0x7d,
|
||||||
0x75, 0xa8, 0x9c, 0x0d, 0x8f, 0x47, 0xb6, 0x49, 0x9a, 0x50, 0x1f, 0x4f, 0x0e, 0x27, 0xfd, 0x71,
|
0x69, 0x57, 0x49, 0x1d, 0x2a, 0xe7, 0xc3, 0x93, 0x91, 0x6d, 0x92, 0x26, 0xd4, 0xc7, 0x93, 0xc3,
|
||||||
0x7f, 0x62, 0xd7, 0xdc, 0x27, 0x60, 0x8e, 0x59, 0x10, 0xfb, 0x9c, 0xec, 0x41, 0xf5, 0x15, 0xf3,
|
0x49, 0x7f, 0xdc, 0x9f, 0xd8, 0x35, 0xf7, 0x19, 0x98, 0x63, 0x16, 0xc4, 0x3e, 0x27, 0x7b, 0x50,
|
||||||
0x57, 0xe9, 0xb5, 0x68, 0x34, 0x35, 0xc8, 0x07, 0x60, 0x49, 0x2f, 0xe0, 0x42, 0xb2, 0x20, 0xc6,
|
0x7d, 0xcd, 0xfc, 0x55, 0x7a, 0x2c, 0x1a, 0x4d, 0x0d, 0xf2, 0x01, 0x58, 0xd2, 0x0b, 0xb8, 0x90,
|
||||||
0xef, 0x34, 0x68, 0x01, 0xb8, 0x11, 0xd4, 0xfb, 0x57, 0x3c, 0x88, 0x7d, 0x96, 0x90, 0x03, 0x30,
|
0x2c, 0x88, 0xf1, 0x3b, 0x0d, 0x5a, 0x00, 0x6e, 0x04, 0xf5, 0xfe, 0x35, 0x0f, 0x62, 0x9f, 0x25,
|
||||||
0x7d, 0x76, 0xc1, 0x7d, 0xe1, 0x68, 0x1d, 0xa3, 0xdb, 0x78, 0xb4, 0x5b, 0xbe, 0xd7, 0x67, 0xca,
|
0xe4, 0x00, 0x4c, 0x9f, 0x5d, 0x72, 0x5f, 0x38, 0x5a, 0xc7, 0xe8, 0x36, 0x9e, 0xec, 0x96, 0xcf,
|
||||||
0x73, 0x54, 0x79, 0xfd, 0xe7, 0xfd, 0x1d, 0x9a, 0xd1, 0x8a, 0x03, 0xf5, 0x7f, 0x3d, 0xd0, 0x78,
|
0xf5, 0xb9, 0xf2, 0x1c, 0x55, 0xde, 0xfc, 0xf1, 0x70, 0x87, 0x66, 0xb4, 0x62, 0x43, 0xfd, 0x1f,
|
||||||
0xf3, 0xc0, 0xdf, 0xab, 0x60, 0x9d, 0x7a, 0x42, 0x46, 0x8b, 0x84, 0x05, 0xe4, 0x1e, 0x58, 0xb3,
|
0x37, 0x34, 0xde, 0xde, 0xf0, 0xb7, 0x2a, 0x58, 0x67, 0x9e, 0x90, 0xd1, 0x22, 0x61, 0x01, 0x79,
|
||||||
0x68, 0x15, 0xca, 0xa9, 0x17, 0x4a, 0x94, 0x5d, 0x39, 0xdd, 0xa1, 0x75, 0x84, 0xce, 0x42, 0x49,
|
0x00, 0xd6, 0x2c, 0x5a, 0x85, 0x72, 0xea, 0x85, 0x12, 0x65, 0x57, 0xce, 0x76, 0x68, 0x1d, 0xa1,
|
||||||
0x3e, 0x84, 0x46, 0xea, 0xbe, 0xf4, 0x23, 0x26, 0xd3, 0x63, 0x4e, 0x77, 0x28, 0x20, 0x78, 0xac,
|
0xf3, 0x50, 0x92, 0x0f, 0xa1, 0x91, 0xba, 0xaf, 0xfc, 0x88, 0xc9, 0x74, 0x9b, 0xb3, 0x1d, 0x0a,
|
||||||
0x30, 0x62, 0x83, 0x21, 0x56, 0x01, 0x9e, 0xa3, 0x51, 0xb5, 0x24, 0x77, 0xc0, 0x14, 0xb3, 0x25,
|
0x08, 0x9e, 0x28, 0x8c, 0xd8, 0x60, 0x88, 0x55, 0x80, 0xfb, 0x68, 0x54, 0x2d, 0xc9, 0x3d, 0x30,
|
||||||
0x0f, 0x18, 0x66, 0x6d, 0x97, 0x66, 0x16, 0x79, 0x00, 0xed, 0x9f, 0x78, 0x12, 0x4d, 0xe5, 0x32,
|
0xc5, 0x6c, 0xc9, 0x03, 0x86, 0xb7, 0xb6, 0x4b, 0x33, 0x8b, 0x3c, 0x82, 0xf6, 0x8f, 0x3c, 0x89,
|
||||||
0xe1, 0x62, 0x19, 0xf9, 0x73, 0xcc, 0xa0, 0x46, 0x5b, 0x0a, 0x9d, 0xe4, 0x20, 0xf9, 0x28, 0xa3,
|
0xa6, 0x72, 0x99, 0x70, 0xb1, 0x8c, 0xfc, 0x39, 0xde, 0xa0, 0x46, 0x5b, 0x0a, 0x9d, 0xe4, 0x20,
|
||||||
0x15, 0xba, 0x4c, 0xd4, 0xa5, 0xd1, 0xa6, 0xc2, 0x9f, 0xe6, 0xda, 0x3e, 0x01, 0xbb, 0xc4, 0x4b,
|
0xf9, 0x28, 0xa3, 0x15, 0xba, 0x4c, 0xd4, 0xa5, 0xd1, 0xa6, 0xc2, 0x8f, 0x73, 0x6d, 0x9f, 0x80,
|
||||||
0x05, 0xd6, 0x50, 0xa0, 0x46, 0xdb, 0x1b, 0x66, 0x2a, 0xf2, 0x2b, 0x68, 0x87, 0x7c, 0xc1, 0xa4,
|
0x5d, 0xe2, 0xa5, 0x02, 0x6b, 0x28, 0x50, 0xa3, 0xed, 0x0d, 0x33, 0x15, 0x79, 0x0c, 0xed, 0x90,
|
||||||
0xf7, 0x8a, 0x4f, 0x45, 0xcc, 0x42, 0xe1, 0xd4, 0xf1, 0x86, 0xef, 0x94, 0x6f, 0xf8, 0x68, 0x35,
|
0x2f, 0x98, 0xf4, 0x5e, 0xf3, 0xa9, 0x88, 0x59, 0x28, 0x9c, 0x3a, 0x9e, 0xf0, 0xbd, 0xf2, 0x09,
|
||||||
0x7b, 0xc9, 0xe5, 0x38, 0x66, 0x21, 0x6d, 0xe5, 0x6c, 0x65, 0x09, 0xf2, 0x31, 0xdc, 0xda, 0x84,
|
0x1f, 0xad, 0x66, 0xaf, 0xb8, 0x1c, 0xc7, 0x2c, 0xcc, 0x8e, 0xb9, 0x95, 0xc7, 0x28, 0x4c, 0x90,
|
||||||
0xcf, 0xb9, 0x2f, 0x99, 0x70, 0xac, 0x8e, 0xd1, 0x25, 0x74, 0xb3, 0xeb, 0x37, 0x88, 0x6e, 0x11,
|
0x8f, 0xe1, 0xce, 0x26, 0xc9, 0x9c, 0xfb, 0x92, 0x09, 0xc7, 0xea, 0x18, 0x5d, 0x42, 0x37, 0xb9,
|
||||||
0x51, 0x97, 0x70, 0xa0, 0x63, 0x74, 0xb5, 0x82, 0x88, 0xa2, 0x84, 0x12, 0x14, 0x47, 0xc2, 0x2b,
|
0xbf, 0x46, 0x74, 0x8b, 0x88, 0xea, 0x84, 0x03, 0x1d, 0xa3, 0xab, 0x15, 0x44, 0x94, 0x26, 0x94,
|
||||||
0x09, 0x6a, 0xfc, 0xb7, 0xa0, 0x9c, 0xbd, 0x11, 0xb4, 0x09, 0xcf, 0x04, 0x35, 0x53, 0x41, 0x39,
|
0xac, 0x38, 0x12, 0x5e, 0x49, 0x56, 0xe3, 0xdf, 0xc8, 0xca, 0x63, 0x36, 0xb2, 0x36, 0x49, 0x32,
|
||||||
0x5c, 0x08, 0xda, 0x10, 0x33, 0x41, 0xad, 0x54, 0x50, 0x0e, 0x67, 0x82, 0xbe, 0x06, 0x48, 0xb8,
|
0x59, 0xcd, 0x54, 0x56, 0x0e, 0x17, 0xb2, 0x36, 0xc4, 0x4c, 0x56, 0x2b, 0x95, 0x95, 0xc3, 0x99,
|
||||||
0xe0, 0x72, 0xba, 0x54, 0x37, 0xde, 0xc6, 0xbe, 0xbe, 0x5f, 0x16, 0xb3, 0xa9, 0x99, 0x1e, 0x55,
|
0xac, 0xaf, 0x00, 0x12, 0x2e, 0xb8, 0x9c, 0x2e, 0xd5, 0xe9, 0xb7, 0xb1, 0xc7, 0x1f, 0x96, 0x25,
|
||||||
0xbc, 0x53, 0x2f, 0x94, 0xd4, 0x4a, 0xf2, 0xe5, 0x76, 0xd1, 0xdd, 0x7a, 0xb3, 0xe8, 0x3e, 0x07,
|
0x6d, 0xea, 0xa7, 0x47, 0x15, 0xef, 0xcc, 0x0b, 0x25, 0xb5, 0x92, 0x7c, 0xb9, 0x5d, 0x80, 0x77,
|
||||||
0x6b, 0x13, 0xb5, 0xdd, 0x9d, 0x35, 0x30, 0x5e, 0xf4, 0xc7, 0xb6, 0x46, 0x4c, 0xd0, 0x87, 0x23,
|
0xde, 0x2e, 0xc0, 0xcf, 0xc1, 0xda, 0x44, 0x6d, 0x77, 0x6a, 0x0d, 0x8c, 0x97, 0xfd, 0xb1, 0xad,
|
||||||
0x5b, 0x2f, 0x3a, 0xd4, 0x38, 0xaa, 0x41, 0x15, 0x35, 0x1f, 0x35, 0x01, 0x8a, 0x54, 0xbb, 0x4f,
|
0x11, 0x13, 0xf4, 0xe1, 0xc8, 0xd6, 0x8b, 0x6e, 0x35, 0x8e, 0x6a, 0x50, 0x45, 0xcd, 0x47, 0x4d,
|
||||||
0x00, 0x8a, 0x9b, 0x51, 0xd5, 0x16, 0x5d, 0x5e, 0x0a, 0x9e, 0x96, 0xef, 0x2e, 0xcd, 0x2c, 0x85,
|
0x80, 0xe2, 0xda, 0xdd, 0x67, 0x00, 0xc5, 0xf9, 0xa8, 0xca, 0x8b, 0xae, 0xae, 0x04, 0x4f, 0x4b,
|
||||||
0xfb, 0x3c, 0x5c, 0xc8, 0x25, 0x56, 0x6d, 0x8b, 0x66, 0x96, 0xfb, 0xb7, 0x06, 0x30, 0xf1, 0x02,
|
0x79, 0x97, 0x66, 0x96, 0xc2, 0x7d, 0x1e, 0x2e, 0xe4, 0x12, 0x2b, 0xb8, 0x45, 0x33, 0xcb, 0xfd,
|
||||||
0x3e, 0xe6, 0x89, 0xc7, 0xc5, 0xbb, 0xf7, 0xdc, 0x23, 0xa8, 0x09, 0x6c, 0x77, 0xe1, 0xe8, 0x18,
|
0x4b, 0x03, 0x98, 0x78, 0x01, 0x1f, 0xf3, 0xc4, 0xe3, 0xe2, 0xfd, 0xfb, 0xef, 0x09, 0xd4, 0x04,
|
||||||
0x41, 0xca, 0x11, 0xe9, 0x24, 0xc8, 0x42, 0x72, 0x22, 0xf9, 0x02, 0x2c, 0x9e, 0x35, 0xb9, 0x70,
|
0xb6, 0xbe, 0x70, 0x74, 0x8c, 0x20, 0xe5, 0x88, 0x74, 0x2a, 0x64, 0x21, 0x39, 0x91, 0x7c, 0x01,
|
||||||
0x0c, 0x8c, 0xda, 0x2b, 0x47, 0xe5, 0x13, 0x20, 0x8b, 0x2b, 0xc8, 0xe4, 0x4b, 0x80, 0x65, 0x7e,
|
0x16, 0xcf, 0x1a, 0x5e, 0x38, 0x06, 0x46, 0xed, 0x95, 0xa3, 0xf2, 0x69, 0x90, 0xc5, 0x15, 0x64,
|
||||||
0xf1, 0xc2, 0xa9, 0x60, 0xe8, 0xed, 0xb7, 0xa6, 0x25, 0x8b, 0x2d, 0xd1, 0xdd, 0x87, 0x50, 0xc5,
|
0xf2, 0x25, 0xc0, 0x32, 0x3f, 0x78, 0xe1, 0x54, 0x30, 0xf4, 0xee, 0x3b, 0xaf, 0x25, 0x8b, 0x2d,
|
||||||
0x2f, 0x50, 0x13, 0x13, 0xa7, 0xac, 0x96, 0x4e, 0x4c, 0xb5, 0xde, 0x9e, 0x1d, 0x56, 0x36, 0x3b,
|
0xd1, 0xdd, 0xc7, 0x50, 0xc5, 0x2f, 0x50, 0xd3, 0x13, 0x27, 0xae, 0x96, 0x4e, 0x4f, 0xb5, 0xde,
|
||||||
0xdc, 0xc7, 0x60, 0x3e, 0x4b, 0xbf, 0xf3, 0x5d, 0x2f, 0xc6, 0xfd, 0x59, 0x83, 0x26, 0xe2, 0x03,
|
0x9e, 0x23, 0x56, 0x36, 0x47, 0xdc, 0xa7, 0x60, 0x3e, 0x4f, 0xbf, 0xf3, 0x7d, 0x0f, 0xc6, 0xfd,
|
||||||
0x26, 0x67, 0x4b, 0x9e, 0x90, 0x87, 0x5b, 0x8f, 0xc4, 0xbd, 0x1b, 0xf1, 0x19, 0xaf, 0x57, 0x7a,
|
0x49, 0x83, 0x26, 0xe2, 0x03, 0x26, 0x67, 0x4b, 0x9e, 0x90, 0xc7, 0x5b, 0x0f, 0xc6, 0x83, 0x5b,
|
||||||
0x1c, 0x72, 0xa1, 0xfa, 0xdb, 0x84, 0x1a, 0x65, 0xa1, 0x5d, 0xa8, 0xe0, 0xa8, 0x37, 0x41, 0xef,
|
0xf1, 0x19, 0xaf, 0x57, 0x7a, 0x28, 0x72, 0xa1, 0xfa, 0xbb, 0x84, 0x1a, 0x65, 0xa1, 0x5d, 0xa8,
|
||||||
0x3f, 0x4f, 0xeb, 0x68, 0xd8, 0x7f, 0x9e, 0xd6, 0x11, 0x55, 0xe3, 0x5d, 0x01, 0xb4, 0x6f, 0x1b,
|
0xe0, 0xd8, 0x37, 0x41, 0xef, 0xbf, 0x48, 0xeb, 0x68, 0xd8, 0x7f, 0x91, 0xd6, 0x11, 0x55, 0xa3,
|
||||||
0xee, 0xaf, 0x9a, 0x2a, 0x3e, 0x36, 0x57, 0xb5, 0x27, 0xc8, 0x7b, 0x50, 0x13, 0x92, 0xc7, 0xd3,
|
0x5e, 0x01, 0xb4, 0x6f, 0x1b, 0xee, 0x2f, 0x9a, 0x2a, 0x3e, 0x36, 0x57, 0xb5, 0x27, 0xc8, 0xff,
|
||||||
0x40, 0xa0, 0x2e, 0x83, 0x9a, 0xca, 0x1c, 0x08, 0x75, 0xf4, 0xe5, 0x2a, 0x9c, 0xe5, 0x47, 0xab,
|
0xa0, 0x26, 0x24, 0x8f, 0xa7, 0x81, 0x40, 0x5d, 0x06, 0x35, 0x95, 0x39, 0x10, 0x6a, 0xeb, 0xab,
|
||||||
0x35, 0x79, 0x1f, 0xea, 0x42, 0xb2, 0x44, 0x2a, 0x76, 0x3a, 0x48, 0x6b, 0x68, 0x0f, 0x04, 0xb9,
|
0x55, 0x38, 0xcb, 0xb7, 0x56, 0x6b, 0xf2, 0x7f, 0xa8, 0x0b, 0xc9, 0x12, 0xa9, 0xd8, 0xe9, 0x50,
|
||||||
0x0d, 0x26, 0x0f, 0xe7, 0x53, 0x4c, 0x8a, 0x72, 0x54, 0x79, 0x38, 0x1f, 0x08, 0x72, 0x17, 0xea,
|
0xad, 0xa1, 0x3d, 0x10, 0xe4, 0x2e, 0x98, 0x3c, 0x9c, 0x4f, 0xf1, 0x52, 0x94, 0xa3, 0xca, 0xc3,
|
||||||
0x8b, 0x24, 0x5a, 0xc5, 0x5e, 0xb8, 0x70, 0xaa, 0x1d, 0xa3, 0x6b, 0xd1, 0x8d, 0x4d, 0xda, 0xa0,
|
0xf9, 0x40, 0x90, 0xfb, 0x50, 0x5f, 0x24, 0xd1, 0x2a, 0xf6, 0xc2, 0x85, 0x53, 0xed, 0x18, 0x5d,
|
||||||
0x5f, 0xac, 0x71, 0x98, 0xd5, 0xa9, 0x7e, 0xb1, 0x56, 0xbb, 0x27, 0x2c, 0x5c, 0x70, 0xb5, 0x49,
|
0x8b, 0x6e, 0x6c, 0xd2, 0x06, 0xfd, 0x72, 0x8d, 0x83, 0xad, 0x4e, 0xf5, 0xcb, 0xb5, 0xca, 0x9e,
|
||||||
0x2d, 0xdd, 0x1d, 0xed, 0x81, 0x70, 0x7f, 0xd3, 0xa0, 0xfa, 0x74, 0xb9, 0x0a, 0x5f, 0x92, 0x7d,
|
0xb0, 0x70, 0xc1, 0x55, 0x92, 0x5a, 0x9a, 0x1d, 0xed, 0x81, 0x70, 0x7f, 0xd5, 0xa0, 0x7a, 0xbc,
|
||||||
0x68, 0x04, 0x5e, 0x38, 0x55, 0xad, 0x54, 0x68, 0xb6, 0x02, 0x2f, 0x54, 0x35, 0x3c, 0x10, 0xe8,
|
0x5c, 0x85, 0xaf, 0xc8, 0x3e, 0x34, 0x02, 0x2f, 0x9c, 0xaa, 0x56, 0x2a, 0x34, 0x5b, 0x81, 0x17,
|
||||||
0x67, 0x57, 0x1b, 0x7f, 0xf6, 0xbe, 0x04, 0xec, 0x2a, 0xf3, 0xf7, 0xb2, 0x24, 0x18, 0x98, 0x84,
|
0xaa, 0x1a, 0x1e, 0x08, 0xf4, 0xb3, 0xeb, 0x8d, 0x3f, 0x7b, 0x6b, 0x02, 0x76, 0x9d, 0xf9, 0x7b,
|
||||||
0xbb, 0xe5, 0x24, 0xe0, 0x01, 0xbd, 0x7e, 0x38, 0x8b, 0xe6, 0x5e, 0xb8, 0x28, 0x32, 0xa0, 0xde,
|
0xd9, 0x25, 0x18, 0x78, 0x09, 0xf7, 0xcb, 0x97, 0x80, 0x1b, 0xf4, 0xfa, 0xe1, 0x2c, 0x9a, 0x7b,
|
||||||
0x6d, 0xfc, 0xaa, 0x26, 0xc5, 0xb5, 0x7b, 0x00, 0xf5, 0x9c, 0x75, 0xa3, 0x79, 0xbf, 0x1f, 0xa9,
|
0xe1, 0xa2, 0xb8, 0x01, 0xf5, 0x86, 0xe3, 0x57, 0x35, 0x29, 0xae, 0xdd, 0x03, 0xa8, 0xe7, 0xac,
|
||||||
0x67, 0x75, 0xeb, 0x2d, 0xd5, 0xdd, 0x1f, 0xa1, 0x85, 0x9b, 0xf3, 0xf9, 0xff, 0xed, 0xb2, 0x03,
|
0x5b, 0xcd, 0xfb, 0xdd, 0x48, 0x3d, 0xb1, 0x5b, 0xef, 0xaa, 0xee, 0xfe, 0x00, 0x2d, 0x4c, 0xce,
|
||||||
0x30, 0x67, 0x6a, 0x87, 0xbc, 0xc9, 0x76, 0x6f, 0x08, 0xcf, 0x03, 0x52, 0xda, 0xd1, 0xde, 0xeb,
|
0xe7, 0xff, 0xb5, 0xcb, 0x0e, 0xc0, 0x9c, 0xa9, 0x0c, 0x79, 0x93, 0xed, 0xde, 0x12, 0x9e, 0x07,
|
||||||
0xeb, 0x7d, 0xed, 0x8f, 0xeb, 0x7d, 0xed, 0xaf, 0xeb, 0x7d, 0xed, 0x07, 0x53, 0xb1, 0xe3, 0x8b,
|
0xa4, 0xb4, 0xa3, 0xbd, 0x37, 0x37, 0xfb, 0xda, 0xef, 0x37, 0xfb, 0xda, 0x9f, 0x37, 0xfb, 0xda,
|
||||||
0x0b, 0x13, 0xff, 0x60, 0x3e, 0xfb, 0x27, 0x00, 0x00, 0xff, 0xff, 0x36, 0xd7, 0x1e, 0xb4, 0xf2,
|
0xf7, 0xa6, 0x62, 0xc7, 0x97, 0x97, 0x26, 0xfe, 0xcd, 0x7c, 0xf6, 0x77, 0x00, 0x00, 0x00, 0xff,
|
||||||
0x08, 0x00, 0x00,
|
0xff, 0x53, 0x09, 0xe5, 0x37, 0xfe, 0x08, 0x00, 0x00,
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MetricMetadata) Marshal() (dAtA []byte, err error) {
|
func (m *MetricMetadata) Marshal() (dAtA []byte, err error) {
|
||||||
|
@ -2903,7 +2903,7 @@ func (m *Histogram) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.NegativeSpans = append(m.NegativeSpans, &BucketSpan{})
|
m.NegativeSpans = append(m.NegativeSpans, BucketSpan{})
|
||||||
if err := m.NegativeSpans[len(m.NegativeSpans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.NegativeSpans[len(m.NegativeSpans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -3069,7 +3069,7 @@ func (m *Histogram) Unmarshal(dAtA []byte) error {
|
||||||
if postIndex > l {
|
if postIndex > l {
|
||||||
return io.ErrUnexpectedEOF
|
return io.ErrUnexpectedEOF
|
||||||
}
|
}
|
||||||
m.PositiveSpans = append(m.PositiveSpans, &BucketSpan{})
|
m.PositiveSpans = append(m.PositiveSpans, BucketSpan{})
|
||||||
if err := m.PositiveSpans[len(m.PositiveSpans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
if err := m.PositiveSpans[len(m.PositiveSpans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
8
vendor/github.com/prometheus/prometheus/prompb/types.proto
generated
vendored
8
vendor/github.com/prometheus/prometheus/prompb/types.proto
generated
vendored
|
@ -86,9 +86,9 @@ message Histogram {
|
||||||
uint64 zero_count_int = 6;
|
uint64 zero_count_int = 6;
|
||||||
double zero_count_float = 7;
|
double zero_count_float = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Negative Buckets.
|
// Negative Buckets.
|
||||||
repeated BucketSpan negative_spans = 8;
|
repeated BucketSpan negative_spans = 8 [(gogoproto.nullable) = false];
|
||||||
// Use either "negative_deltas" or "negative_counts", the former for
|
// Use either "negative_deltas" or "negative_counts", the former for
|
||||||
// regular histograms with integer counts, the latter for float
|
// regular histograms with integer counts, the latter for float
|
||||||
// histograms.
|
// histograms.
|
||||||
|
@ -96,7 +96,7 @@ message Histogram {
|
||||||
repeated double negative_counts = 10; // Absolute count of each bucket.
|
repeated double negative_counts = 10; // Absolute count of each bucket.
|
||||||
|
|
||||||
// Positive Buckets.
|
// Positive Buckets.
|
||||||
repeated BucketSpan positive_spans = 11;
|
repeated BucketSpan positive_spans = 11 [(gogoproto.nullable) = false];
|
||||||
// Use either "positive_deltas" or "positive_counts", the former for
|
// Use either "positive_deltas" or "positive_counts", the former for
|
||||||
// regular histograms with integer counts, the latter for float
|
// regular histograms with integer counts, the latter for float
|
||||||
// histograms.
|
// histograms.
|
||||||
|
@ -107,7 +107,7 @@ message Histogram {
|
||||||
// timestamp is in ms format, see model/timestamp/timestamp.go for
|
// timestamp is in ms format, see model/timestamp/timestamp.go for
|
||||||
// conversion from time.Time to Prometheus timestamp.
|
// conversion from time.Time to Prometheus timestamp.
|
||||||
int64 timestamp = 15;
|
int64 timestamp = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
// A BucketSpan defines a number of consecutive buckets with their
|
// A BucketSpan defines a number of consecutive buckets with their
|
||||||
// offset. Logically, it would be more straightforward to include the
|
// offset. Logically, it would be more straightforward to include the
|
||||||
|
|
7
vendor/github.com/prometheus/prometheus/scrape/manager.go
generated
vendored
7
vendor/github.com/prometheus/prometheus/scrape/manager.go
generated
vendored
|
@ -270,8 +270,13 @@ func (m *Manager) ApplyConfig(cfg *config.Config) error {
|
||||||
m.mtxScrape.Lock()
|
m.mtxScrape.Lock()
|
||||||
defer m.mtxScrape.Unlock()
|
defer m.mtxScrape.Unlock()
|
||||||
|
|
||||||
|
scfgs, err := cfg.GetScrapeConfigs()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
c := make(map[string]*config.ScrapeConfig)
|
c := make(map[string]*config.ScrapeConfig)
|
||||||
for _, scfg := range cfg.ScrapeConfigs {
|
for _, scfg := range scfgs {
|
||||||
c[scfg.JobName] = scfg
|
c[scfg.JobName] = scfg
|
||||||
}
|
}
|
||||||
m.scrapeConfigs = c
|
m.scrapeConfigs = c
|
||||||
|
|
6
vendor/github.com/prometheus/prometheus/scrape/scrape.go
generated
vendored
6
vendor/github.com/prometheus/prometheus/scrape/scrape.go
generated
vendored
|
@ -328,7 +328,7 @@ func newScrapePool(cfg *config.ScrapeConfig, app storage.Appendable, jitterSeed
|
||||||
options.PassMetadataInContext,
|
options.PassMetadataInContext,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
targetScrapePoolTargetLimit.WithLabelValues(sp.config.JobName).Set(float64(sp.config.TargetLimit))
|
||||||
return sp, nil
|
return sp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -490,9 +490,11 @@ func (sp *scrapePool) Sync(tgs []*targetgroup.Group) {
|
||||||
|
|
||||||
sp.targetMtx.Lock()
|
sp.targetMtx.Lock()
|
||||||
var all []*Target
|
var all []*Target
|
||||||
|
var targets []*Target
|
||||||
|
lb := labels.NewBuilder(labels.EmptyLabels())
|
||||||
sp.droppedTargets = []*Target{}
|
sp.droppedTargets = []*Target{}
|
||||||
for _, tg := range tgs {
|
for _, tg := range tgs {
|
||||||
targets, failures := TargetsFromGroup(tg, sp.config, sp.noDefaultPort)
|
targets, failures := TargetsFromGroup(tg, sp.config, sp.noDefaultPort, targets, lb)
|
||||||
for _, err := range failures {
|
for _, err := range failures {
|
||||||
level.Error(sp.logger).Log("msg", "Creating target failed", "err", err)
|
level.Error(sp.logger).Log("msg", "Creating target failed", "err", err)
|
||||||
}
|
}
|
||||||
|
|
37
vendor/github.com/prometheus/prometheus/scrape/target.go
generated
vendored
37
vendor/github.com/prometheus/prometheus/scrape/target.go
generated
vendored
|
@ -349,7 +349,7 @@ func (app *timeLimitAppender) Append(ref storage.SeriesRef, lset labels.Labels,
|
||||||
// PopulateLabels builds a label set from the given label set and scrape configuration.
|
// PopulateLabels builds a label set from the given label set and scrape configuration.
|
||||||
// It returns a label set before relabeling was applied as the second return value.
|
// It returns a label set before relabeling was applied as the second return value.
|
||||||
// Returns the original discovered label set found before relabelling was applied if the target is dropped during relabeling.
|
// Returns the original discovered label set found before relabelling was applied if the target is dropped during relabeling.
|
||||||
func PopulateLabels(lset labels.Labels, cfg *config.ScrapeConfig, noDefaultPort bool) (res, orig labels.Labels, err error) {
|
func PopulateLabels(lb *labels.Builder, cfg *config.ScrapeConfig, noDefaultPort bool) (res, orig labels.Labels, err error) {
|
||||||
// Copy labels into the labelset for the target if they are not set already.
|
// Copy labels into the labelset for the target if they are not set already.
|
||||||
scrapeLabels := []labels.Label{
|
scrapeLabels := []labels.Label{
|
||||||
{Name: model.JobLabel, Value: cfg.JobName},
|
{Name: model.JobLabel, Value: cfg.JobName},
|
||||||
|
@ -358,10 +358,9 @@ func PopulateLabels(lset labels.Labels, cfg *config.ScrapeConfig, noDefaultPort
|
||||||
{Name: model.MetricsPathLabel, Value: cfg.MetricsPath},
|
{Name: model.MetricsPathLabel, Value: cfg.MetricsPath},
|
||||||
{Name: model.SchemeLabel, Value: cfg.Scheme},
|
{Name: model.SchemeLabel, Value: cfg.Scheme},
|
||||||
}
|
}
|
||||||
lb := labels.NewBuilder(lset)
|
|
||||||
|
|
||||||
for _, l := range scrapeLabels {
|
for _, l := range scrapeLabels {
|
||||||
if lv := lset.Get(l.Name); lv == "" {
|
if lb.Get(l.Name) == "" {
|
||||||
lb.Set(l.Name, l.Value)
|
lb.Set(l.Name, l.Value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -373,18 +372,16 @@ func PopulateLabels(lset labels.Labels, cfg *config.ScrapeConfig, noDefaultPort
|
||||||
}
|
}
|
||||||
|
|
||||||
preRelabelLabels := lb.Labels(labels.EmptyLabels())
|
preRelabelLabels := lb.Labels(labels.EmptyLabels())
|
||||||
lset, keep := relabel.Process(preRelabelLabels, cfg.RelabelConfigs...)
|
keep := relabel.ProcessBuilder(lb, cfg.RelabelConfigs...)
|
||||||
|
|
||||||
// Check if the target was dropped.
|
// Check if the target was dropped.
|
||||||
if !keep {
|
if !keep {
|
||||||
return labels.EmptyLabels(), preRelabelLabels, nil
|
return labels.EmptyLabels(), preRelabelLabels, nil
|
||||||
}
|
}
|
||||||
if v := lset.Get(model.AddressLabel); v == "" {
|
if v := lb.Get(model.AddressLabel); v == "" {
|
||||||
return labels.EmptyLabels(), labels.EmptyLabels(), errors.New("no address")
|
return labels.EmptyLabels(), labels.EmptyLabels(), errors.New("no address")
|
||||||
}
|
}
|
||||||
|
|
||||||
lb = labels.NewBuilder(lset)
|
|
||||||
|
|
||||||
// addPort checks whether we should add a default port to the address.
|
// addPort checks whether we should add a default port to the address.
|
||||||
// If the address is not valid, we don't append a port either.
|
// If the address is not valid, we don't append a port either.
|
||||||
addPort := func(s string) (string, string, bool) {
|
addPort := func(s string) (string, string, bool) {
|
||||||
|
@ -398,8 +395,8 @@ func PopulateLabels(lset labels.Labels, cfg *config.ScrapeConfig, noDefaultPort
|
||||||
return "", "", err == nil
|
return "", "", err == nil
|
||||||
}
|
}
|
||||||
|
|
||||||
addr := lset.Get(model.AddressLabel)
|
addr := lb.Get(model.AddressLabel)
|
||||||
scheme := lset.Get(model.SchemeLabel)
|
scheme := lb.Get(model.SchemeLabel)
|
||||||
host, port, add := addPort(addr)
|
host, port, add := addPort(addr)
|
||||||
// If it's an address with no trailing port, infer it based on the used scheme
|
// If it's an address with no trailing port, infer it based on the used scheme
|
||||||
// unless the no-default-scrape-port feature flag is present.
|
// unless the no-default-scrape-port feature flag is present.
|
||||||
|
@ -435,7 +432,7 @@ func PopulateLabels(lset labels.Labels, cfg *config.ScrapeConfig, noDefaultPort
|
||||||
return labels.EmptyLabels(), labels.EmptyLabels(), err
|
return labels.EmptyLabels(), labels.EmptyLabels(), err
|
||||||
}
|
}
|
||||||
|
|
||||||
interval := lset.Get(model.ScrapeIntervalLabel)
|
interval := lb.Get(model.ScrapeIntervalLabel)
|
||||||
intervalDuration, err := model.ParseDuration(interval)
|
intervalDuration, err := model.ParseDuration(interval)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return labels.EmptyLabels(), labels.EmptyLabels(), errors.Errorf("error parsing scrape interval: %v", err)
|
return labels.EmptyLabels(), labels.EmptyLabels(), errors.Errorf("error parsing scrape interval: %v", err)
|
||||||
|
@ -444,7 +441,7 @@ func PopulateLabels(lset labels.Labels, cfg *config.ScrapeConfig, noDefaultPort
|
||||||
return labels.EmptyLabels(), labels.EmptyLabels(), errors.New("scrape interval cannot be 0")
|
return labels.EmptyLabels(), labels.EmptyLabels(), errors.New("scrape interval cannot be 0")
|
||||||
}
|
}
|
||||||
|
|
||||||
timeout := lset.Get(model.ScrapeTimeoutLabel)
|
timeout := lb.Get(model.ScrapeTimeoutLabel)
|
||||||
timeoutDuration, err := model.ParseDuration(timeout)
|
timeoutDuration, err := model.ParseDuration(timeout)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return labels.EmptyLabels(), labels.EmptyLabels(), errors.Errorf("error parsing scrape timeout: %v", err)
|
return labels.EmptyLabels(), labels.EmptyLabels(), errors.Errorf("error parsing scrape timeout: %v", err)
|
||||||
|
@ -459,14 +456,14 @@ func PopulateLabels(lset labels.Labels, cfg *config.ScrapeConfig, noDefaultPort
|
||||||
|
|
||||||
// Meta labels are deleted after relabelling. Other internal labels propagate to
|
// Meta labels are deleted after relabelling. Other internal labels propagate to
|
||||||
// the target which decides whether they will be part of their label set.
|
// the target which decides whether they will be part of their label set.
|
||||||
lset.Range(func(l labels.Label) {
|
lb.Range(func(l labels.Label) {
|
||||||
if strings.HasPrefix(l.Name, model.MetaLabelPrefix) {
|
if strings.HasPrefix(l.Name, model.MetaLabelPrefix) {
|
||||||
lb.Del(l.Name)
|
lb.Del(l.Name)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// Default the instance label to the target address.
|
// Default the instance label to the target address.
|
||||||
if v := lset.Get(model.InstanceLabel); v == "" {
|
if v := lb.Get(model.InstanceLabel); v == "" {
|
||||||
lb.Set(model.InstanceLabel, addr)
|
lb.Set(model.InstanceLabel, addr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -485,25 +482,23 @@ func PopulateLabels(lset labels.Labels, cfg *config.ScrapeConfig, noDefaultPort
|
||||||
}
|
}
|
||||||
|
|
||||||
// TargetsFromGroup builds targets based on the given TargetGroup and config.
|
// TargetsFromGroup builds targets based on the given TargetGroup and config.
|
||||||
func TargetsFromGroup(tg *targetgroup.Group, cfg *config.ScrapeConfig, noDefaultPort bool) ([]*Target, []error) {
|
func TargetsFromGroup(tg *targetgroup.Group, cfg *config.ScrapeConfig, noDefaultPort bool, targets []*Target, lb *labels.Builder) ([]*Target, []error) {
|
||||||
targets := make([]*Target, 0, len(tg.Targets))
|
targets = targets[:0]
|
||||||
failures := []error{}
|
failures := []error{}
|
||||||
|
|
||||||
for i, tlset := range tg.Targets {
|
for i, tlset := range tg.Targets {
|
||||||
lbls := make([]labels.Label, 0, len(tlset)+len(tg.Labels))
|
lb.Reset(labels.EmptyLabels())
|
||||||
|
|
||||||
for ln, lv := range tlset {
|
for ln, lv := range tlset {
|
||||||
lbls = append(lbls, labels.Label{Name: string(ln), Value: string(lv)})
|
lb.Set(string(ln), string(lv))
|
||||||
}
|
}
|
||||||
for ln, lv := range tg.Labels {
|
for ln, lv := range tg.Labels {
|
||||||
if _, ok := tlset[ln]; !ok {
|
if _, ok := tlset[ln]; !ok {
|
||||||
lbls = append(lbls, labels.Label{Name: string(ln), Value: string(lv)})
|
lb.Set(string(ln), string(lv))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lset := labels.New(lbls...)
|
lset, origLabels, err := PopulateLabels(lb, cfg, noDefaultPort)
|
||||||
|
|
||||||
lset, origLabels, err := PopulateLabels(lset, cfg, noDefaultPort)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
failures = append(failures, errors.Wrapf(err, "instance %d in group %s", i, tg))
|
failures = append(failures, errors.Wrapf(err, "instance %d in group %s", i, tg))
|
||||||
}
|
}
|
||||||
|
|
8
vendor/github.com/prometheus/prometheus/storage/remote/codec.go
generated
vendored
8
vendor/github.com/prometheus/prometheus/storage/remote/codec.go
generated
vendored
|
@ -559,7 +559,7 @@ func HistogramProtoToFloatHistogram(hp prompb.Histogram) *histogram.FloatHistogr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func spansProtoToSpans(s []*prompb.BucketSpan) []histogram.Span {
|
func spansProtoToSpans(s []prompb.BucketSpan) []histogram.Span {
|
||||||
spans := make([]histogram.Span, len(s))
|
spans := make([]histogram.Span, len(s))
|
||||||
for i := 0; i < len(s); i++ {
|
for i := 0; i < len(s); i++ {
|
||||||
spans[i] = histogram.Span{Offset: s[i].Offset, Length: s[i].Length}
|
spans[i] = histogram.Span{Offset: s[i].Offset, Length: s[i].Length}
|
||||||
|
@ -600,10 +600,10 @@ func FloatHistogramToHistogramProto(timestamp int64, fh *histogram.FloatHistogra
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func spansToSpansProto(s []histogram.Span) []*prompb.BucketSpan {
|
func spansToSpansProto(s []histogram.Span) []prompb.BucketSpan {
|
||||||
spans := make([]*prompb.BucketSpan, len(s))
|
spans := make([]prompb.BucketSpan, len(s))
|
||||||
for i := 0; i < len(s); i++ {
|
for i := 0; i < len(s); i++ {
|
||||||
spans[i] = &prompb.BucketSpan{Offset: s[i].Offset, Length: s[i].Length}
|
spans[i] = prompb.BucketSpan{Offset: s[i].Offset, Length: s[i].Length}
|
||||||
}
|
}
|
||||||
|
|
||||||
return spans
|
return spans
|
||||||
|
|
18
vendor/github.com/prometheus/prometheus/storage/remote/queue_manager.go
generated
vendored
18
vendor/github.com/prometheus/prometheus/storage/remote/queue_manager.go
generated
vendored
|
@ -454,7 +454,7 @@ func NewQueueManager(
|
||||||
logger = log.NewNopLogger()
|
logger = log.NewNopLogger()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Copy externalLabels into slice which we need for processExternalLabels.
|
// Copy externalLabels into a slice, which we need for processExternalLabels.
|
||||||
extLabelsSlice := make([]labels.Label, 0, externalLabels.Len())
|
extLabelsSlice := make([]labels.Label, 0, externalLabels.Len())
|
||||||
externalLabels.Range(func(l labels.Label) {
|
externalLabels.Range(func(l labels.Label) {
|
||||||
extLabelsSlice = append(extLabelsSlice, l)
|
extLabelsSlice = append(extLabelsSlice, l)
|
||||||
|
@ -499,7 +499,7 @@ func NewQueueManager(
|
||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
|
|
||||||
// AppendMetadata sends metadata the remote storage. Metadata is sent in batches, but is not parallelized.
|
// AppendMetadata sends metadata to the remote storage. Metadata is sent in batches, but is not parallelized.
|
||||||
func (t *QueueManager) AppendMetadata(ctx context.Context, metadata []scrape.MetricMetadata) {
|
func (t *QueueManager) AppendMetadata(ctx context.Context, metadata []scrape.MetricMetadata) {
|
||||||
mm := make([]prompb.MetricMetadata, 0, len(metadata))
|
mm := make([]prompb.MetricMetadata, 0, len(metadata))
|
||||||
for _, entry := range metadata {
|
for _, entry := range metadata {
|
||||||
|
@ -894,6 +894,10 @@ func (t *QueueManager) releaseLabels(ls labels.Labels) {
|
||||||
// processExternalLabels merges externalLabels into ls. If ls contains
|
// processExternalLabels merges externalLabels into ls. If ls contains
|
||||||
// a label in externalLabels, the value in ls wins.
|
// a label in externalLabels, the value in ls wins.
|
||||||
func processExternalLabels(ls labels.Labels, externalLabels []labels.Label) labels.Labels {
|
func processExternalLabels(ls labels.Labels, externalLabels []labels.Label) labels.Labels {
|
||||||
|
if len(externalLabels) == 0 {
|
||||||
|
return ls
|
||||||
|
}
|
||||||
|
|
||||||
b := labels.NewScratchBuilder(ls.Len() + len(externalLabels))
|
b := labels.NewScratchBuilder(ls.Len() + len(externalLabels))
|
||||||
j := 0
|
j := 0
|
||||||
ls.Range(func(l labels.Label) {
|
ls.Range(func(l labels.Label) {
|
||||||
|
@ -940,7 +944,7 @@ func (t *QueueManager) updateShardsLoop() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// shouldReshard returns if resharding should occur
|
// shouldReshard returns whether resharding should occur.
|
||||||
func (t *QueueManager) shouldReshard(desiredShards int) bool {
|
func (t *QueueManager) shouldReshard(desiredShards int) bool {
|
||||||
if desiredShards == t.numShards {
|
if desiredShards == t.numShards {
|
||||||
return false
|
return false
|
||||||
|
@ -1119,7 +1123,7 @@ func (s *shards) start(n int) {
|
||||||
// stop the shards; subsequent call to enqueue will return false.
|
// stop the shards; subsequent call to enqueue will return false.
|
||||||
func (s *shards) stop() {
|
func (s *shards) stop() {
|
||||||
// Attempt a clean shutdown, but only wait flushDeadline for all the shards
|
// Attempt a clean shutdown, but only wait flushDeadline for all the shards
|
||||||
// to cleanly exit. As we're doing RPCs, enqueue can block indefinitely.
|
// to cleanly exit. As we're doing RPCs, enqueue can block indefinitely.
|
||||||
// We must be able so call stop concurrently, hence we can only take the
|
// We must be able so call stop concurrently, hence we can only take the
|
||||||
// RLock here.
|
// RLock here.
|
||||||
s.mtx.RLock()
|
s.mtx.RLock()
|
||||||
|
@ -1467,7 +1471,7 @@ func (s *shards) sendSamples(ctx context.Context, samples []prompb.TimeSeries, s
|
||||||
s.qm.dataOut.incr(int64(len(samples)))
|
s.qm.dataOut.incr(int64(len(samples)))
|
||||||
s.qm.dataOutDuration.incr(int64(time.Since(begin)))
|
s.qm.dataOutDuration.incr(int64(time.Since(begin)))
|
||||||
s.qm.lastSendTimestamp.Store(time.Now().Unix())
|
s.qm.lastSendTimestamp.Store(time.Now().Unix())
|
||||||
// Pending samples/exemplars/histograms also should be subtracted as an error means
|
// Pending samples/exemplars/histograms also should be subtracted, as an error means
|
||||||
// they will not be retried.
|
// they will not be retried.
|
||||||
s.qm.metrics.pendingSamples.Sub(float64(sampleCount))
|
s.qm.metrics.pendingSamples.Sub(float64(sampleCount))
|
||||||
s.qm.metrics.pendingExemplars.Sub(float64(exemplarCount))
|
s.qm.metrics.pendingExemplars.Sub(float64(exemplarCount))
|
||||||
|
@ -1565,8 +1569,8 @@ func sendWriteRequestWithBackoff(ctx context.Context, cfg config.QueueConfig, l
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the error is unrecoverable, we should not retry.
|
// If the error is unrecoverable, we should not retry.
|
||||||
backoffErr, ok := err.(RecoverableError)
|
var backoffErr RecoverableError
|
||||||
if !ok {
|
if !errors.As(err, &backoffErr) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
7
vendor/github.com/prometheus/prometheus/tsdb/db.go
generated
vendored
7
vendor/github.com/prometheus/prometheus/tsdb/db.go
generated
vendored
|
@ -125,6 +125,10 @@ type Options struct {
|
||||||
// WALCompression will turn on Snappy compression for records on the WAL.
|
// WALCompression will turn on Snappy compression for records on the WAL.
|
||||||
WALCompression bool
|
WALCompression bool
|
||||||
|
|
||||||
|
// Maximum number of CPUs that can simultaneously processes WAL replay.
|
||||||
|
// If it is <=0, then GOMAXPROCS is used.
|
||||||
|
WALReplayConcurrency int
|
||||||
|
|
||||||
// StripeSize is the size in entries of the series hash map. Reducing the size will save memory but impact performance.
|
// StripeSize is the size in entries of the series hash map. Reducing the size will save memory but impact performance.
|
||||||
StripeSize int
|
StripeSize int
|
||||||
|
|
||||||
|
@ -782,6 +786,9 @@ func open(dir string, l log.Logger, r prometheus.Registerer, opts *Options, rngs
|
||||||
headOpts.EnableNativeHistograms.Store(opts.EnableNativeHistograms)
|
headOpts.EnableNativeHistograms.Store(opts.EnableNativeHistograms)
|
||||||
headOpts.OutOfOrderTimeWindow.Store(opts.OutOfOrderTimeWindow)
|
headOpts.OutOfOrderTimeWindow.Store(opts.OutOfOrderTimeWindow)
|
||||||
headOpts.OutOfOrderCapMax.Store(opts.OutOfOrderCapMax)
|
headOpts.OutOfOrderCapMax.Store(opts.OutOfOrderCapMax)
|
||||||
|
if opts.WALReplayConcurrency > 0 {
|
||||||
|
headOpts.WALReplayConcurrency = opts.WALReplayConcurrency
|
||||||
|
}
|
||||||
if opts.IsolationDisabled {
|
if opts.IsolationDisabled {
|
||||||
// We only override this flag if isolation is disabled at DB level. We use the default otherwise.
|
// We only override this flag if isolation is disabled at DB level. We use the default otherwise.
|
||||||
headOpts.IsolationDisabled = opts.IsolationDisabled
|
headOpts.IsolationDisabled = opts.IsolationDisabled
|
||||||
|
|
180
vendor/github.com/prometheus/prometheus/tsdb/head.go
generated
vendored
180
vendor/github.com/prometheus/prometheus/tsdb/head.go
generated
vendored
|
@ -17,8 +17,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"math"
|
"math"
|
||||||
"math/rand"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -59,6 +59,8 @@ var (
|
||||||
|
|
||||||
// defaultIsolationDisabled is true if isolation is disabled by default.
|
// defaultIsolationDisabled is true if isolation is disabled by default.
|
||||||
defaultIsolationDisabled = false
|
defaultIsolationDisabled = false
|
||||||
|
|
||||||
|
defaultWALReplayConcurrency = runtime.GOMAXPROCS(0)
|
||||||
)
|
)
|
||||||
|
|
||||||
// Head handles reads and writes of time series data within a time window.
|
// Head handles reads and writes of time series data within a time window.
|
||||||
|
@ -156,6 +158,11 @@ type HeadOptions struct {
|
||||||
EnableMemorySnapshotOnShutdown bool
|
EnableMemorySnapshotOnShutdown bool
|
||||||
|
|
||||||
IsolationDisabled bool
|
IsolationDisabled bool
|
||||||
|
|
||||||
|
// Maximum number of CPUs that can simultaneously processes WAL replay.
|
||||||
|
// The default value is GOMAXPROCS.
|
||||||
|
// If it is set to a negative value or zero, the default value is used.
|
||||||
|
WALReplayConcurrency int
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -173,6 +180,7 @@ func DefaultHeadOptions() *HeadOptions {
|
||||||
StripeSize: DefaultStripeSize,
|
StripeSize: DefaultStripeSize,
|
||||||
SeriesCallback: &noopSeriesLifecycleCallback{},
|
SeriesCallback: &noopSeriesLifecycleCallback{},
|
||||||
IsolationDisabled: defaultIsolationDisabled,
|
IsolationDisabled: defaultIsolationDisabled,
|
||||||
|
WALReplayConcurrency: defaultWALReplayConcurrency,
|
||||||
}
|
}
|
||||||
ho.OutOfOrderCapMax.Store(DefaultOutOfOrderCapMax)
|
ho.OutOfOrderCapMax.Store(DefaultOutOfOrderCapMax)
|
||||||
return ho
|
return ho
|
||||||
|
@ -248,6 +256,10 @@ func NewHead(r prometheus.Registerer, l log.Logger, wal, wbl *wlog.WL, opts *Hea
|
||||||
opts.ChunkPool = chunkenc.NewPool()
|
opts.ChunkPool = chunkenc.NewPool()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if opts.WALReplayConcurrency <= 0 {
|
||||||
|
opts.WALReplayConcurrency = defaultWALReplayConcurrency
|
||||||
|
}
|
||||||
|
|
||||||
h.chunkDiskMapper, err = chunks.NewChunkDiskMapper(
|
h.chunkDiskMapper, err = chunks.NewChunkDiskMapper(
|
||||||
r,
|
r,
|
||||||
mmappedChunksDir(opts.ChunkDirRoot),
|
mmappedChunksDir(opts.ChunkDirRoot),
|
||||||
|
@ -503,6 +515,17 @@ func newHeadMetrics(h *Head, r prometheus.Registerer) *headMetrics {
|
||||||
}, func() float64 {
|
}, func() float64 {
|
||||||
return float64(h.iso.lastAppendID())
|
return float64(h.iso.lastAppendID())
|
||||||
}),
|
}),
|
||||||
|
prometheus.NewGaugeFunc(prometheus.GaugeOpts{
|
||||||
|
Name: "prometheus_tsdb_head_chunks_storage_size_bytes",
|
||||||
|
Help: "Size of the chunks_head directory.",
|
||||||
|
}, func() float64 {
|
||||||
|
val, err := h.chunkDiskMapper.Size()
|
||||||
|
if err != nil {
|
||||||
|
level.Error(h.logger).Log("msg", "Failed to calculate size of \"chunks_head\" dir",
|
||||||
|
"err", err.Error())
|
||||||
|
}
|
||||||
|
return float64(val)
|
||||||
|
}),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
return m
|
return m
|
||||||
|
@ -569,20 +592,47 @@ func (h *Head) Init(minValidTime int64) error {
|
||||||
|
|
||||||
if h.opts.EnableMemorySnapshotOnShutdown {
|
if h.opts.EnableMemorySnapshotOnShutdown {
|
||||||
level.Info(h.logger).Log("msg", "Chunk snapshot is enabled, replaying from the snapshot")
|
level.Info(h.logger).Log("msg", "Chunk snapshot is enabled, replaying from the snapshot")
|
||||||
var err error
|
// If there are any WAL files, there should be at least one WAL file with an index that is current or newer
|
||||||
snapIdx, snapOffset, refSeries, err = h.loadChunkSnapshot()
|
// than the snapshot index. If the WAL index is behind the snapshot index somehow, the snapshot is assumed
|
||||||
if err != nil {
|
// to be outdated.
|
||||||
snapIdx, snapOffset = -1, 0
|
loadSnapshot := true
|
||||||
refSeries = make(map[chunks.HeadSeriesRef]*memSeries)
|
if h.wal != nil {
|
||||||
|
_, endAt, err := wlog.Segments(h.wal.Dir())
|
||||||
|
if err != nil {
|
||||||
|
return errors.Wrap(err, "finding WAL segments")
|
||||||
|
}
|
||||||
|
|
||||||
h.metrics.snapshotReplayErrorTotal.Inc()
|
_, idx, _, err := LastChunkSnapshot(h.opts.ChunkDirRoot)
|
||||||
level.Error(h.logger).Log("msg", "Failed to load chunk snapshot", "err", err)
|
if err != nil && err != record.ErrNotFound {
|
||||||
// We clear the partially loaded data to replay fresh from the WAL.
|
level.Error(h.logger).Log("msg", "Could not find last snapshot", "err", err)
|
||||||
if err := h.resetInMemoryState(); err != nil {
|
}
|
||||||
return err
|
|
||||||
|
if err == nil && endAt < idx {
|
||||||
|
loadSnapshot = false
|
||||||
|
level.Warn(h.logger).Log("msg", "Last WAL file is behind snapshot, removing snapshots")
|
||||||
|
if err := DeleteChunkSnapshots(h.opts.ChunkDirRoot, math.MaxInt, math.MaxInt); err != nil {
|
||||||
|
level.Error(h.logger).Log("msg", "Error while deleting snapshot directories", "err", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if loadSnapshot {
|
||||||
|
var err error
|
||||||
|
snapIdx, snapOffset, refSeries, err = h.loadChunkSnapshot()
|
||||||
|
if err == nil {
|
||||||
|
level.Info(h.logger).Log("msg", "Chunk snapshot loading time", "duration", time.Since(start).String())
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
snapIdx, snapOffset = -1, 0
|
||||||
|
refSeries = make(map[chunks.HeadSeriesRef]*memSeries)
|
||||||
|
|
||||||
|
h.metrics.snapshotReplayErrorTotal.Inc()
|
||||||
|
level.Error(h.logger).Log("msg", "Failed to load chunk snapshot", "err", err)
|
||||||
|
// We clear the partially loaded data to replay fresh from the WAL.
|
||||||
|
if err := h.resetInMemoryState(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
level.Info(h.logger).Log("msg", "Chunk snapshot loading time", "duration", time.Since(start).String())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mmapChunkReplayStart := time.Now()
|
mmapChunkReplayStart := time.Now()
|
||||||
|
@ -2037,109 +2087,3 @@ func (h *Head) updateWALReplayStatusRead(current int) {
|
||||||
|
|
||||||
h.stats.WALReplayStatus.Current = current
|
h.stats.WALReplayStatus.Current = current
|
||||||
}
|
}
|
||||||
|
|
||||||
func GenerateTestHistograms(n int) (r []*histogram.Histogram) {
|
|
||||||
for i := 0; i < n; i++ {
|
|
||||||
h := histogram.Histogram{
|
|
||||||
Count: 10 + uint64(i*8),
|
|
||||||
ZeroCount: 2 + uint64(i),
|
|
||||||
ZeroThreshold: 0.001,
|
|
||||||
Sum: 18.4 * float64(i+1),
|
|
||||||
Schema: 1,
|
|
||||||
PositiveSpans: []histogram.Span{
|
|
||||||
{Offset: 0, Length: 2},
|
|
||||||
{Offset: 1, Length: 2},
|
|
||||||
},
|
|
||||||
PositiveBuckets: []int64{int64(i + 1), 1, -1, 0},
|
|
||||||
NegativeSpans: []histogram.Span{
|
|
||||||
{Offset: 0, Length: 2},
|
|
||||||
{Offset: 1, Length: 2},
|
|
||||||
},
|
|
||||||
NegativeBuckets: []int64{int64(i + 1), 1, -1, 0},
|
|
||||||
}
|
|
||||||
if i > 0 {
|
|
||||||
h.CounterResetHint = histogram.NotCounterReset
|
|
||||||
}
|
|
||||||
r = append(r, &h)
|
|
||||||
}
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateTestGaugeHistograms(n int) (r []*histogram.Histogram) {
|
|
||||||
for x := 0; x < n; x++ {
|
|
||||||
i := rand.Intn(n)
|
|
||||||
r = append(r, &histogram.Histogram{
|
|
||||||
CounterResetHint: histogram.GaugeType,
|
|
||||||
Count: 10 + uint64(i*8),
|
|
||||||
ZeroCount: 2 + uint64(i),
|
|
||||||
ZeroThreshold: 0.001,
|
|
||||||
Sum: 18.4 * float64(i+1),
|
|
||||||
Schema: 1,
|
|
||||||
PositiveSpans: []histogram.Span{
|
|
||||||
{Offset: 0, Length: 2},
|
|
||||||
{Offset: 1, Length: 2},
|
|
||||||
},
|
|
||||||
PositiveBuckets: []int64{int64(i + 1), 1, -1, 0},
|
|
||||||
NegativeSpans: []histogram.Span{
|
|
||||||
{Offset: 0, Length: 2},
|
|
||||||
{Offset: 1, Length: 2},
|
|
||||||
},
|
|
||||||
NegativeBuckets: []int64{int64(i + 1), 1, -1, 0},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateTestFloatHistograms(n int) (r []*histogram.FloatHistogram) {
|
|
||||||
for i := 0; i < n; i++ {
|
|
||||||
h := histogram.FloatHistogram{
|
|
||||||
Count: 10 + float64(i*8),
|
|
||||||
ZeroCount: 2 + float64(i),
|
|
||||||
ZeroThreshold: 0.001,
|
|
||||||
Sum: 18.4 * float64(i+1),
|
|
||||||
Schema: 1,
|
|
||||||
PositiveSpans: []histogram.Span{
|
|
||||||
{Offset: 0, Length: 2},
|
|
||||||
{Offset: 1, Length: 2},
|
|
||||||
},
|
|
||||||
PositiveBuckets: []float64{float64(i + 1), float64(i + 2), float64(i + 1), float64(i + 1)},
|
|
||||||
NegativeSpans: []histogram.Span{
|
|
||||||
{Offset: 0, Length: 2},
|
|
||||||
{Offset: 1, Length: 2},
|
|
||||||
},
|
|
||||||
NegativeBuckets: []float64{float64(i + 1), float64(i + 2), float64(i + 1), float64(i + 1)},
|
|
||||||
}
|
|
||||||
if i > 0 {
|
|
||||||
h.CounterResetHint = histogram.NotCounterReset
|
|
||||||
}
|
|
||||||
r = append(r, &h)
|
|
||||||
}
|
|
||||||
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateTestGaugeFloatHistograms(n int) (r []*histogram.FloatHistogram) {
|
|
||||||
for x := 0; x < n; x++ {
|
|
||||||
i := rand.Intn(n)
|
|
||||||
r = append(r, &histogram.FloatHistogram{
|
|
||||||
CounterResetHint: histogram.GaugeType,
|
|
||||||
Count: 10 + float64(i*8),
|
|
||||||
ZeroCount: 2 + float64(i),
|
|
||||||
ZeroThreshold: 0.001,
|
|
||||||
Sum: 18.4 * float64(i+1),
|
|
||||||
Schema: 1,
|
|
||||||
PositiveSpans: []histogram.Span{
|
|
||||||
{Offset: 0, Length: 2},
|
|
||||||
{Offset: 1, Length: 2},
|
|
||||||
},
|
|
||||||
PositiveBuckets: []float64{float64(i + 1), float64(i + 2), float64(i + 1), float64(i + 1)},
|
|
||||||
NegativeSpans: []histogram.Span{
|
|
||||||
{Offset: 0, Length: 2},
|
|
||||||
{Offset: 1, Length: 2},
|
|
||||||
},
|
|
||||||
NegativeBuckets: []float64{float64(i + 1), float64(i + 2), float64(i + 1), float64(i + 1)},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
2
vendor/github.com/prometheus/prometheus/tsdb/head_append.go
generated
vendored
2
vendor/github.com/prometheus/prometheus/tsdb/head_append.go
generated
vendored
|
@ -367,7 +367,7 @@ func (a *headAppender) Append(ref storage.SeriesRef, lset labels.Labels, t int64
|
||||||
}
|
}
|
||||||
s.Unlock()
|
s.Unlock()
|
||||||
if delta > 0 {
|
if delta > 0 {
|
||||||
a.head.metrics.oooHistogram.Observe(float64(delta))
|
a.head.metrics.oooHistogram.Observe(float64(delta) / 1000)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
switch err {
|
switch err {
|
||||||
|
|
45
vendor/github.com/prometheus/prometheus/tsdb/head_read.go
generated
vendored
45
vendor/github.com/prometheus/prometheus/tsdb/head_read.go
generated
vendored
|
@ -304,12 +304,10 @@ func (h *headChunkReader) Chunk(meta chunks.Meta) (chunkenc.Chunk, error) {
|
||||||
s.Unlock()
|
s.Unlock()
|
||||||
|
|
||||||
return &safeChunk{
|
return &safeChunk{
|
||||||
Chunk: c.chunk,
|
Chunk: c.chunk,
|
||||||
s: s,
|
s: s,
|
||||||
cid: cid,
|
cid: cid,
|
||||||
isoState: h.isoState,
|
isoState: h.isoState,
|
||||||
chunkDiskMapper: h.head.chunkDiskMapper,
|
|
||||||
memChunkPool: &h.head.memChunkPool,
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -600,43 +598,24 @@ func (b boundedIterator) Seek(t int64) chunkenc.ValueType {
|
||||||
// safeChunk makes sure that the chunk can be accessed without a race condition
|
// safeChunk makes sure that the chunk can be accessed without a race condition
|
||||||
type safeChunk struct {
|
type safeChunk struct {
|
||||||
chunkenc.Chunk
|
chunkenc.Chunk
|
||||||
s *memSeries
|
s *memSeries
|
||||||
cid chunks.HeadChunkID
|
cid chunks.HeadChunkID
|
||||||
isoState *isolationState
|
isoState *isolationState
|
||||||
chunkDiskMapper *chunks.ChunkDiskMapper
|
|
||||||
memChunkPool *sync.Pool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *safeChunk) Iterator(reuseIter chunkenc.Iterator) chunkenc.Iterator {
|
func (c *safeChunk) Iterator(reuseIter chunkenc.Iterator) chunkenc.Iterator {
|
||||||
c.s.Lock()
|
c.s.Lock()
|
||||||
it := c.s.iterator(c.cid, c.isoState, c.chunkDiskMapper, c.memChunkPool, reuseIter)
|
it := c.s.iterator(c.cid, c.Chunk, c.isoState, reuseIter)
|
||||||
c.s.Unlock()
|
c.s.Unlock()
|
||||||
return it
|
return it
|
||||||
}
|
}
|
||||||
|
|
||||||
// iterator returns a chunk iterator for the requested chunkID, or a NopIterator if the requested ID is out of range.
|
// iterator returns a chunk iterator for the requested chunkID, or a NopIterator if the requested ID is out of range.
|
||||||
// It is unsafe to call this concurrently with s.append(...) without holding the series lock.
|
// It is unsafe to call this concurrently with s.append(...) without holding the series lock.
|
||||||
func (s *memSeries) iterator(id chunks.HeadChunkID, isoState *isolationState, chunkDiskMapper *chunks.ChunkDiskMapper, memChunkPool *sync.Pool, it chunkenc.Iterator) chunkenc.Iterator {
|
func (s *memSeries) iterator(id chunks.HeadChunkID, c chunkenc.Chunk, isoState *isolationState, it chunkenc.Iterator) chunkenc.Iterator {
|
||||||
c, garbageCollect, err := s.chunk(id, chunkDiskMapper, memChunkPool)
|
|
||||||
// TODO(fabxc): Work around! An error will be returns when a querier have retrieved a pointer to a
|
|
||||||
// series's chunk, which got then garbage collected before it got
|
|
||||||
// accessed. We must ensure to not garbage collect as long as any
|
|
||||||
// readers still hold a reference.
|
|
||||||
if err != nil {
|
|
||||||
return chunkenc.NewNopIterator()
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
if garbageCollect {
|
|
||||||
// Set this to nil so that Go GC can collect it after it has been used.
|
|
||||||
// This should be done always at the end.
|
|
||||||
c.chunk = nil
|
|
||||||
memChunkPool.Put(c)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
ix := int(id) - int(s.firstChunkID)
|
ix := int(id) - int(s.firstChunkID)
|
||||||
|
|
||||||
numSamples := c.chunk.NumSamples()
|
numSamples := c.NumSamples()
|
||||||
stopAfter := numSamples
|
stopAfter := numSamples
|
||||||
|
|
||||||
if isoState != nil && !isoState.IsolationDisabled() {
|
if isoState != nil && !isoState.IsolationDisabled() {
|
||||||
|
@ -681,9 +660,9 @@ func (s *memSeries) iterator(id chunks.HeadChunkID, isoState *isolationState, ch
|
||||||
return chunkenc.NewNopIterator()
|
return chunkenc.NewNopIterator()
|
||||||
}
|
}
|
||||||
if stopAfter == numSamples {
|
if stopAfter == numSamples {
|
||||||
return c.chunk.Iterator(it)
|
return c.Iterator(it)
|
||||||
}
|
}
|
||||||
return makeStopIterator(c.chunk, it, stopAfter)
|
return makeStopIterator(c, it, stopAfter)
|
||||||
}
|
}
|
||||||
|
|
||||||
// stopIterator wraps an Iterator, but only returns the first
|
// stopIterator wraps an Iterator, but only returns the first
|
||||||
|
|
79
vendor/github.com/prometheus/prometheus/tsdb/head_wal.go
generated
vendored
79
vendor/github.com/prometheus/prometheus/tsdb/head_wal.go
generated
vendored
|
@ -18,7 +18,6 @@ import (
|
||||||
"math"
|
"math"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
@ -65,13 +64,13 @@ func (h *Head) loadWAL(r *wlog.Reader, multiRef map[chunks.HeadSeriesRef]chunks.
|
||||||
// Start workers that each process samples for a partition of the series ID space.
|
// Start workers that each process samples for a partition of the series ID space.
|
||||||
var (
|
var (
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
n = runtime.GOMAXPROCS(0)
|
concurrency = h.opts.WALReplayConcurrency
|
||||||
processors = make([]walSubsetProcessor, n)
|
processors = make([]walSubsetProcessor, concurrency)
|
||||||
exemplarsInput chan record.RefExemplar
|
exemplarsInput chan record.RefExemplar
|
||||||
|
|
||||||
dec record.Decoder
|
dec record.Decoder
|
||||||
shards = make([][]record.RefSample, n)
|
shards = make([][]record.RefSample, concurrency)
|
||||||
histogramShards = make([][]histogramRecord, n)
|
histogramShards = make([][]histogramRecord, concurrency)
|
||||||
|
|
||||||
decoded = make(chan interface{}, 10)
|
decoded = make(chan interface{}, 10)
|
||||||
decodeErr, seriesCreationErr error
|
decodeErr, seriesCreationErr error
|
||||||
|
@ -116,7 +115,7 @@ func (h *Head) loadWAL(r *wlog.Reader, multiRef map[chunks.HeadSeriesRef]chunks.
|
||||||
// For CorruptionErr ensure to terminate all workers before exiting.
|
// For CorruptionErr ensure to terminate all workers before exiting.
|
||||||
_, ok := err.(*wlog.CorruptionErr)
|
_, ok := err.(*wlog.CorruptionErr)
|
||||||
if ok || seriesCreationErr != nil {
|
if ok || seriesCreationErr != nil {
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
processors[i].closeAndDrain()
|
processors[i].closeAndDrain()
|
||||||
}
|
}
|
||||||
close(exemplarsInput)
|
close(exemplarsInput)
|
||||||
|
@ -124,8 +123,8 @@ func (h *Head) loadWAL(r *wlog.Reader, multiRef map[chunks.HeadSeriesRef]chunks.
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
wg.Add(n)
|
wg.Add(concurrency)
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
processors[i].setup()
|
processors[i].setup()
|
||||||
|
|
||||||
go func(wp *walSubsetProcessor) {
|
go func(wp *walSubsetProcessor) {
|
||||||
|
@ -276,7 +275,7 @@ Outer:
|
||||||
multiRef[walSeries.Ref] = mSeries.ref
|
multiRef[walSeries.Ref] = mSeries.ref
|
||||||
}
|
}
|
||||||
|
|
||||||
idx := uint64(mSeries.ref) % uint64(n)
|
idx := uint64(mSeries.ref) % uint64(concurrency)
|
||||||
processors[idx].input <- walSubsetProcessorInputItem{walSeriesRef: walSeries.Ref, existingSeries: mSeries}
|
processors[idx].input <- walSubsetProcessorInputItem{walSeriesRef: walSeries.Ref, existingSeries: mSeries}
|
||||||
}
|
}
|
||||||
//nolint:staticcheck // Ignore SA6002 relax staticcheck verification.
|
//nolint:staticcheck // Ignore SA6002 relax staticcheck verification.
|
||||||
|
@ -293,7 +292,7 @@ Outer:
|
||||||
if len(samples) < m {
|
if len(samples) < m {
|
||||||
m = len(samples)
|
m = len(samples)
|
||||||
}
|
}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
if shards[i] == nil {
|
if shards[i] == nil {
|
||||||
shards[i] = processors[i].reuseBuf()
|
shards[i] = processors[i].reuseBuf()
|
||||||
}
|
}
|
||||||
|
@ -305,10 +304,10 @@ Outer:
|
||||||
if r, ok := multiRef[sam.Ref]; ok {
|
if r, ok := multiRef[sam.Ref]; ok {
|
||||||
sam.Ref = r
|
sam.Ref = r
|
||||||
}
|
}
|
||||||
mod := uint64(sam.Ref) % uint64(n)
|
mod := uint64(sam.Ref) % uint64(concurrency)
|
||||||
shards[mod] = append(shards[mod], sam)
|
shards[mod] = append(shards[mod], sam)
|
||||||
}
|
}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
if len(shards[i]) > 0 {
|
if len(shards[i]) > 0 {
|
||||||
processors[i].input <- walSubsetProcessorInputItem{samples: shards[i]}
|
processors[i].input <- walSubsetProcessorInputItem{samples: shards[i]}
|
||||||
shards[i] = nil
|
shards[i] = nil
|
||||||
|
@ -351,7 +350,7 @@ Outer:
|
||||||
if len(samples) < m {
|
if len(samples) < m {
|
||||||
m = len(samples)
|
m = len(samples)
|
||||||
}
|
}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
if histogramShards[i] == nil {
|
if histogramShards[i] == nil {
|
||||||
histogramShards[i] = processors[i].reuseHistogramBuf()
|
histogramShards[i] = processors[i].reuseHistogramBuf()
|
||||||
}
|
}
|
||||||
|
@ -363,10 +362,10 @@ Outer:
|
||||||
if r, ok := multiRef[sam.Ref]; ok {
|
if r, ok := multiRef[sam.Ref]; ok {
|
||||||
sam.Ref = r
|
sam.Ref = r
|
||||||
}
|
}
|
||||||
mod := uint64(sam.Ref) % uint64(n)
|
mod := uint64(sam.Ref) % uint64(concurrency)
|
||||||
histogramShards[mod] = append(histogramShards[mod], histogramRecord{ref: sam.Ref, t: sam.T, h: sam.H})
|
histogramShards[mod] = append(histogramShards[mod], histogramRecord{ref: sam.Ref, t: sam.T, h: sam.H})
|
||||||
}
|
}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
if len(histogramShards[i]) > 0 {
|
if len(histogramShards[i]) > 0 {
|
||||||
processors[i].input <- walSubsetProcessorInputItem{histogramSamples: histogramShards[i]}
|
processors[i].input <- walSubsetProcessorInputItem{histogramSamples: histogramShards[i]}
|
||||||
histogramShards[i] = nil
|
histogramShards[i] = nil
|
||||||
|
@ -388,7 +387,7 @@ Outer:
|
||||||
if len(samples) < m {
|
if len(samples) < m {
|
||||||
m = len(samples)
|
m = len(samples)
|
||||||
}
|
}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
if histogramShards[i] == nil {
|
if histogramShards[i] == nil {
|
||||||
histogramShards[i] = processors[i].reuseHistogramBuf()
|
histogramShards[i] = processors[i].reuseHistogramBuf()
|
||||||
}
|
}
|
||||||
|
@ -400,10 +399,10 @@ Outer:
|
||||||
if r, ok := multiRef[sam.Ref]; ok {
|
if r, ok := multiRef[sam.Ref]; ok {
|
||||||
sam.Ref = r
|
sam.Ref = r
|
||||||
}
|
}
|
||||||
mod := uint64(sam.Ref) % uint64(n)
|
mod := uint64(sam.Ref) % uint64(concurrency)
|
||||||
histogramShards[mod] = append(histogramShards[mod], histogramRecord{ref: sam.Ref, t: sam.T, fh: sam.FH})
|
histogramShards[mod] = append(histogramShards[mod], histogramRecord{ref: sam.Ref, t: sam.T, fh: sam.FH})
|
||||||
}
|
}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
if len(histogramShards[i]) > 0 {
|
if len(histogramShards[i]) > 0 {
|
||||||
processors[i].input <- walSubsetProcessorInputItem{histogramSamples: histogramShards[i]}
|
processors[i].input <- walSubsetProcessorInputItem{histogramSamples: histogramShards[i]}
|
||||||
histogramShards[i] = nil
|
histogramShards[i] = nil
|
||||||
|
@ -444,7 +443,7 @@ Outer:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Signal termination to each worker and wait for it to close its output channel.
|
// Signal termination to each worker and wait for it to close its output channel.
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
processors[i].closeAndDrain()
|
processors[i].closeAndDrain()
|
||||||
}
|
}
|
||||||
close(exemplarsInput)
|
close(exemplarsInput)
|
||||||
|
@ -498,6 +497,12 @@ func (h *Head) resetSeriesWithMMappedChunks(mSeries *memSeries, mmc, oooMmc []*m
|
||||||
h.metrics.chunksCreated.Add(float64(len(mmc) + len(oooMmc)))
|
h.metrics.chunksCreated.Add(float64(len(mmc) + len(oooMmc)))
|
||||||
h.metrics.chunksRemoved.Add(float64(len(mSeries.mmappedChunks)))
|
h.metrics.chunksRemoved.Add(float64(len(mSeries.mmappedChunks)))
|
||||||
h.metrics.chunks.Add(float64(len(mmc) + len(oooMmc) - len(mSeries.mmappedChunks)))
|
h.metrics.chunks.Add(float64(len(mmc) + len(oooMmc) - len(mSeries.mmappedChunks)))
|
||||||
|
|
||||||
|
if mSeries.ooo != nil {
|
||||||
|
h.metrics.chunksRemoved.Add(float64(len(mSeries.ooo.oooMmappedChunks)))
|
||||||
|
h.metrics.chunks.Sub(float64(len(mSeries.ooo.oooMmappedChunks)))
|
||||||
|
}
|
||||||
|
|
||||||
mSeries.mmappedChunks = mmc
|
mSeries.mmappedChunks = mmc
|
||||||
if len(oooMmc) == 0 {
|
if len(oooMmc) == 0 {
|
||||||
mSeries.ooo = nil
|
mSeries.ooo = nil
|
||||||
|
@ -679,12 +684,12 @@ func (h *Head) loadWBL(r *wlog.Reader, multiRef map[chunks.HeadSeriesRef]chunks.
|
||||||
lastSeq, lastOff := lastMmapRef.Unpack()
|
lastSeq, lastOff := lastMmapRef.Unpack()
|
||||||
// Start workers that each process samples for a partition of the series ID space.
|
// Start workers that each process samples for a partition of the series ID space.
|
||||||
var (
|
var (
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
n = runtime.GOMAXPROCS(0)
|
concurrency = h.opts.WALReplayConcurrency
|
||||||
processors = make([]wblSubsetProcessor, n)
|
processors = make([]wblSubsetProcessor, concurrency)
|
||||||
|
|
||||||
dec record.Decoder
|
dec record.Decoder
|
||||||
shards = make([][]record.RefSample, n)
|
shards = make([][]record.RefSample, concurrency)
|
||||||
|
|
||||||
decodedCh = make(chan interface{}, 10)
|
decodedCh = make(chan interface{}, 10)
|
||||||
decodeErr error
|
decodeErr error
|
||||||
|
@ -706,15 +711,15 @@ func (h *Head) loadWBL(r *wlog.Reader, multiRef map[chunks.HeadSeriesRef]chunks.
|
||||||
_, ok := err.(*wlog.CorruptionErr)
|
_, ok := err.(*wlog.CorruptionErr)
|
||||||
if ok {
|
if ok {
|
||||||
err = &errLoadWbl{err: err}
|
err = &errLoadWbl{err: err}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
processors[i].closeAndDrain()
|
processors[i].closeAndDrain()
|
||||||
}
|
}
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
wg.Add(n)
|
wg.Add(concurrency)
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
processors[i].setup()
|
processors[i].setup()
|
||||||
|
|
||||||
go func(wp *wblSubsetProcessor) {
|
go func(wp *wblSubsetProcessor) {
|
||||||
|
@ -773,17 +778,17 @@ func (h *Head) loadWBL(r *wlog.Reader, multiRef map[chunks.HeadSeriesRef]chunks.
|
||||||
if len(samples) < m {
|
if len(samples) < m {
|
||||||
m = len(samples)
|
m = len(samples)
|
||||||
}
|
}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
shards[i] = processors[i].reuseBuf()
|
shards[i] = processors[i].reuseBuf()
|
||||||
}
|
}
|
||||||
for _, sam := range samples[:m] {
|
for _, sam := range samples[:m] {
|
||||||
if r, ok := multiRef[sam.Ref]; ok {
|
if r, ok := multiRef[sam.Ref]; ok {
|
||||||
sam.Ref = r
|
sam.Ref = r
|
||||||
}
|
}
|
||||||
mod := uint64(sam.Ref) % uint64(n)
|
mod := uint64(sam.Ref) % uint64(concurrency)
|
||||||
shards[mod] = append(shards[mod], sam)
|
shards[mod] = append(shards[mod], sam)
|
||||||
}
|
}
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
processors[i].input <- shards[i]
|
processors[i].input <- shards[i]
|
||||||
}
|
}
|
||||||
samples = samples[m:]
|
samples = samples[m:]
|
||||||
|
@ -810,7 +815,7 @@ func (h *Head) loadWBL(r *wlog.Reader, multiRef map[chunks.HeadSeriesRef]chunks.
|
||||||
mmapMarkerUnknownRefs.Inc()
|
mmapMarkerUnknownRefs.Inc()
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
idx := uint64(ms.ref) % uint64(n)
|
idx := uint64(ms.ref) % uint64(concurrency)
|
||||||
// It is possible that some old sample is being processed in processWALSamples that
|
// It is possible that some old sample is being processed in processWALSamples that
|
||||||
// could cause race below. So we wait for the goroutine to empty input the buffer and finish
|
// could cause race below. So we wait for the goroutine to empty input the buffer and finish
|
||||||
// processing all old samples after emptying the buffer.
|
// processing all old samples after emptying the buffer.
|
||||||
|
@ -839,7 +844,7 @@ func (h *Head) loadWBL(r *wlog.Reader, multiRef map[chunks.HeadSeriesRef]chunks.
|
||||||
}
|
}
|
||||||
|
|
||||||
// Signal termination to each worker and wait for it to close its output channel.
|
// Signal termination to each worker and wait for it to close its output channel.
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
processors[i].closeAndDrain()
|
processors[i].closeAndDrain()
|
||||||
}
|
}
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
@ -1375,18 +1380,18 @@ func (h *Head) loadChunkSnapshot() (int, int, map[chunks.HeadSeriesRef]*memSerie
|
||||||
var (
|
var (
|
||||||
numSeries = 0
|
numSeries = 0
|
||||||
unknownRefs = int64(0)
|
unknownRefs = int64(0)
|
||||||
n = runtime.GOMAXPROCS(0)
|
concurrency = h.opts.WALReplayConcurrency
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
recordChan = make(chan chunkSnapshotRecord, 5*n)
|
recordChan = make(chan chunkSnapshotRecord, 5*concurrency)
|
||||||
shardedRefSeries = make([]map[chunks.HeadSeriesRef]*memSeries, n)
|
shardedRefSeries = make([]map[chunks.HeadSeriesRef]*memSeries, concurrency)
|
||||||
errChan = make(chan error, n)
|
errChan = make(chan error, concurrency)
|
||||||
refSeries map[chunks.HeadSeriesRef]*memSeries
|
refSeries map[chunks.HeadSeriesRef]*memSeries
|
||||||
exemplarBuf []record.RefExemplar
|
exemplarBuf []record.RefExemplar
|
||||||
dec record.Decoder
|
dec record.Decoder
|
||||||
)
|
)
|
||||||
|
|
||||||
wg.Add(n)
|
wg.Add(concurrency)
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < concurrency; i++ {
|
||||||
go func(idx int, rc <-chan chunkSnapshotRecord) {
|
go func(idx int, rc <-chan chunkSnapshotRecord) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
0
vendor/github.com/prometheus/prometheus/tsdb/test.txt
generated
vendored
Normal file
0
vendor/github.com/prometheus/prometheus/tsdb/test.txt
generated
vendored
Normal file
16
vendor/github.com/prometheus/prometheus/tsdb/tsdbutil/chunks.go
generated
vendored
16
vendor/github.com/prometheus/prometheus/tsdb/tsdbutil/chunks.go
generated
vendored
|
@ -72,6 +72,8 @@ func ChunkFromSamplesGeneric(s Samples) chunks.Meta {
|
||||||
ca.Append(s.Get(i).T(), s.Get(i).V())
|
ca.Append(s.Get(i).T(), s.Get(i).V())
|
||||||
case chunkenc.ValHistogram:
|
case chunkenc.ValHistogram:
|
||||||
ca.AppendHistogram(s.Get(i).T(), s.Get(i).H())
|
ca.AppendHistogram(s.Get(i).T(), s.Get(i).H())
|
||||||
|
case chunkenc.ValFloatHistogram:
|
||||||
|
ca.AppendFloatHistogram(s.Get(i).T(), s.Get(i).FH())
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("unknown sample type %s", sampleType.String()))
|
panic(fmt.Sprintf("unknown sample type %s", sampleType.String()))
|
||||||
}
|
}
|
||||||
|
@ -128,12 +130,18 @@ func PopulatedChunk(numSamples int, minTime int64) chunks.Meta {
|
||||||
|
|
||||||
// GenerateSamples starting at start and counting up numSamples.
|
// GenerateSamples starting at start and counting up numSamples.
|
||||||
func GenerateSamples(start, numSamples int) []Sample {
|
func GenerateSamples(start, numSamples int) []Sample {
|
||||||
samples := make([]Sample, 0, numSamples)
|
return generateSamples(start, numSamples, func(i int) Sample {
|
||||||
for i := start; i < start+numSamples; i++ {
|
return sample{
|
||||||
samples = append(samples, sample{
|
|
||||||
t: int64(i),
|
t: int64(i),
|
||||||
v: float64(i),
|
v: float64(i),
|
||||||
})
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func generateSamples(start, numSamples int, gen func(int) Sample) []Sample {
|
||||||
|
samples := make([]Sample, 0, numSamples)
|
||||||
|
for i := start; i < start+numSamples; i++ {
|
||||||
|
samples = append(samples, gen(i))
|
||||||
}
|
}
|
||||||
return samples
|
return samples
|
||||||
}
|
}
|
||||||
|
|
110
vendor/github.com/prometheus/prometheus/tsdb/tsdbutil/histogram.go
generated
vendored
Normal file
110
vendor/github.com/prometheus/prometheus/tsdb/tsdbutil/histogram.go
generated
vendored
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
// Copyright 2023 The Prometheus Authors
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package tsdbutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"math/rand"
|
||||||
|
|
||||||
|
"github.com/prometheus/prometheus/model/histogram"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GenerateTestHistograms(n int) (r []*histogram.Histogram) {
|
||||||
|
for i := 0; i < n; i++ {
|
||||||
|
h := GenerateTestHistogram(i)
|
||||||
|
if i > 0 {
|
||||||
|
h.CounterResetHint = histogram.NotCounterReset
|
||||||
|
}
|
||||||
|
r = append(r, h)
|
||||||
|
}
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateTestHistogram but it is up to the user to set any known counter reset hint.
|
||||||
|
func GenerateTestHistogram(i int) *histogram.Histogram {
|
||||||
|
return &histogram.Histogram{
|
||||||
|
Count: 10 + uint64(i*8),
|
||||||
|
ZeroCount: 2 + uint64(i),
|
||||||
|
ZeroThreshold: 0.001,
|
||||||
|
Sum: 18.4 * float64(i+1),
|
||||||
|
Schema: 1,
|
||||||
|
PositiveSpans: []histogram.Span{
|
||||||
|
{Offset: 0, Length: 2},
|
||||||
|
{Offset: 1, Length: 2},
|
||||||
|
},
|
||||||
|
PositiveBuckets: []int64{int64(i + 1), 1, -1, 0},
|
||||||
|
NegativeSpans: []histogram.Span{
|
||||||
|
{Offset: 0, Length: 2},
|
||||||
|
{Offset: 1, Length: 2},
|
||||||
|
},
|
||||||
|
NegativeBuckets: []int64{int64(i + 1), 1, -1, 0},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func GenerateTestGaugeHistograms(n int) (r []*histogram.Histogram) {
|
||||||
|
for x := 0; x < n; x++ {
|
||||||
|
r = append(r, GenerateTestGaugeHistogram(rand.Intn(n)))
|
||||||
|
}
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func GenerateTestGaugeHistogram(i int) *histogram.Histogram {
|
||||||
|
h := GenerateTestHistogram(i)
|
||||||
|
h.CounterResetHint = histogram.GaugeType
|
||||||
|
return h
|
||||||
|
}
|
||||||
|
|
||||||
|
func GenerateTestFloatHistograms(n int) (r []*histogram.FloatHistogram) {
|
||||||
|
for i := 0; i < n; i++ {
|
||||||
|
h := GenerateTestFloatHistogram(i)
|
||||||
|
if i > 0 {
|
||||||
|
h.CounterResetHint = histogram.NotCounterReset
|
||||||
|
}
|
||||||
|
r = append(r, h)
|
||||||
|
}
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
// GenerateTestFloatHistogram but it is up to the user to set any known counter reset hint.
|
||||||
|
func GenerateTestFloatHistogram(i int) *histogram.FloatHistogram {
|
||||||
|
return &histogram.FloatHistogram{
|
||||||
|
Count: 10 + float64(i*8),
|
||||||
|
ZeroCount: 2 + float64(i),
|
||||||
|
ZeroThreshold: 0.001,
|
||||||
|
Sum: 18.4 * float64(i+1),
|
||||||
|
Schema: 1,
|
||||||
|
PositiveSpans: []histogram.Span{
|
||||||
|
{Offset: 0, Length: 2},
|
||||||
|
{Offset: 1, Length: 2},
|
||||||
|
},
|
||||||
|
PositiveBuckets: []float64{float64(i + 1), float64(i + 2), float64(i + 1), float64(i + 1)},
|
||||||
|
NegativeSpans: []histogram.Span{
|
||||||
|
{Offset: 0, Length: 2},
|
||||||
|
{Offset: 1, Length: 2},
|
||||||
|
},
|
||||||
|
NegativeBuckets: []float64{float64(i + 1), float64(i + 2), float64(i + 1), float64(i + 1)},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func GenerateTestGaugeFloatHistograms(n int) (r []*histogram.FloatHistogram) {
|
||||||
|
for x := 0; x < n; x++ {
|
||||||
|
r = append(r, GenerateTestGaugeFloatHistogram(rand.Intn(n)))
|
||||||
|
}
|
||||||
|
return r
|
||||||
|
}
|
||||||
|
|
||||||
|
func GenerateTestGaugeFloatHistogram(i int) *histogram.FloatHistogram {
|
||||||
|
h := GenerateTestFloatHistogram(i)
|
||||||
|
h.CounterResetHint = histogram.GaugeType
|
||||||
|
return h
|
||||||
|
}
|
17
vendor/github.com/prometheus/prometheus/tsdb/wlog/wlog.go
generated
vendored
17
vendor/github.com/prometheus/prometheus/tsdb/wlog/wlog.go
generated
vendored
|
@ -199,9 +199,10 @@ type wlMetrics struct {
|
||||||
truncateTotal prometheus.Counter
|
truncateTotal prometheus.Counter
|
||||||
currentSegment prometheus.Gauge
|
currentSegment prometheus.Gauge
|
||||||
writesFailed prometheus.Counter
|
writesFailed prometheus.Counter
|
||||||
|
walFileSize prometheus.GaugeFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
func newWLMetrics(r prometheus.Registerer) *wlMetrics {
|
func newWLMetrics(w *WL, r prometheus.Registerer) *wlMetrics {
|
||||||
m := &wlMetrics{}
|
m := &wlMetrics{}
|
||||||
|
|
||||||
m.fsyncDuration = prometheus.NewSummary(prometheus.SummaryOpts{
|
m.fsyncDuration = prometheus.NewSummary(prometheus.SummaryOpts{
|
||||||
|
@ -233,6 +234,17 @@ func newWLMetrics(r prometheus.Registerer) *wlMetrics {
|
||||||
Name: "writes_failed_total",
|
Name: "writes_failed_total",
|
||||||
Help: "Total number of write log writes that failed.",
|
Help: "Total number of write log writes that failed.",
|
||||||
})
|
})
|
||||||
|
m.walFileSize = prometheus.NewGaugeFunc(prometheus.GaugeOpts{
|
||||||
|
Name: "storage_size_bytes",
|
||||||
|
Help: "Size of the write log directory.",
|
||||||
|
}, func() float64 {
|
||||||
|
val, err := w.Size()
|
||||||
|
if err != nil {
|
||||||
|
level.Error(w.logger).Log("msg", "Failed to calculate size of \"wal\" dir",
|
||||||
|
"err", err.Error())
|
||||||
|
}
|
||||||
|
return float64(val)
|
||||||
|
})
|
||||||
|
|
||||||
if r != nil {
|
if r != nil {
|
||||||
r.MustRegister(
|
r.MustRegister(
|
||||||
|
@ -243,6 +255,7 @@ func newWLMetrics(r prometheus.Registerer) *wlMetrics {
|
||||||
m.truncateTotal,
|
m.truncateTotal,
|
||||||
m.currentSegment,
|
m.currentSegment,
|
||||||
m.writesFailed,
|
m.writesFailed,
|
||||||
|
m.walFileSize,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -279,7 +292,7 @@ func NewSize(logger log.Logger, reg prometheus.Registerer, dir string, segmentSi
|
||||||
if filepath.Base(dir) == WblDirName {
|
if filepath.Base(dir) == WblDirName {
|
||||||
prefix = "prometheus_tsdb_out_of_order_wbl_"
|
prefix = "prometheus_tsdb_out_of_order_wbl_"
|
||||||
}
|
}
|
||||||
w.metrics = newWLMetrics(prometheus.WrapRegistererWithPrefix(prefix, reg))
|
w.metrics = newWLMetrics(w, prometheus.WrapRegistererWithPrefix(prefix, reg))
|
||||||
|
|
||||||
_, last, err := Segments(w.Dir())
|
_, last, err := Segments(w.Dir())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
2
vendor/google.golang.org/api/internal/version.go
generated
vendored
2
vendor/google.golang.org/api/internal/version.go
generated
vendored
|
@ -5,4 +5,4 @@
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
// Version is the current tagged release of the library.
|
// Version is the current tagged release of the library.
|
||||||
const Version = "0.113.0"
|
const Version = "0.114.0"
|
||||||
|
|
240
vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
generated
vendored
240
vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2018 Google LLC
|
// Copyright 2023 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -223,7 +223,9 @@ type ClientLibrarySettings struct {
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
// Version of the API to apply these settings to.
|
// Version of the API to apply these settings to. This is the full protobuf
|
||||||
|
// package for the API, ending in the version element.
|
||||||
|
// Examples: "google.cloud.speech.v1" and "google.spanner.admin.database.v1".
|
||||||
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
|
Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
|
||||||
// Launch stage of this version of the API.
|
// Launch stage of this version of the API.
|
||||||
LaunchStage api.LaunchStage `protobuf:"varint,2,opt,name=launch_stage,json=launchStage,proto3,enum=google.api.LaunchStage" json:"launch_stage,omitempty"`
|
LaunchStage api.LaunchStage `protobuf:"varint,2,opt,name=launch_stage,json=launchStage,proto3,enum=google.api.LaunchStage" json:"launch_stage,omitempty"`
|
||||||
|
@ -392,6 +394,9 @@ type Publishing struct {
|
||||||
// times in this list, then the last one wins. Settings from earlier
|
// times in this list, then the last one wins. Settings from earlier
|
||||||
// settings with the same version string are discarded.
|
// settings with the same version string are discarded.
|
||||||
LibrarySettings []*ClientLibrarySettings `protobuf:"bytes,109,rep,name=library_settings,json=librarySettings,proto3" json:"library_settings,omitempty"`
|
LibrarySettings []*ClientLibrarySettings `protobuf:"bytes,109,rep,name=library_settings,json=librarySettings,proto3" json:"library_settings,omitempty"`
|
||||||
|
// Optional link to proto reference documentation. Example:
|
||||||
|
// https://cloud.google.com/pubsub/lite/docs/reference/rpc
|
||||||
|
ProtoReferenceDocumentationUri string `protobuf:"bytes,110,opt,name=proto_reference_documentation_uri,json=protoReferenceDocumentationUri,proto3" json:"proto_reference_documentation_uri,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Publishing) Reset() {
|
func (x *Publishing) Reset() {
|
||||||
|
@ -489,6 +494,13 @@ func (x *Publishing) GetLibrarySettings() []*ClientLibrarySettings {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *Publishing) GetProtoReferenceDocumentationUri() string {
|
||||||
|
if x != nil {
|
||||||
|
return x.ProtoReferenceDocumentationUri
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
// Settings for Java client libraries.
|
// Settings for Java client libraries.
|
||||||
type JavaSettings struct {
|
type JavaSettings struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
|
@ -938,8 +950,8 @@ type MethodSettings struct {
|
||||||
// Example of a YAML configuration::
|
// Example of a YAML configuration::
|
||||||
//
|
//
|
||||||
// publishing:
|
// publishing:
|
||||||
// method_behavior:
|
// method_settings:
|
||||||
// - selector: CreateAdDomain
|
// - selector: google.cloud.speech.v2.Speech.BatchRecognize
|
||||||
// long_running:
|
// long_running:
|
||||||
// initial_poll_delay:
|
// initial_poll_delay:
|
||||||
// seconds: 60 # 1 minute
|
// seconds: 60 # 1 minute
|
||||||
|
@ -1252,7 +1264,7 @@ var file_google_api_client_proto_rawDesc = []byte{
|
||||||
0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6f, 0x53,
|
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x6f, 0x53,
|
||||||
0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0a, 0x67, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69,
|
0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0a, 0x67, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69,
|
||||||
0x6e, 0x67, 0x73, 0x22, 0xe0, 0x03, 0x0a, 0x0a, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x69,
|
0x6e, 0x67, 0x73, 0x22, 0xab, 0x04, 0x0a, 0x0a, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x69,
|
||||||
0x6e, 0x67, 0x12, 0x43, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x74,
|
0x6e, 0x67, 0x12, 0x43, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x74,
|
||||||
0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
|
0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
|
||||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53,
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53,
|
||||||
|
@ -1282,118 +1294,122 @@ var file_google_api_client_proto_rawDesc = []byte{
|
||||||
0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||||
0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x65, 0x74,
|
0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x65, 0x74,
|
||||||
0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x65,
|
0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x0f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x65,
|
||||||
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x9a, 0x02, 0x0a, 0x0c, 0x4a, 0x61, 0x76, 0x61, 0x53,
|
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x21, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f,
|
||||||
0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x69, 0x62, 0x72, 0x61,
|
0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
|
||||||
0x72, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x6e, 0x20, 0x01, 0x28,
|
||||||
0x52, 0x0e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
|
0x09, 0x52, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
|
||||||
0x12, 0x5f, 0x0a, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73,
|
0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72,
|
||||||
0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e,
|
0x69, 0x22, 0x9a, 0x02, 0x0a, 0x0c, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
|
||||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x61, 0x76, 0x61, 0x53,
|
0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x61,
|
||||||
0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43,
|
0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x69, 0x62,
|
||||||
0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11,
|
0x72, 0x61, 0x72, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x5f, 0x0a, 0x13, 0x73,
|
||||||
0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65,
|
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x61, 0x6d,
|
||||||
0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
|
0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||||
0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43,
|
0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4a, 0x61, 0x76, 0x61, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
|
||||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74,
|
0x67, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e,
|
||||||
0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x1a, 0x44, 0x0a,
|
0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x69,
|
||||||
0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d,
|
0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x06,
|
||||||
0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
|
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
|
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||||
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
|
0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
|
||||||
0x02, 0x38, 0x01, 0x22, 0x49, 0x0a, 0x0b, 0x43, 0x70, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
|
0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x1a, 0x44, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76,
|
||||||
0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
|
0x69, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x6e, 0x74,
|
||||||
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65,
|
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
|
||||||
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x49,
|
0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x49,
|
||||||
0x0a, 0x0b, 0x50, 0x68, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a,
|
0x0a, 0x0b, 0x43, 0x70, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a,
|
||||||
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
|
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e,
|
||||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
|
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
|
||||||
0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
|
0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
|
||||||
0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4c, 0x0a, 0x0e, 0x50, 0x79, 0x74,
|
0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x0b, 0x50, 0x68, 0x70,
|
||||||
0x68, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63,
|
0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
|
||||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f,
|
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c,
|
0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67,
|
||||||
0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52,
|
0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f,
|
||||||
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x53,
|
0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4c, 0x0a, 0x0e, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x53, 0x65,
|
||||||
0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||||
0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75,
|
0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61,
|
||||||
0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d,
|
0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
|
||||||
0x6d, 0x6f, 0x6e, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x6f, 0x74, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x74,
|
0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x0c, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e,
|
||||||
0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18,
|
0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61,
|
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
|
||||||
0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
|
0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65,
|
||||||
0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4c,
|
||||||
0x6e, 0x22, 0x4a, 0x0a, 0x0c, 0x52, 0x75, 0x62, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
|
0x0a, 0x0e, 0x44, 0x6f, 0x74, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
|
||||||
0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||||
0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43,
|
0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f,
|
||||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74,
|
0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74,
|
||||||
0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x48, 0x0a,
|
0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x0c,
|
||||||
0x0a, 0x47, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63,
|
0x52, 0x75, 0x62, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06,
|
||||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f,
|
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67,
|
||||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c,
|
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||||
0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52,
|
0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
|
||||||
0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x8e, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68,
|
0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x0a, 0x47, 0x6f, 0x53, 0x65,
|
||||||
0x6f, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65,
|
0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||||
0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||||
0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72,
|
0x61, 0x70, 0x69, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61,
|
||||||
0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67,
|
0x67, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
|
||||||
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64,
|
0x6f, 0x6e, 0x22, 0x8e, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x65, 0x74,
|
||||||
0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e,
|
0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f,
|
||||||
0x6e, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e,
|
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f,
|
||||||
0x67, 0x1a, 0x94, 0x02, 0x0a, 0x0b, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e,
|
0x72, 0x12, 0x49, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e,
|
||||||
0x67, 0x12, 0x47, 0x0a, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c,
|
0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||||
0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
|
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69,
|
||||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
|
0x6e, 0x67, 0x73, 0x2e, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52,
|
||||||
0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
|
0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x94, 0x02, 0x0a,
|
||||||
0x6c, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f,
|
0x0b, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x47, 0x0a, 0x12,
|
||||||
0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c,
|
0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c,
|
||||||
0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x70, 0x6f, 0x6c, 0x6c, 0x44,
|
0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||||
0x65, 0x6c, 0x61, 0x79, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12, 0x3f,
|
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
|
||||||
0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79,
|
0x69, 0x6f, 0x6e, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x6c,
|
||||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65,
|
||||||
|
0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x02,
|
||||||
|
0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x70, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d,
|
||||||
|
0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x0e, 0x6d, 0x61, 0x78,
|
||||||
|
0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
|
0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
|
0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6d, 0x61,
|
||||||
|
0x78, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x12, 0x74, 0x6f,
|
||||||
|
0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
|
||||||
|
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
|
||||||
0x6e, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x6c, 0x6c, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12,
|
0x6e, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x6f, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65,
|
||||||
0x47, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x74, 0x69,
|
0x6f, 0x75, 0x74, 0x2a, 0x79, 0x0a, 0x19, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62,
|
||||||
0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
|
0x72, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||||
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
|
0x12, 0x2b, 0x0a, 0x27, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41,
|
||||||
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x50, 0x6f, 0x6c,
|
0x52, 0x59, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
|
||||||
0x6c, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2a, 0x79, 0x0a, 0x19, 0x43, 0x6c, 0x69, 0x65,
|
0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a,
|
||||||
0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a,
|
0x05, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x53, 0x10,
|
||||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f,
|
0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x4f, 0x54, 0x4f, 0x53, 0x10, 0x03, 0x12, 0x0f, 0x0a,
|
||||||
0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41,
|
0x0b, 0x53, 0x54, 0x52, 0x45, 0x45, 0x54, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x10, 0x04, 0x2a, 0x67,
|
||||||
0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
|
0x0a, 0x18, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x44,
|
||||||
0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x10, 0x01, 0x12, 0x07, 0x0a,
|
0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x43, 0x4c,
|
||||||
0x03, 0x41, 0x44, 0x53, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x4f, 0x54, 0x4f, 0x53,
|
0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x5f, 0x44, 0x45, 0x53,
|
||||||
0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x45, 0x45, 0x54, 0x5f, 0x56, 0x49, 0x45,
|
0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
|
||||||
0x57, 0x10, 0x04, 0x2a, 0x67, 0x0a, 0x18, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x62,
|
0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42,
|
||||||
0x72, 0x61, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
|
0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x41,
|
||||||
0x2a, 0x0a, 0x26, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52,
|
0x4e, 0x41, 0x47, 0x45, 0x52, 0x10, 0x14, 0x3a, 0x4a, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x68, 0x6f,
|
||||||
0x59, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e,
|
0x64, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x2e, 0x67, 0x6f,
|
||||||
0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x47,
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65,
|
||||||
0x49, 0x54, 0x48, 0x55, 0x42, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x41, 0x43, 0x4b, 0x41,
|
0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9b, 0x08, 0x20, 0x03,
|
||||||
0x47, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x52, 0x10, 0x14, 0x3a, 0x4a, 0x0a, 0x10,
|
0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74,
|
||||||
0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
|
0x75, 0x72, 0x65, 0x3a, 0x43, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x68,
|
||||||
0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
0x6f, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||||
0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
|
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74,
|
||||||
0x18, 0x9b, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x53,
|
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66,
|
||||||
0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x43, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61,
|
0x61, 0x75, 0x6c, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x3a, 0x43, 0x0a, 0x0c, 0x6f, 0x61, 0x75, 0x74,
|
||||||
0x75, 0x6c, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||||
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69,
|
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69,
|
||||||
0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x99, 0x08, 0x20, 0x01, 0x28, 0x09,
|
0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9a, 0x08, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x3a, 0x43, 0x0a,
|
0x52, 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x42, 0x69, 0x0a,
|
||||||
0x0c, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x2e,
|
0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42,
|
||||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
|
0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41,
|
||||||
0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9a,
|
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72,
|
||||||
0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x61, 0x75, 0x74, 0x68, 0x53, 0x63, 0x6f, 0x70,
|
0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||||
0x65, 0x73, 0x42, 0x69, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
|
||||||
0x2e, 0x61, 0x70, 0x69, 0x42, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74,
|
0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||||
0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61,
|
0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
|
|
||||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61,
|
|
||||||
0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
|
|
||||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70,
|
|
||||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
20
vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go
generated
vendored
20
vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2018 Google LLC
|
// Copyright 2023 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.27.1
|
// protoc-gen-go v1.26.0
|
||||||
// protoc v3.12.2
|
// protoc v3.21.9
|
||||||
// source: google/api/field_behavior.proto
|
// source: google/api/field_behavior.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
@ -149,13 +149,13 @@ var (
|
||||||
//
|
//
|
||||||
// Examples:
|
// Examples:
|
||||||
//
|
//
|
||||||
// string name = 1 [(google.api.field_behavior) = REQUIRED];
|
// string name = 1 [(google.api.field_behavior) = REQUIRED];
|
||||||
// State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
// State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
||||||
// google.protobuf.Duration ttl = 1
|
// google.protobuf.Duration ttl = 1
|
||||||
// [(google.api.field_behavior) = INPUT_ONLY];
|
// [(google.api.field_behavior) = INPUT_ONLY];
|
||||||
// google.protobuf.Timestamp expire_time = 1
|
// google.protobuf.Timestamp expire_time = 1
|
||||||
// [(google.api.field_behavior) = OUTPUT_ONLY,
|
// [(google.api.field_behavior) = OUTPUT_ONLY,
|
||||||
// (google.api.field_behavior) = IMMUTABLE];
|
// (google.api.field_behavior) = IMMUTABLE];
|
||||||
//
|
//
|
||||||
// repeated google.api.FieldBehavior field_behavior = 1052;
|
// repeated google.api.FieldBehavior field_behavior = 1052;
|
||||||
E_FieldBehavior = &file_google_api_field_behavior_proto_extTypes[0]
|
E_FieldBehavior = &file_google_api_field_behavior_proto_extTypes[0]
|
||||||
|
|
17
vendor/google.golang.org/genproto/googleapis/api/annotations/http.pb.go
generated
vendored
17
vendor/google.golang.org/genproto/googleapis/api/annotations/http.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2015 Google LLC
|
// Copyright 2023 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.26.0
|
// protoc-gen-go v1.26.0
|
||||||
// protoc v3.12.2
|
// protoc v3.21.9
|
||||||
// source: google/api/http.proto
|
// source: google/api/http.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
@ -270,15 +270,18 @@ func (x *Http) GetFullyDecodeReservedExpansion() bool {
|
||||||
// 1. Leaf request fields (recursive expansion nested messages in the request
|
// 1. Leaf request fields (recursive expansion nested messages in the request
|
||||||
// message) are classified into three categories:
|
// message) are classified into three categories:
|
||||||
// - Fields referred by the path template. They are passed via the URL path.
|
// - Fields referred by the path template. They are passed via the URL path.
|
||||||
// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They are passed via the HTTP
|
// - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
|
||||||
|
// are passed via the HTTP
|
||||||
// request body.
|
// request body.
|
||||||
// - All other fields are passed via the URL query parameters, and the
|
// - All other fields are passed via the URL query parameters, and the
|
||||||
// parameter name is the field path in the request message. A repeated
|
// parameter name is the field path in the request message. A repeated
|
||||||
// field can be represented as multiple query parameters under the same
|
// field can be represented as multiple query parameters under the same
|
||||||
// name.
|
// name.
|
||||||
// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL query parameter, all fields
|
// 2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
|
||||||
|
// query parameter, all fields
|
||||||
// are passed via URL path and HTTP request body.
|
// are passed via URL path and HTTP request body.
|
||||||
// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
|
// 3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
|
||||||
|
// request body, all
|
||||||
// fields are passed via URL path and URL query parameters.
|
// fields are passed via URL path and URL query parameters.
|
||||||
//
|
//
|
||||||
// ### Path template syntax
|
// ### Path template syntax
|
||||||
|
@ -377,13 +380,15 @@ type HttpRule struct {
|
||||||
|
|
||||||
// Selects a method to which this rule applies.
|
// Selects a method to which this rule applies.
|
||||||
//
|
//
|
||||||
// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
|
// Refer to [selector][google.api.DocumentationRule.selector] for syntax
|
||||||
|
// details.
|
||||||
Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
|
Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
|
||||||
// Determines the URL pattern is matched by this rules. This pattern can be
|
// Determines the URL pattern is matched by this rules. This pattern can be
|
||||||
// used with any of the {get|put|post|delete|patch} methods. A custom method
|
// used with any of the {get|put|post|delete|patch} methods. A custom method
|
||||||
// can be defined using the 'custom' field.
|
// can be defined using the 'custom' field.
|
||||||
//
|
//
|
||||||
// Types that are assignable to Pattern:
|
// Types that are assignable to Pattern:
|
||||||
|
//
|
||||||
// *HttpRule_Get
|
// *HttpRule_Get
|
||||||
// *HttpRule_Put
|
// *HttpRule_Put
|
||||||
// *HttpRule_Post
|
// *HttpRule_Post
|
||||||
|
|
66
vendor/google.golang.org/genproto/googleapis/api/annotations/resource.pb.go
generated
vendored
66
vendor/google.golang.org/genproto/googleapis/api/annotations/resource.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2018 Google LLC
|
// Copyright 2023 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.26.0
|
// protoc-gen-go v1.26.0
|
||||||
// protoc v3.12.2
|
// protoc v3.21.9
|
||||||
// source: google/api/resource.proto
|
// source: google/api/resource.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
@ -218,14 +218,14 @@ type ResourceDescriptor struct {
|
||||||
// The path pattern must follow the syntax, which aligns with HTTP binding
|
// The path pattern must follow the syntax, which aligns with HTTP binding
|
||||||
// syntax:
|
// syntax:
|
||||||
//
|
//
|
||||||
// Template = Segment { "/" Segment } ;
|
// Template = Segment { "/" Segment } ;
|
||||||
// Segment = LITERAL | Variable ;
|
// Segment = LITERAL | Variable ;
|
||||||
// Variable = "{" LITERAL "}" ;
|
// Variable = "{" LITERAL "}" ;
|
||||||
//
|
//
|
||||||
// Examples:
|
// Examples:
|
||||||
//
|
//
|
||||||
// - "projects/{project}/topics/{topic}"
|
// - "projects/{project}/topics/{topic}"
|
||||||
// - "projects/{project}/knowledgeBases/{knowledge_base}"
|
// - "projects/{project}/knowledgeBases/{knowledge_base}"
|
||||||
//
|
//
|
||||||
// The components in braces correspond to the IDs for each resource in the
|
// The components in braces correspond to the IDs for each resource in the
|
||||||
// hierarchy. It is expected that, if multiple patterns are provided,
|
// hierarchy. It is expected that, if multiple patterns are provided,
|
||||||
|
@ -239,17 +239,17 @@ type ResourceDescriptor struct {
|
||||||
//
|
//
|
||||||
// Example:
|
// Example:
|
||||||
//
|
//
|
||||||
// // The InspectTemplate message originally only supported resource
|
// // The InspectTemplate message originally only supported resource
|
||||||
// // names with organization, and project was added later.
|
// // names with organization, and project was added later.
|
||||||
// message InspectTemplate {
|
// message InspectTemplate {
|
||||||
// option (google.api.resource) = {
|
// option (google.api.resource) = {
|
||||||
// type: "dlp.googleapis.com/InspectTemplate"
|
// type: "dlp.googleapis.com/InspectTemplate"
|
||||||
// pattern:
|
// pattern:
|
||||||
// "organizations/{organization}/inspectTemplates/{inspect_template}"
|
// "organizations/{organization}/inspectTemplates/{inspect_template}"
|
||||||
// pattern: "projects/{project}/inspectTemplates/{inspect_template}"
|
// pattern: "projects/{project}/inspectTemplates/{inspect_template}"
|
||||||
// history: ORIGINALLY_SINGLE_PATTERN
|
// history: ORIGINALLY_SINGLE_PATTERN
|
||||||
// };
|
// };
|
||||||
// }
|
// }
|
||||||
History ResourceDescriptor_History `protobuf:"varint,4,opt,name=history,proto3,enum=google.api.ResourceDescriptor_History" json:"history,omitempty"`
|
History ResourceDescriptor_History `protobuf:"varint,4,opt,name=history,proto3,enum=google.api.ResourceDescriptor_History" json:"history,omitempty"`
|
||||||
// The plural name used in the resource name and permission names, such as
|
// The plural name used in the resource name and permission names, such as
|
||||||
// 'projects' for the resource name of 'projects/{project}' and the permission
|
// 'projects' for the resource name of 'projects/{project}' and the permission
|
||||||
|
@ -362,22 +362,22 @@ type ResourceReference struct {
|
||||||
//
|
//
|
||||||
// Example:
|
// Example:
|
||||||
//
|
//
|
||||||
// message Subscription {
|
// message Subscription {
|
||||||
// string topic = 2 [(google.api.resource_reference) = {
|
// string topic = 2 [(google.api.resource_reference) = {
|
||||||
// type: "pubsub.googleapis.com/Topic"
|
// type: "pubsub.googleapis.com/Topic"
|
||||||
// }];
|
// }];
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// Occasionally, a field may reference an arbitrary resource. In this case,
|
// Occasionally, a field may reference an arbitrary resource. In this case,
|
||||||
// APIs use the special value * in their resource reference.
|
// APIs use the special value * in their resource reference.
|
||||||
//
|
//
|
||||||
// Example:
|
// Example:
|
||||||
//
|
//
|
||||||
// message GetIamPolicyRequest {
|
// message GetIamPolicyRequest {
|
||||||
// string resource = 2 [(google.api.resource_reference) = {
|
// string resource = 2 [(google.api.resource_reference) = {
|
||||||
// type: "*"
|
// type: "*"
|
||||||
// }];
|
// }];
|
||||||
// }
|
// }
|
||||||
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
|
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
|
||||||
// The resource type of a child collection that the annotated field
|
// The resource type of a child collection that the annotated field
|
||||||
// references. This is useful for annotating the `parent` field that
|
// references. This is useful for annotating the `parent` field that
|
||||||
|
@ -385,11 +385,11 @@ type ResourceReference struct {
|
||||||
//
|
//
|
||||||
// Example:
|
// Example:
|
||||||
//
|
//
|
||||||
// message ListLogEntriesRequest {
|
// message ListLogEntriesRequest {
|
||||||
// string parent = 1 [(google.api.resource_reference) = {
|
// string parent = 1 [(google.api.resource_reference) = {
|
||||||
// child_type: "logging.googleapis.com/LogEntry"
|
// child_type: "logging.googleapis.com/LogEntry"
|
||||||
// };
|
// };
|
||||||
// }
|
// }
|
||||||
ChildType string `protobuf:"bytes,2,opt,name=child_type,json=childType,proto3" json:"child_type,omitempty"`
|
ChildType string `protobuf:"bytes,2,opt,name=child_type,json=childType,proto3" json:"child_type,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
62
vendor/google.golang.org/genproto/googleapis/api/annotations/routing.pb.go
generated
vendored
62
vendor/google.golang.org/genproto/googleapis/api/annotations/routing.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2021 Google LLC
|
// Copyright 2023 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.26.0
|
// protoc-gen-go v1.26.0
|
||||||
// protoc v3.12.2
|
// protoc v3.21.9
|
||||||
// source: google/api/routing.proto
|
// source: google/api/routing.proto
|
||||||
|
|
||||||
package annotations
|
package annotations
|
||||||
|
@ -468,46 +468,46 @@ type RoutingParameter struct {
|
||||||
//
|
//
|
||||||
// Example:
|
// Example:
|
||||||
//
|
//
|
||||||
// -- This is a field in the request message
|
// -- This is a field in the request message
|
||||||
// | that the header value will be extracted from.
|
// | that the header value will be extracted from.
|
||||||
// |
|
// |
|
||||||
// | -- This is the key name in the
|
// | -- This is the key name in the
|
||||||
// | | routing header.
|
// | | routing header.
|
||||||
// V |
|
// V |
|
||||||
// field: "table_name" v
|
// field: "table_name" v
|
||||||
// path_template: "projects/*/{table_location=instances/*}/tables/*"
|
// path_template: "projects/*/{table_location=instances/*}/tables/*"
|
||||||
// ^ ^
|
// ^ ^
|
||||||
// | |
|
// | |
|
||||||
// In the {} brackets is the pattern that -- |
|
// In the {} brackets is the pattern that -- |
|
||||||
// specifies what to extract from the |
|
// specifies what to extract from the |
|
||||||
// field as a value to be sent. |
|
// field as a value to be sent. |
|
||||||
// |
|
// |
|
||||||
// The string in the field must match the whole pattern --
|
// The string in the field must match the whole pattern --
|
||||||
// before brackets, inside brackets, after brackets.
|
// before brackets, inside brackets, after brackets.
|
||||||
//
|
//
|
||||||
// When looking at this specific example, we can see that:
|
// When looking at this specific example, we can see that:
|
||||||
// - A key-value pair with the key `table_location`
|
// - A key-value pair with the key `table_location`
|
||||||
// and the value matching `instances/*` should be added
|
// and the value matching `instances/*` should be added
|
||||||
// to the x-goog-request-params routing header.
|
// to the x-goog-request-params routing header.
|
||||||
// - The value is extracted from the request message's `table_name` field
|
// - The value is extracted from the request message's `table_name` field
|
||||||
// if it matches the full pattern specified:
|
// if it matches the full pattern specified:
|
||||||
// `projects/*/instances/*/tables/*`.
|
// `projects/*/instances/*/tables/*`.
|
||||||
//
|
//
|
||||||
// **NB:** If the `path_template` field is not provided, the key name is
|
// **NB:** If the `path_template` field is not provided, the key name is
|
||||||
// equal to the field name, and the whole field should be sent as a value.
|
// equal to the field name, and the whole field should be sent as a value.
|
||||||
// This makes the pattern for the field and the value functionally equivalent
|
// This makes the pattern for the field and the value functionally equivalent
|
||||||
// to `**`, and the configuration
|
// to `**`, and the configuration
|
||||||
//
|
//
|
||||||
// {
|
// {
|
||||||
// field: "table_name"
|
// field: "table_name"
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// is a functionally equivalent shorthand to:
|
// is a functionally equivalent shorthand to:
|
||||||
//
|
//
|
||||||
// {
|
// {
|
||||||
// field: "table_name"
|
// field: "table_name"
|
||||||
// path_template: "{table_name=**}"
|
// path_template: "{table_name=**}"
|
||||||
// }
|
// }
|
||||||
//
|
//
|
||||||
// See Example 1 for more details.
|
// See Example 1 for more details.
|
||||||
PathTemplate string `protobuf:"bytes,2,opt,name=path_template,json=pathTemplate,proto3" json:"path_template,omitempty"`
|
PathTemplate string `protobuf:"bytes,2,opt,name=path_template,json=pathTemplate,proto3" json:"path_template,omitempty"`
|
||||||
|
|
4
vendor/google.golang.org/genproto/googleapis/api/launch_stage.pb.go
generated
vendored
4
vendor/google.golang.org/genproto/googleapis/api/launch_stage.pb.go
generated
vendored
|
@ -1,4 +1,4 @@
|
||||||
// Copyright 2015 Google LLC
|
// Copyright 2023 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.26.0
|
// protoc-gen-go v1.26.0
|
||||||
// protoc v3.18.1
|
// protoc v3.21.9
|
||||||
// source: google/api/launch_stage.proto
|
// source: google/api/launch_stage.proto
|
||||||
|
|
||||||
package api
|
package api
|
||||||
|
|
29
vendor/google.golang.org/grpc/CONTRIBUTING.md
generated
vendored
29
vendor/google.golang.org/grpc/CONTRIBUTING.md
generated
vendored
|
@ -20,6 +20,19 @@ How to get your contributions merged smoothly and quickly.
|
||||||
both author's & review's time is wasted. Create more PRs to address different
|
both author's & review's time is wasted. Create more PRs to address different
|
||||||
concerns and everyone will be happy.
|
concerns and everyone will be happy.
|
||||||
|
|
||||||
|
- For speculative changes, consider opening an issue and discussing it first. If
|
||||||
|
you are suggesting a behavioral or API change, consider starting with a [gRFC
|
||||||
|
proposal](https://github.com/grpc/proposal).
|
||||||
|
|
||||||
|
- If you are searching for features to work on, issues labeled [Status: Help
|
||||||
|
Wanted](https://github.com/grpc/grpc-go/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22Status%3A+Help+Wanted%22)
|
||||||
|
is a great place to start. These issues are well-documented and usually can be
|
||||||
|
resolved with a single pull request.
|
||||||
|
|
||||||
|
- If you are adding a new file, make sure it has the copyright message template
|
||||||
|
at the top as a comment. You can copy over the message from an existing file
|
||||||
|
and update the year.
|
||||||
|
|
||||||
- The grpc package should only depend on standard Go packages and a small number
|
- The grpc package should only depend on standard Go packages and a small number
|
||||||
of exceptions. If your contribution introduces new dependencies which are NOT
|
of exceptions. If your contribution introduces new dependencies which are NOT
|
||||||
in the [list](https://godoc.org/google.golang.org/grpc?imports), you need a
|
in the [list](https://godoc.org/google.golang.org/grpc?imports), you need a
|
||||||
|
@ -32,14 +45,18 @@ How to get your contributions merged smoothly and quickly.
|
||||||
- Provide a good **PR description** as a record of **what** change is being made
|
- Provide a good **PR description** as a record of **what** change is being made
|
||||||
and **why** it was made. Link to a github issue if it exists.
|
and **why** it was made. Link to a github issue if it exists.
|
||||||
|
|
||||||
- Don't fix code style and formatting unless you are already changing that line
|
- If you want to fix formatting or style, consider whether your changes are an
|
||||||
to address an issue. PRs with irrelevant changes won't be merged. If you do
|
obvious improvement or might be considered a personal preference. If a style
|
||||||
want to fix formatting or style, do that in a separate PR.
|
change is based on preference, it likely will not be accepted. If it corrects
|
||||||
|
widely agreed-upon anti-patterns, then please do create a PR and explain the
|
||||||
|
benefits of the change.
|
||||||
|
|
||||||
- Unless your PR is trivial, you should expect there will be reviewer comments
|
- Unless your PR is trivial, you should expect there will be reviewer comments
|
||||||
that you'll need to address before merging. We expect you to be reasonably
|
that you'll need to address before merging. We'll mark it as `Status: Requires
|
||||||
responsive to those comments, otherwise the PR will be closed after 2-3 weeks
|
Reporter Clarification` if we expect you to respond to these comments in a
|
||||||
of inactivity.
|
timely manner. If the PR remains inactive for 6 days, it will be marked as
|
||||||
|
`stale` and automatically close 7 days after that if we don't hear back from
|
||||||
|
you.
|
||||||
|
|
||||||
- Maintain **clean commit history** and use **meaningful commit messages**. PRs
|
- Maintain **clean commit history** and use **meaningful commit messages**. PRs
|
||||||
with messy commit history are difficult to review and won't be merged. Use
|
with messy commit history are difficult to review and won't be merged. Use
|
||||||
|
|
2
vendor/google.golang.org/grpc/balancer/grpclb/grpc_lb_v1/load_balancer.pb.go
generated
vendored
2
vendor/google.golang.org/grpc/balancer/grpclb/grpc_lb_v1/load_balancer.pb.go
generated
vendored
|
@ -20,7 +20,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.28.1
|
||||||
// protoc v3.14.0
|
// protoc v4.22.0
|
||||||
// source: grpc/lb/v1/load_balancer.proto
|
// source: grpc/lb/v1/load_balancer.proto
|
||||||
|
|
||||||
package grpc_lb_v1
|
package grpc_lb_v1
|
||||||
|
|
10
vendor/google.golang.org/grpc/balancer/grpclb/grpc_lb_v1/load_balancer_grpc.pb.go
generated
vendored
10
vendor/google.golang.org/grpc/balancer/grpclb/grpc_lb_v1/load_balancer_grpc.pb.go
generated
vendored
|
@ -19,8 +19,8 @@
|
||||||
|
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.2.0
|
// - protoc-gen-go-grpc v1.3.0
|
||||||
// - protoc v3.14.0
|
// - protoc v4.22.0
|
||||||
// source: grpc/lb/v1/load_balancer.proto
|
// source: grpc/lb/v1/load_balancer.proto
|
||||||
|
|
||||||
package grpc_lb_v1
|
package grpc_lb_v1
|
||||||
|
@ -37,6 +37,10 @@ import (
|
||||||
// Requires gRPC-Go v1.32.0 or later.
|
// Requires gRPC-Go v1.32.0 or later.
|
||||||
const _ = grpc.SupportPackageIsVersion7
|
const _ = grpc.SupportPackageIsVersion7
|
||||||
|
|
||||||
|
const (
|
||||||
|
LoadBalancer_BalanceLoad_FullMethodName = "/grpc.lb.v1.LoadBalancer/BalanceLoad"
|
||||||
|
)
|
||||||
|
|
||||||
// LoadBalancerClient is the client API for LoadBalancer service.
|
// LoadBalancerClient is the client API for LoadBalancer service.
|
||||||
//
|
//
|
||||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||||
|
@ -54,7 +58,7 @@ func NewLoadBalancerClient(cc grpc.ClientConnInterface) LoadBalancerClient {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *loadBalancerClient) BalanceLoad(ctx context.Context, opts ...grpc.CallOption) (LoadBalancer_BalanceLoadClient, error) {
|
func (c *loadBalancerClient) BalanceLoad(ctx context.Context, opts ...grpc.CallOption) (LoadBalancer_BalanceLoadClient, error) {
|
||||||
stream, err := c.cc.NewStream(ctx, &LoadBalancer_ServiceDesc.Streams[0], "/grpc.lb.v1.LoadBalancer/BalanceLoad", opts...)
|
stream, err := c.cc.NewStream(ctx, &LoadBalancer_ServiceDesc.Streams[0], LoadBalancer_BalanceLoad_FullMethodName, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
2
vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go
generated
vendored
2
vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go
generated
vendored
|
@ -19,7 +19,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.28.1
|
||||||
// protoc v3.14.0
|
// protoc v4.22.0
|
||||||
// source: grpc/binlog/v1/binarylog.proto
|
// source: grpc/binlog/v1/binarylog.proto
|
||||||
|
|
||||||
package grpc_binarylog_v1
|
package grpc_binarylog_v1
|
||||||
|
|
23
vendor/google.golang.org/grpc/clientconn.go
generated
vendored
23
vendor/google.golang.org/grpc/clientconn.go
generated
vendored
|
@ -146,8 +146,18 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *
|
||||||
cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{nil})
|
cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{nil})
|
||||||
cc.ctx, cc.cancel = context.WithCancel(context.Background())
|
cc.ctx, cc.cancel = context.WithCancel(context.Background())
|
||||||
|
|
||||||
for _, opt := range extraDialOptions {
|
disableGlobalOpts := false
|
||||||
opt.apply(&cc.dopts)
|
for _, opt := range opts {
|
||||||
|
if _, ok := opt.(*disableGlobalDialOptions); ok {
|
||||||
|
disableGlobalOpts = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !disableGlobalOpts {
|
||||||
|
for _, opt := range globalDialOptions {
|
||||||
|
opt.apply(&cc.dopts)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, opt := range opts {
|
for _, opt := range opts {
|
||||||
|
@ -1103,7 +1113,11 @@ func (ac *addrConn) updateConnectivityState(s connectivity.State, lastErr error)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
ac.state = s
|
ac.state = s
|
||||||
channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v", s)
|
if lastErr == nil {
|
||||||
|
channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v", s)
|
||||||
|
} else {
|
||||||
|
channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v, last error: %s", s, lastErr)
|
||||||
|
}
|
||||||
ac.cc.handleSubConnStateChange(ac.acbw, s, lastErr)
|
ac.cc.handleSubConnStateChange(ac.acbw, s, lastErr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1527,6 +1541,9 @@ func (c *channelzChannel) ChannelzMetric() *channelz.ChannelInternalMetric {
|
||||||
// referenced by users.
|
// referenced by users.
|
||||||
var ErrClientConnTimeout = errors.New("grpc: timed out when dialing")
|
var ErrClientConnTimeout = errors.New("grpc: timed out when dialing")
|
||||||
|
|
||||||
|
// getResolver finds the scheme in the cc's resolvers or the global registry.
|
||||||
|
// scheme should always be lowercase (typically by virtue of url.Parse()
|
||||||
|
// performing proper RFC3986 behavior).
|
||||||
func (cc *ClientConn) getResolver(scheme string) resolver.Builder {
|
func (cc *ClientConn) getResolver(scheme string) resolver.Builder {
|
||||||
for _, rb := range cc.dopts.resolvers {
|
for _, rb := range cc.dopts.resolvers {
|
||||||
if scheme == rb.Scheme() {
|
if scheme == rb.Scheme() {
|
||||||
|
|
51
vendor/google.golang.org/grpc/codes/code_string.go
generated
vendored
51
vendor/google.golang.org/grpc/codes/code_string.go
generated
vendored
|
@ -18,7 +18,15 @@
|
||||||
|
|
||||||
package codes
|
package codes
|
||||||
|
|
||||||
import "strconv"
|
import (
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"google.golang.org/grpc/internal"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
internal.CanonicalString = canonicalString
|
||||||
|
}
|
||||||
|
|
||||||
func (c Code) String() string {
|
func (c Code) String() string {
|
||||||
switch c {
|
switch c {
|
||||||
|
@ -60,3 +68,44 @@ func (c Code) String() string {
|
||||||
return "Code(" + strconv.FormatInt(int64(c), 10) + ")"
|
return "Code(" + strconv.FormatInt(int64(c), 10) + ")"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func canonicalString(c Code) string {
|
||||||
|
switch c {
|
||||||
|
case OK:
|
||||||
|
return "OK"
|
||||||
|
case Canceled:
|
||||||
|
return "CANCELLED"
|
||||||
|
case Unknown:
|
||||||
|
return "UNKNOWN"
|
||||||
|
case InvalidArgument:
|
||||||
|
return "INVALID_ARGUMENT"
|
||||||
|
case DeadlineExceeded:
|
||||||
|
return "DEADLINE_EXCEEDED"
|
||||||
|
case NotFound:
|
||||||
|
return "NOT_FOUND"
|
||||||
|
case AlreadyExists:
|
||||||
|
return "ALREADY_EXISTS"
|
||||||
|
case PermissionDenied:
|
||||||
|
return "PERMISSION_DENIED"
|
||||||
|
case ResourceExhausted:
|
||||||
|
return "RESOURCE_EXHAUSTED"
|
||||||
|
case FailedPrecondition:
|
||||||
|
return "FAILED_PRECONDITION"
|
||||||
|
case Aborted:
|
||||||
|
return "ABORTED"
|
||||||
|
case OutOfRange:
|
||||||
|
return "OUT_OF_RANGE"
|
||||||
|
case Unimplemented:
|
||||||
|
return "UNIMPLEMENTED"
|
||||||
|
case Internal:
|
||||||
|
return "INTERNAL"
|
||||||
|
case Unavailable:
|
||||||
|
return "UNAVAILABLE"
|
||||||
|
case DataLoss:
|
||||||
|
return "DATA_LOSS"
|
||||||
|
case Unauthenticated:
|
||||||
|
return "UNAUTHENTICATED"
|
||||||
|
default:
|
||||||
|
return "CODE(" + strconv.FormatInt(int64(c), 10) + ")"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
50
vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker.go
generated
vendored
50
vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker.go
generated
vendored
|
@ -138,7 +138,7 @@ func DefaultServerHandshakerOptions() *ServerHandshakerOptions {
|
||||||
// and server options (server options struct does not exist now. When
|
// and server options (server options struct does not exist now. When
|
||||||
// caller can provide endpoints, it should be created.
|
// caller can provide endpoints, it should be created.
|
||||||
|
|
||||||
// altsHandshaker is used to complete a ALTS handshaking between client and
|
// altsHandshaker is used to complete an ALTS handshake between client and
|
||||||
// server. This handshaker talks to the ALTS handshaker service in the metadata
|
// server. This handshaker talks to the ALTS handshaker service in the metadata
|
||||||
// server.
|
// server.
|
||||||
type altsHandshaker struct {
|
type altsHandshaker struct {
|
||||||
|
@ -146,6 +146,8 @@ type altsHandshaker struct {
|
||||||
stream altsgrpc.HandshakerService_DoHandshakeClient
|
stream altsgrpc.HandshakerService_DoHandshakeClient
|
||||||
// the connection to the peer.
|
// the connection to the peer.
|
||||||
conn net.Conn
|
conn net.Conn
|
||||||
|
// a virtual connection to the ALTS handshaker service.
|
||||||
|
clientConn *grpc.ClientConn
|
||||||
// client handshake options.
|
// client handshake options.
|
||||||
clientOpts *ClientHandshakerOptions
|
clientOpts *ClientHandshakerOptions
|
||||||
// server handshake options.
|
// server handshake options.
|
||||||
|
@ -154,39 +156,33 @@ type altsHandshaker struct {
|
||||||
side core.Side
|
side core.Side
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewClientHandshaker creates a ALTS handshaker for GCP which contains an RPC
|
// NewClientHandshaker creates a core.Handshaker that performs a client-side
|
||||||
// stub created using the passed conn and used to talk to the ALTS Handshaker
|
// ALTS handshake by acting as a proxy between the peer and the ALTS handshaker
|
||||||
// service in the metadata server.
|
// service in the metadata server.
|
||||||
func NewClientHandshaker(ctx context.Context, conn *grpc.ClientConn, c net.Conn, opts *ClientHandshakerOptions) (core.Handshaker, error) {
|
func NewClientHandshaker(ctx context.Context, conn *grpc.ClientConn, c net.Conn, opts *ClientHandshakerOptions) (core.Handshaker, error) {
|
||||||
stream, err := altsgrpc.NewHandshakerServiceClient(conn).DoHandshake(ctx)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &altsHandshaker{
|
return &altsHandshaker{
|
||||||
stream: stream,
|
stream: nil,
|
||||||
conn: c,
|
conn: c,
|
||||||
|
clientConn: conn,
|
||||||
clientOpts: opts,
|
clientOpts: opts,
|
||||||
side: core.ClientSide,
|
side: core.ClientSide,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewServerHandshaker creates a ALTS handshaker for GCP which contains an RPC
|
// NewServerHandshaker creates a core.Handshaker that performs a server-side
|
||||||
// stub created using the passed conn and used to talk to the ALTS Handshaker
|
// ALTS handshake by acting as a proxy between the peer and the ALTS handshaker
|
||||||
// service in the metadata server.
|
// service in the metadata server.
|
||||||
func NewServerHandshaker(ctx context.Context, conn *grpc.ClientConn, c net.Conn, opts *ServerHandshakerOptions) (core.Handshaker, error) {
|
func NewServerHandshaker(ctx context.Context, conn *grpc.ClientConn, c net.Conn, opts *ServerHandshakerOptions) (core.Handshaker, error) {
|
||||||
stream, err := altsgrpc.NewHandshakerServiceClient(conn).DoHandshake(ctx)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &altsHandshaker{
|
return &altsHandshaker{
|
||||||
stream: stream,
|
stream: nil,
|
||||||
conn: c,
|
conn: c,
|
||||||
|
clientConn: conn,
|
||||||
serverOpts: opts,
|
serverOpts: opts,
|
||||||
side: core.ServerSide,
|
side: core.ServerSide,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClientHandshake starts and completes a client ALTS handshaking for GCP. Once
|
// ClientHandshake starts and completes a client ALTS handshake for GCP. Once
|
||||||
// done, ClientHandshake returns a secure connection.
|
// done, ClientHandshake returns a secure connection.
|
||||||
func (h *altsHandshaker) ClientHandshake(ctx context.Context) (net.Conn, credentials.AuthInfo, error) {
|
func (h *altsHandshaker) ClientHandshake(ctx context.Context) (net.Conn, credentials.AuthInfo, error) {
|
||||||
if !acquire() {
|
if !acquire() {
|
||||||
|
@ -198,6 +194,16 @@ func (h *altsHandshaker) ClientHandshake(ctx context.Context) (net.Conn, credent
|
||||||
return nil, nil, errors.New("only handshakers created using NewClientHandshaker can perform a client handshaker")
|
return nil, nil, errors.New("only handshakers created using NewClientHandshaker can perform a client handshaker")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(matthewstevenson88): Change unit tests to use public APIs so
|
||||||
|
// that h.stream can unconditionally be set based on h.clientConn.
|
||||||
|
if h.stream == nil {
|
||||||
|
stream, err := altsgrpc.NewHandshakerServiceClient(h.clientConn).DoHandshake(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, fmt.Errorf("failed to establish stream to ALTS handshaker service: %v", err)
|
||||||
|
}
|
||||||
|
h.stream = stream
|
||||||
|
}
|
||||||
|
|
||||||
// Create target identities from service account list.
|
// Create target identities from service account list.
|
||||||
targetIdentities := make([]*altspb.Identity, 0, len(h.clientOpts.TargetServiceAccounts))
|
targetIdentities := make([]*altspb.Identity, 0, len(h.clientOpts.TargetServiceAccounts))
|
||||||
for _, account := range h.clientOpts.TargetServiceAccounts {
|
for _, account := range h.clientOpts.TargetServiceAccounts {
|
||||||
|
@ -229,7 +235,7 @@ func (h *altsHandshaker) ClientHandshake(ctx context.Context) (net.Conn, credent
|
||||||
return conn, authInfo, nil
|
return conn, authInfo, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServerHandshake starts and completes a server ALTS handshaking for GCP. Once
|
// ServerHandshake starts and completes a server ALTS handshake for GCP. Once
|
||||||
// done, ServerHandshake returns a secure connection.
|
// done, ServerHandshake returns a secure connection.
|
||||||
func (h *altsHandshaker) ServerHandshake(ctx context.Context) (net.Conn, credentials.AuthInfo, error) {
|
func (h *altsHandshaker) ServerHandshake(ctx context.Context) (net.Conn, credentials.AuthInfo, error) {
|
||||||
if !acquire() {
|
if !acquire() {
|
||||||
|
@ -241,6 +247,16 @@ func (h *altsHandshaker) ServerHandshake(ctx context.Context) (net.Conn, credent
|
||||||
return nil, nil, errors.New("only handshakers created using NewServerHandshaker can perform a server handshaker")
|
return nil, nil, errors.New("only handshakers created using NewServerHandshaker can perform a server handshaker")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(matthewstevenson88): Change unit tests to use public APIs so
|
||||||
|
// that h.stream can unconditionally be set based on h.clientConn.
|
||||||
|
if h.stream == nil {
|
||||||
|
stream, err := altsgrpc.NewHandshakerServiceClient(h.clientConn).DoHandshake(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, nil, fmt.Errorf("failed to establish stream to ALTS handshaker service: %v", err)
|
||||||
|
}
|
||||||
|
h.stream = stream
|
||||||
|
}
|
||||||
|
|
||||||
p := make([]byte, frameLimit)
|
p := make([]byte, frameLimit)
|
||||||
n, err := h.conn.Read(p)
|
n, err := h.conn.Read(p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.28.1
|
||||||
// protoc v3.14.0
|
// protoc v4.22.0
|
||||||
// source: grpc/gcp/altscontext.proto
|
// source: grpc/gcp/altscontext.proto
|
||||||
|
|
||||||
package grpc_gcp
|
package grpc_gcp
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.28.1
|
||||||
// protoc v3.14.0
|
// protoc v4.22.0
|
||||||
// source: grpc/gcp/handshaker.proto
|
// source: grpc/gcp/handshaker.proto
|
||||||
|
|
||||||
package grpc_gcp
|
package grpc_gcp
|
||||||
|
|
|
@ -17,8 +17,8 @@
|
||||||
|
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.2.0
|
// - protoc-gen-go-grpc v1.3.0
|
||||||
// - protoc v3.14.0
|
// - protoc v4.22.0
|
||||||
// source: grpc/gcp/handshaker.proto
|
// source: grpc/gcp/handshaker.proto
|
||||||
|
|
||||||
package grpc_gcp
|
package grpc_gcp
|
||||||
|
@ -35,6 +35,10 @@ import (
|
||||||
// Requires gRPC-Go v1.32.0 or later.
|
// Requires gRPC-Go v1.32.0 or later.
|
||||||
const _ = grpc.SupportPackageIsVersion7
|
const _ = grpc.SupportPackageIsVersion7
|
||||||
|
|
||||||
|
const (
|
||||||
|
HandshakerService_DoHandshake_FullMethodName = "/grpc.gcp.HandshakerService/DoHandshake"
|
||||||
|
)
|
||||||
|
|
||||||
// HandshakerServiceClient is the client API for HandshakerService service.
|
// HandshakerServiceClient is the client API for HandshakerService service.
|
||||||
//
|
//
|
||||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||||
|
@ -57,7 +61,7 @@ func NewHandshakerServiceClient(cc grpc.ClientConnInterface) HandshakerServiceCl
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *handshakerServiceClient) DoHandshake(ctx context.Context, opts ...grpc.CallOption) (HandshakerService_DoHandshakeClient, error) {
|
func (c *handshakerServiceClient) DoHandshake(ctx context.Context, opts ...grpc.CallOption) (HandshakerService_DoHandshakeClient, error) {
|
||||||
stream, err := c.cc.NewStream(ctx, &HandshakerService_ServiceDesc.Streams[0], "/grpc.gcp.HandshakerService/DoHandshake", opts...)
|
stream, err := c.cc.NewStream(ctx, &HandshakerService_ServiceDesc.Streams[0], HandshakerService_DoHandshake_FullMethodName, opts...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.28.1
|
// protoc-gen-go v1.28.1
|
||||||
// protoc v3.14.0
|
// protoc v4.22.0
|
||||||
// source: grpc/gcp/transport_security_common.proto
|
// source: grpc/gcp/transport_security_common.proto
|
||||||
|
|
||||||
package grpc_gcp
|
package grpc_gcp
|
||||||
|
|
17
vendor/google.golang.org/grpc/dialoptions.go
generated
vendored
17
vendor/google.golang.org/grpc/dialoptions.go
generated
vendored
|
@ -38,13 +38,14 @@ import (
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
internal.AddGlobalDialOptions = func(opt ...DialOption) {
|
internal.AddGlobalDialOptions = func(opt ...DialOption) {
|
||||||
extraDialOptions = append(extraDialOptions, opt...)
|
globalDialOptions = append(globalDialOptions, opt...)
|
||||||
}
|
}
|
||||||
internal.ClearGlobalDialOptions = func() {
|
internal.ClearGlobalDialOptions = func() {
|
||||||
extraDialOptions = nil
|
globalDialOptions = nil
|
||||||
}
|
}
|
||||||
internal.WithBinaryLogger = withBinaryLogger
|
internal.WithBinaryLogger = withBinaryLogger
|
||||||
internal.JoinDialOptions = newJoinDialOption
|
internal.JoinDialOptions = newJoinDialOption
|
||||||
|
internal.DisableGlobalDialOptions = newDisableGlobalDialOptions
|
||||||
}
|
}
|
||||||
|
|
||||||
// dialOptions configure a Dial call. dialOptions are set by the DialOption
|
// dialOptions configure a Dial call. dialOptions are set by the DialOption
|
||||||
|
@ -83,7 +84,7 @@ type DialOption interface {
|
||||||
apply(*dialOptions)
|
apply(*dialOptions)
|
||||||
}
|
}
|
||||||
|
|
||||||
var extraDialOptions []DialOption
|
var globalDialOptions []DialOption
|
||||||
|
|
||||||
// EmptyDialOption does not alter the dial configuration. It can be embedded in
|
// EmptyDialOption does not alter the dial configuration. It can be embedded in
|
||||||
// another structure to build custom dial options.
|
// another structure to build custom dial options.
|
||||||
|
@ -96,6 +97,16 @@ type EmptyDialOption struct{}
|
||||||
|
|
||||||
func (EmptyDialOption) apply(*dialOptions) {}
|
func (EmptyDialOption) apply(*dialOptions) {}
|
||||||
|
|
||||||
|
type disableGlobalDialOptions struct{}
|
||||||
|
|
||||||
|
func (disableGlobalDialOptions) apply(*dialOptions) {}
|
||||||
|
|
||||||
|
// newDisableGlobalDialOptions returns a DialOption that prevents the ClientConn
|
||||||
|
// from applying the global DialOptions (set via AddGlobalDialOptions).
|
||||||
|
func newDisableGlobalDialOptions() DialOption {
|
||||||
|
return &disableGlobalDialOptions{}
|
||||||
|
}
|
||||||
|
|
||||||
// funcDialOption wraps a function that modifies dialOptions into an
|
// funcDialOption wraps a function that modifies dialOptions into an
|
||||||
// implementation of the DialOption interface.
|
// implementation of the DialOption interface.
|
||||||
type funcDialOption struct {
|
type funcDialOption struct {
|
||||||
|
|
8
vendor/google.golang.org/grpc/internal/binarylog/binarylog.go
generated
vendored
8
vendor/google.golang.org/grpc/internal/binarylog/binarylog.go
generated
vendored
|
@ -28,8 +28,10 @@ import (
|
||||||
"google.golang.org/grpc/internal/grpcutil"
|
"google.golang.org/grpc/internal/grpcutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Logger is the global binary logger. It can be used to get binary logger for
|
var grpclogLogger = grpclog.Component("binarylog")
|
||||||
// each method.
|
|
||||||
|
// Logger specifies MethodLoggers for method names with a Log call that
|
||||||
|
// takes a context.
|
||||||
type Logger interface {
|
type Logger interface {
|
||||||
GetMethodLogger(methodName string) MethodLogger
|
GetMethodLogger(methodName string) MethodLogger
|
||||||
}
|
}
|
||||||
|
@ -40,8 +42,6 @@ type Logger interface {
|
||||||
// It is used to get a MethodLogger for each individual method.
|
// It is used to get a MethodLogger for each individual method.
|
||||||
var binLogger Logger
|
var binLogger Logger
|
||||||
|
|
||||||
var grpclogLogger = grpclog.Component("binarylog")
|
|
||||||
|
|
||||||
// SetLogger sets the binary logger.
|
// SetLogger sets the binary logger.
|
||||||
//
|
//
|
||||||
// Only call this at init time.
|
// Only call this at init time.
|
||||||
|
|
5
vendor/google.golang.org/grpc/internal/binarylog/method_logger.go
generated
vendored
5
vendor/google.golang.org/grpc/internal/binarylog/method_logger.go
generated
vendored
|
@ -19,6 +19,7 @@
|
||||||
package binarylog
|
package binarylog
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"net"
|
"net"
|
||||||
"strings"
|
"strings"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
@ -49,7 +50,7 @@ var idGen callIDGenerator
|
||||||
|
|
||||||
// MethodLogger is the sub-logger for each method.
|
// MethodLogger is the sub-logger for each method.
|
||||||
type MethodLogger interface {
|
type MethodLogger interface {
|
||||||
Log(LogEntryConfig)
|
Log(context.Context, LogEntryConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TruncatingMethodLogger is a method logger that truncates headers and messages
|
// TruncatingMethodLogger is a method logger that truncates headers and messages
|
||||||
|
@ -98,7 +99,7 @@ func (ml *TruncatingMethodLogger) Build(c LogEntryConfig) *binlogpb.GrpcLogEntry
|
||||||
}
|
}
|
||||||
|
|
||||||
// Log creates a proto binary log entry, and logs it to the sink.
|
// Log creates a proto binary log entry, and logs it to the sink.
|
||||||
func (ml *TruncatingMethodLogger) Log(c LogEntryConfig) {
|
func (ml *TruncatingMethodLogger) Log(ctx context.Context, c LogEntryConfig) {
|
||||||
ml.sink.Write(ml.Build(c))
|
ml.sink.Write(ml.Build(c))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go
generated
vendored
12
vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go
generated
vendored
|
@ -63,6 +63,9 @@ func (pl *PrefixLogger) Errorf(format string, args ...interface{}) {
|
||||||
|
|
||||||
// Debugf does info logging at verbose level 2.
|
// Debugf does info logging at verbose level 2.
|
||||||
func (pl *PrefixLogger) Debugf(format string, args ...interface{}) {
|
func (pl *PrefixLogger) Debugf(format string, args ...interface{}) {
|
||||||
|
// TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe
|
||||||
|
// rewrite PrefixLogger a little to ensure that we don't use the global
|
||||||
|
// `Logger` here, and instead use the `logger` field.
|
||||||
if !Logger.V(2) {
|
if !Logger.V(2) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -73,6 +76,15 @@ func (pl *PrefixLogger) Debugf(format string, args ...interface{}) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
InfoDepth(1, fmt.Sprintf(format, args...))
|
InfoDepth(1, fmt.Sprintf(format, args...))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// V reports whether verbosity level l is at least the requested verbose level.
|
||||||
|
func (pl *PrefixLogger) V(l int) bool {
|
||||||
|
// TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe
|
||||||
|
// rewrite PrefixLogger a little to ensure that we don't use the global
|
||||||
|
// `Logger` here, and instead use the `logger` field.
|
||||||
|
return Logger.V(l)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewPrefixLogger creates a prefix logger with the given prefix.
|
// NewPrefixLogger creates a prefix logger with the given prefix.
|
||||||
|
|
10
vendor/google.golang.org/grpc/internal/internal.go
generated
vendored
10
vendor/google.golang.org/grpc/internal/internal.go
generated
vendored
|
@ -58,6 +58,9 @@ var (
|
||||||
// gRPC server. An xDS-enabled server needs to know what type of credentials
|
// gRPC server. An xDS-enabled server needs to know what type of credentials
|
||||||
// is configured on the underlying gRPC server. This is set by server.go.
|
// is configured on the underlying gRPC server. This is set by server.go.
|
||||||
GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials
|
GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials
|
||||||
|
// CanonicalString returns the canonical string of the code defined here:
|
||||||
|
// https://github.com/grpc/grpc/blob/master/doc/statuscodes.md.
|
||||||
|
CanonicalString interface{} // func (codes.Code) string
|
||||||
// DrainServerTransports initiates a graceful close of existing connections
|
// DrainServerTransports initiates a graceful close of existing connections
|
||||||
// on a gRPC server accepted on the provided listener address. An
|
// on a gRPC server accepted on the provided listener address. An
|
||||||
// xDS-enabled server invokes this method on a grpc.Server when a particular
|
// xDS-enabled server invokes this method on a grpc.Server when a particular
|
||||||
|
@ -74,6 +77,10 @@ var (
|
||||||
// globally for newly created client channels. The priority will be: 1.
|
// globally for newly created client channels. The priority will be: 1.
|
||||||
// user-provided; 2. this method; 3. default values.
|
// user-provided; 2. this method; 3. default values.
|
||||||
AddGlobalDialOptions interface{} // func(opt ...DialOption)
|
AddGlobalDialOptions interface{} // func(opt ...DialOption)
|
||||||
|
// DisableGlobalDialOptions returns a DialOption that prevents the
|
||||||
|
// ClientConn from applying the global DialOptions (set via
|
||||||
|
// AddGlobalDialOptions).
|
||||||
|
DisableGlobalDialOptions interface{} // func() grpc.DialOption
|
||||||
// ClearGlobalDialOptions clears the array of extra DialOption. This
|
// ClearGlobalDialOptions clears the array of extra DialOption. This
|
||||||
// method is useful in testing and benchmarking.
|
// method is useful in testing and benchmarking.
|
||||||
ClearGlobalDialOptions func()
|
ClearGlobalDialOptions func()
|
||||||
|
@ -130,6 +137,9 @@ var (
|
||||||
//
|
//
|
||||||
// TODO: Remove this function once the RBAC env var is removed.
|
// TODO: Remove this function once the RBAC env var is removed.
|
||||||
UnregisterRBACHTTPFilterForTesting func()
|
UnregisterRBACHTTPFilterForTesting func()
|
||||||
|
|
||||||
|
// ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY.
|
||||||
|
ORCAAllowAnyMinReportingInterval interface{} // func(so *orca.ServiceOptions)
|
||||||
)
|
)
|
||||||
|
|
||||||
// HealthChecker defines the signature of the client-side LB channel health checking function.
|
// HealthChecker defines the signature of the client-side LB channel health checking function.
|
||||||
|
|
62
vendor/google.golang.org/grpc/internal/metadata/metadata.go
generated
vendored
62
vendor/google.golang.org/grpc/internal/metadata/metadata.go
generated
vendored
|
@ -76,33 +76,11 @@ func Set(addr resolver.Address, md metadata.MD) resolver.Address {
|
||||||
return addr
|
return addr
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate returns an error if the input md contains invalid keys or values.
|
// Validate validates every pair in md with ValidatePair.
|
||||||
//
|
|
||||||
// If the header is not a pseudo-header, the following items are checked:
|
|
||||||
// - header names must contain one or more characters from this set [0-9 a-z _ - .].
|
|
||||||
// - if the header-name ends with a "-bin" suffix, no validation of the header value is performed.
|
|
||||||
// - otherwise, the header value must contain one or more characters from the set [%x20-%x7E].
|
|
||||||
func Validate(md metadata.MD) error {
|
func Validate(md metadata.MD) error {
|
||||||
for k, vals := range md {
|
for k, vals := range md {
|
||||||
// pseudo-header will be ignored
|
if err := ValidatePair(k, vals...); err != nil {
|
||||||
if k[0] == ':' {
|
return err
|
||||||
continue
|
|
||||||
}
|
|
||||||
// check key, for i that saving a conversion if not using for range
|
|
||||||
for i := 0; i < len(k); i++ {
|
|
||||||
r := k[i]
|
|
||||||
if !(r >= 'a' && r <= 'z') && !(r >= '0' && r <= '9') && r != '.' && r != '-' && r != '_' {
|
|
||||||
return fmt.Errorf("header key %q contains illegal characters not in [0-9a-z-_.]", k)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if strings.HasSuffix(k, "-bin") {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
// check value
|
|
||||||
for _, val := range vals {
|
|
||||||
if hasNotPrintable(val) {
|
|
||||||
return fmt.Errorf("header key %q contains value with non-printable ASCII characters", k)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -118,3 +96,37 @@ func hasNotPrintable(msg string) bool {
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ValidatePair validate a key-value pair with the following rules (the pseudo-header will be skipped) :
|
||||||
|
//
|
||||||
|
// - key must contain one or more characters.
|
||||||
|
// - the characters in the key must be contained in [0-9 a-z _ - .].
|
||||||
|
// - if the key ends with a "-bin" suffix, no validation of the corresponding value is performed.
|
||||||
|
// - the characters in the every value must be printable (in [%x20-%x7E]).
|
||||||
|
func ValidatePair(key string, vals ...string) error {
|
||||||
|
// key should not be empty
|
||||||
|
if key == "" {
|
||||||
|
return fmt.Errorf("there is an empty key in the header")
|
||||||
|
}
|
||||||
|
// pseudo-header will be ignored
|
||||||
|
if key[0] == ':' {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// check key, for i that saving a conversion if not using for range
|
||||||
|
for i := 0; i < len(key); i++ {
|
||||||
|
r := key[i]
|
||||||
|
if !(r >= 'a' && r <= 'z') && !(r >= '0' && r <= '9') && r != '.' && r != '-' && r != '_' {
|
||||||
|
return fmt.Errorf("header key %q contains illegal characters not in [0-9a-z-_.]", key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if strings.HasSuffix(key, "-bin") {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
// check value
|
||||||
|
for _, val := range vals {
|
||||||
|
if hasNotPrintable(val) {
|
||||||
|
return fmt.Errorf("header key %q contains value with non-printable ASCII characters", key)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
82
vendor/google.golang.org/grpc/internal/transport/controlbuf.go
generated
vendored
82
vendor/google.golang.org/grpc/internal/transport/controlbuf.go
generated
vendored
|
@ -22,6 +22,7 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strconv"
|
"strconv"
|
||||||
"sync"
|
"sync"
|
||||||
|
@ -486,12 +487,13 @@ type loopyWriter struct {
|
||||||
hEnc *hpack.Encoder // HPACK encoder.
|
hEnc *hpack.Encoder // HPACK encoder.
|
||||||
bdpEst *bdpEstimator
|
bdpEst *bdpEstimator
|
||||||
draining bool
|
draining bool
|
||||||
|
conn net.Conn
|
||||||
|
|
||||||
// Side-specific handlers
|
// Side-specific handlers
|
||||||
ssGoAwayHandler func(*goAway) (bool, error)
|
ssGoAwayHandler func(*goAway) (bool, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimator) *loopyWriter {
|
func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimator, conn net.Conn) *loopyWriter {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
l := &loopyWriter{
|
l := &loopyWriter{
|
||||||
side: s,
|
side: s,
|
||||||
|
@ -504,6 +506,7 @@ func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimato
|
||||||
hBuf: &buf,
|
hBuf: &buf,
|
||||||
hEnc: hpack.NewEncoder(&buf),
|
hEnc: hpack.NewEncoder(&buf),
|
||||||
bdpEst: bdpEst,
|
bdpEst: bdpEst,
|
||||||
|
conn: conn,
|
||||||
}
|
}
|
||||||
return l
|
return l
|
||||||
}
|
}
|
||||||
|
@ -521,15 +524,27 @@ const minBatchSize = 1000
|
||||||
// 2. Stream level flow control quota available.
|
// 2. Stream level flow control quota available.
|
||||||
//
|
//
|
||||||
// In each iteration of run loop, other than processing the incoming control
|
// In each iteration of run loop, other than processing the incoming control
|
||||||
// frame, loopy calls processData, which processes one node from the activeStreams linked-list.
|
// frame, loopy calls processData, which processes one node from the
|
||||||
// This results in writing of HTTP2 frames into an underlying write buffer.
|
// activeStreams linked-list. This results in writing of HTTP2 frames into an
|
||||||
// When there's no more control frames to read from controlBuf, loopy flushes the write buffer.
|
// underlying write buffer. When there's no more control frames to read from
|
||||||
// As an optimization, to increase the batch size for each flush, loopy yields the processor, once
|
// controlBuf, loopy flushes the write buffer. As an optimization, to increase
|
||||||
// if the batch size is too low to give stream goroutines a chance to fill it up.
|
// the batch size for each flush, loopy yields the processor, once if the batch
|
||||||
|
// size is too low to give stream goroutines a chance to fill it up.
|
||||||
|
//
|
||||||
|
// Upon exiting, if the error causing the exit is not an I/O error, run()
|
||||||
|
// flushes and closes the underlying connection. Otherwise, the connection is
|
||||||
|
// left open to allow the I/O error to be encountered by the reader instead.
|
||||||
func (l *loopyWriter) run() (err error) {
|
func (l *loopyWriter) run() (err error) {
|
||||||
// Always flush the writer before exiting in case there are pending frames
|
defer func() {
|
||||||
// to be sent.
|
if logger.V(logLevel) {
|
||||||
defer l.framer.writer.Flush()
|
logger.Infof("transport: loopyWriter exiting with error: %v", err)
|
||||||
|
}
|
||||||
|
if !isIOError(err) {
|
||||||
|
l.framer.writer.Flush()
|
||||||
|
l.conn.Close()
|
||||||
|
}
|
||||||
|
l.cbuf.finish()
|
||||||
|
}()
|
||||||
for {
|
for {
|
||||||
it, err := l.cbuf.get(true)
|
it, err := l.cbuf.get(true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -581,11 +596,11 @@ func (l *loopyWriter) outgoingWindowUpdateHandler(w *outgoingWindowUpdate) error
|
||||||
return l.framer.fr.WriteWindowUpdate(w.streamID, w.increment)
|
return l.framer.fr.WriteWindowUpdate(w.streamID, w.increment)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) incomingWindowUpdateHandler(w *incomingWindowUpdate) error {
|
func (l *loopyWriter) incomingWindowUpdateHandler(w *incomingWindowUpdate) {
|
||||||
// Otherwise update the quota.
|
// Otherwise update the quota.
|
||||||
if w.streamID == 0 {
|
if w.streamID == 0 {
|
||||||
l.sendQuota += w.increment
|
l.sendQuota += w.increment
|
||||||
return nil
|
return
|
||||||
}
|
}
|
||||||
// Find the stream and update it.
|
// Find the stream and update it.
|
||||||
if str, ok := l.estdStreams[w.streamID]; ok {
|
if str, ok := l.estdStreams[w.streamID]; ok {
|
||||||
|
@ -593,10 +608,9 @@ func (l *loopyWriter) incomingWindowUpdateHandler(w *incomingWindowUpdate) error
|
||||||
if strQuota := int(l.oiws) - str.bytesOutStanding; strQuota > 0 && str.state == waitingOnStreamQuota {
|
if strQuota := int(l.oiws) - str.bytesOutStanding; strQuota > 0 && str.state == waitingOnStreamQuota {
|
||||||
str.state = active
|
str.state = active
|
||||||
l.activeStreams.enqueue(str)
|
l.activeStreams.enqueue(str)
|
||||||
return nil
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) outgoingSettingsHandler(s *outgoingSettings) error {
|
func (l *loopyWriter) outgoingSettingsHandler(s *outgoingSettings) error {
|
||||||
|
@ -604,13 +618,11 @@ func (l *loopyWriter) outgoingSettingsHandler(s *outgoingSettings) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) incomingSettingsHandler(s *incomingSettings) error {
|
func (l *loopyWriter) incomingSettingsHandler(s *incomingSettings) error {
|
||||||
if err := l.applySettings(s.ss); err != nil {
|
l.applySettings(s.ss)
|
||||||
return err
|
|
||||||
}
|
|
||||||
return l.framer.fr.WriteSettingsAck()
|
return l.framer.fr.WriteSettingsAck()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) registerStreamHandler(h *registerStream) error {
|
func (l *loopyWriter) registerStreamHandler(h *registerStream) {
|
||||||
str := &outStream{
|
str := &outStream{
|
||||||
id: h.streamID,
|
id: h.streamID,
|
||||||
state: empty,
|
state: empty,
|
||||||
|
@ -618,7 +630,6 @@ func (l *loopyWriter) registerStreamHandler(h *registerStream) error {
|
||||||
wq: h.wq,
|
wq: h.wq,
|
||||||
}
|
}
|
||||||
l.estdStreams[h.streamID] = str
|
l.estdStreams[h.streamID] = str
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) headerHandler(h *headerFrame) error {
|
func (l *loopyWriter) headerHandler(h *headerFrame) error {
|
||||||
|
@ -720,10 +731,10 @@ func (l *loopyWriter) writeHeader(streamID uint32, endStream bool, hf []hpack.He
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) preprocessData(df *dataFrame) error {
|
func (l *loopyWriter) preprocessData(df *dataFrame) {
|
||||||
str, ok := l.estdStreams[df.streamID]
|
str, ok := l.estdStreams[df.streamID]
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return
|
||||||
}
|
}
|
||||||
// If we got data for a stream it means that
|
// If we got data for a stream it means that
|
||||||
// stream was originated and the headers were sent out.
|
// stream was originated and the headers were sent out.
|
||||||
|
@ -732,7 +743,6 @@ func (l *loopyWriter) preprocessData(df *dataFrame) error {
|
||||||
str.state = active
|
str.state = active
|
||||||
l.activeStreams.enqueue(str)
|
l.activeStreams.enqueue(str)
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) pingHandler(p *ping) error {
|
func (l *loopyWriter) pingHandler(p *ping) error {
|
||||||
|
@ -743,9 +753,8 @@ func (l *loopyWriter) pingHandler(p *ping) error {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) outFlowControlSizeRequestHandler(o *outFlowControlSizeRequest) error {
|
func (l *loopyWriter) outFlowControlSizeRequestHandler(o *outFlowControlSizeRequest) {
|
||||||
o.resp <- l.sendQuota
|
o.resp <- l.sendQuota
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) cleanupStreamHandler(c *cleanupStream) error {
|
func (l *loopyWriter) cleanupStreamHandler(c *cleanupStream) error {
|
||||||
|
@ -763,6 +772,7 @@ func (l *loopyWriter) cleanupStreamHandler(c *cleanupStream) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if l.draining && len(l.estdStreams) == 0 {
|
if l.draining && len(l.estdStreams) == 0 {
|
||||||
|
// Flush and close the connection; we are done with it.
|
||||||
return errors.New("finished processing active streams while in draining mode")
|
return errors.New("finished processing active streams while in draining mode")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -798,6 +808,7 @@ func (l *loopyWriter) incomingGoAwayHandler(*incomingGoAway) error {
|
||||||
if l.side == clientSide {
|
if l.side == clientSide {
|
||||||
l.draining = true
|
l.draining = true
|
||||||
if len(l.estdStreams) == 0 {
|
if len(l.estdStreams) == 0 {
|
||||||
|
// Flush and close the connection; we are done with it.
|
||||||
return errors.New("received GOAWAY with no active streams")
|
return errors.New("received GOAWAY with no active streams")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -816,17 +827,10 @@ func (l *loopyWriter) goAwayHandler(g *goAway) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) closeConnectionHandler() error {
|
|
||||||
// Exit loopyWriter entirely by returning an error here. This will lead to
|
|
||||||
// the transport closing the connection, and, ultimately, transport
|
|
||||||
// closure.
|
|
||||||
return ErrConnClosing
|
|
||||||
}
|
|
||||||
|
|
||||||
func (l *loopyWriter) handle(i interface{}) error {
|
func (l *loopyWriter) handle(i interface{}) error {
|
||||||
switch i := i.(type) {
|
switch i := i.(type) {
|
||||||
case *incomingWindowUpdate:
|
case *incomingWindowUpdate:
|
||||||
return l.incomingWindowUpdateHandler(i)
|
l.incomingWindowUpdateHandler(i)
|
||||||
case *outgoingWindowUpdate:
|
case *outgoingWindowUpdate:
|
||||||
return l.outgoingWindowUpdateHandler(i)
|
return l.outgoingWindowUpdateHandler(i)
|
||||||
case *incomingSettings:
|
case *incomingSettings:
|
||||||
|
@ -836,7 +840,7 @@ func (l *loopyWriter) handle(i interface{}) error {
|
||||||
case *headerFrame:
|
case *headerFrame:
|
||||||
return l.headerHandler(i)
|
return l.headerHandler(i)
|
||||||
case *registerStream:
|
case *registerStream:
|
||||||
return l.registerStreamHandler(i)
|
l.registerStreamHandler(i)
|
||||||
case *cleanupStream:
|
case *cleanupStream:
|
||||||
return l.cleanupStreamHandler(i)
|
return l.cleanupStreamHandler(i)
|
||||||
case *earlyAbortStream:
|
case *earlyAbortStream:
|
||||||
|
@ -844,21 +848,24 @@ func (l *loopyWriter) handle(i interface{}) error {
|
||||||
case *incomingGoAway:
|
case *incomingGoAway:
|
||||||
return l.incomingGoAwayHandler(i)
|
return l.incomingGoAwayHandler(i)
|
||||||
case *dataFrame:
|
case *dataFrame:
|
||||||
return l.preprocessData(i)
|
l.preprocessData(i)
|
||||||
case *ping:
|
case *ping:
|
||||||
return l.pingHandler(i)
|
return l.pingHandler(i)
|
||||||
case *goAway:
|
case *goAway:
|
||||||
return l.goAwayHandler(i)
|
return l.goAwayHandler(i)
|
||||||
case *outFlowControlSizeRequest:
|
case *outFlowControlSizeRequest:
|
||||||
return l.outFlowControlSizeRequestHandler(i)
|
l.outFlowControlSizeRequestHandler(i)
|
||||||
case closeConnection:
|
case closeConnection:
|
||||||
return l.closeConnectionHandler()
|
// Just return a non-I/O error and run() will flush and close the
|
||||||
|
// connection.
|
||||||
|
return ErrConnClosing
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("transport: unknown control message type %T", i)
|
return fmt.Errorf("transport: unknown control message type %T", i)
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *loopyWriter) applySettings(ss []http2.Setting) error {
|
func (l *loopyWriter) applySettings(ss []http2.Setting) {
|
||||||
for _, s := range ss {
|
for _, s := range ss {
|
||||||
switch s.ID {
|
switch s.ID {
|
||||||
case http2.SettingInitialWindowSize:
|
case http2.SettingInitialWindowSize:
|
||||||
|
@ -877,7 +884,6 @@ func (l *loopyWriter) applySettings(ss []http2.Setting) error {
|
||||||
updateHeaderTblSize(l.hEnc, s.Val)
|
updateHeaderTblSize(l.hEnc, s.Val)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// processData removes the first stream from active streams, writes out at most 16KB
|
// processData removes the first stream from active streams, writes out at most 16KB
|
||||||
|
@ -911,7 +917,7 @@ func (l *loopyWriter) processData() (bool, error) {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
if err := l.cleanupStreamHandler(trailer.cleanup); err != nil {
|
if err := l.cleanupStreamHandler(trailer.cleanup); err != nil {
|
||||||
return false, nil
|
return false, err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
l.activeStreams.enqueue(str)
|
l.activeStreams.enqueue(str)
|
||||||
|
|
21
vendor/google.golang.org/grpc/internal/transport/http2_client.go
generated
vendored
21
vendor/google.golang.org/grpc/internal/transport/http2_client.go
generated
vendored
|
@ -444,15 +444,8 @@ func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst)
|
t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst, t.conn)
|
||||||
err := t.loopy.run()
|
t.loopy.run()
|
||||||
if logger.V(logLevel) {
|
|
||||||
logger.Infof("transport: loopyWriter exited. Closing connection. Err: %v", err)
|
|
||||||
}
|
|
||||||
// Do not close the transport. Let reader goroutine handle it since
|
|
||||||
// there might be data in the buffers.
|
|
||||||
t.conn.Close()
|
|
||||||
t.controlBuf.finish()
|
|
||||||
close(t.writerDone)
|
close(t.writerDone)
|
||||||
}()
|
}()
|
||||||
return t, nil
|
return t, nil
|
||||||
|
@ -1264,10 +1257,12 @@ func (t *http2Client) handleGoAway(f *http2.GoAwayFrame) {
|
||||||
t.mu.Unlock()
|
t.mu.Unlock()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if f.ErrCode == http2.ErrCodeEnhanceYourCalm {
|
if f.ErrCode == http2.ErrCodeEnhanceYourCalm && string(f.DebugData()) == "too_many_pings" {
|
||||||
if logger.V(logLevel) {
|
// When a client receives a GOAWAY with error code ENHANCE_YOUR_CALM and debug
|
||||||
logger.Infof("Client received GoAway with http2.ErrCodeEnhanceYourCalm.")
|
// data equal to ASCII "too_many_pings", it should log the occurrence at a log level that is
|
||||||
}
|
// enabled by default and double the configure KEEPALIVE_TIME used for new connections
|
||||||
|
// on that channel.
|
||||||
|
logger.Errorf("Client received GoAway with error code ENHANCE_YOUR_CALM and debug data equal to ASCII \"too_many_pings\".")
|
||||||
}
|
}
|
||||||
id := f.LastStreamID
|
id := f.LastStreamID
|
||||||
if id > 0 && id%2 == 0 {
|
if id > 0 && id%2 == 0 {
|
||||||
|
|
27
vendor/google.golang.org/grpc/internal/transport/http2_server.go
generated
vendored
27
vendor/google.golang.org/grpc/internal/transport/http2_server.go
generated
vendored
|
@ -331,14 +331,9 @@ func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport,
|
||||||
t.handleSettings(sf)
|
t.handleSettings(sf)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst)
|
t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst, t.conn)
|
||||||
t.loopy.ssGoAwayHandler = t.outgoingGoAwayHandler
|
t.loopy.ssGoAwayHandler = t.outgoingGoAwayHandler
|
||||||
err := t.loopy.run()
|
t.loopy.run()
|
||||||
if logger.V(logLevel) {
|
|
||||||
logger.Infof("transport: loopyWriter exited. Closing connection. Err: %v", err)
|
|
||||||
}
|
|
||||||
t.conn.Close()
|
|
||||||
t.controlBuf.finish()
|
|
||||||
close(t.writerDone)
|
close(t.writerDone)
|
||||||
}()
|
}()
|
||||||
go t.keepalive()
|
go t.keepalive()
|
||||||
|
@ -383,7 +378,7 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func(
|
||||||
// if false, content-type was missing or invalid
|
// if false, content-type was missing or invalid
|
||||||
isGRPC = false
|
isGRPC = false
|
||||||
contentType = ""
|
contentType = ""
|
||||||
mdata = make(map[string][]string)
|
mdata = make(metadata.MD, len(frame.Fields))
|
||||||
httpMethod string
|
httpMethod string
|
||||||
// these are set if an error is encountered while parsing the headers
|
// these are set if an error is encountered while parsing the headers
|
||||||
protocolError bool
|
protocolError bool
|
||||||
|
@ -404,6 +399,17 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func(
|
||||||
mdata[hf.Name] = append(mdata[hf.Name], hf.Value)
|
mdata[hf.Name] = append(mdata[hf.Name], hf.Value)
|
||||||
s.contentSubtype = contentSubtype
|
s.contentSubtype = contentSubtype
|
||||||
isGRPC = true
|
isGRPC = true
|
||||||
|
|
||||||
|
case "grpc-accept-encoding":
|
||||||
|
mdata[hf.Name] = append(mdata[hf.Name], hf.Value)
|
||||||
|
if hf.Value == "" {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
compressors := hf.Value
|
||||||
|
if s.clientAdvertisedCompressors != "" {
|
||||||
|
compressors = s.clientAdvertisedCompressors + "," + compressors
|
||||||
|
}
|
||||||
|
s.clientAdvertisedCompressors = compressors
|
||||||
case "grpc-encoding":
|
case "grpc-encoding":
|
||||||
s.recvCompress = hf.Value
|
s.recvCompress = hf.Value
|
||||||
case ":method":
|
case ":method":
|
||||||
|
@ -595,7 +601,7 @@ func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func(
|
||||||
LocalAddr: t.localAddr,
|
LocalAddr: t.localAddr,
|
||||||
Compression: s.recvCompress,
|
Compression: s.recvCompress,
|
||||||
WireLength: int(frame.Header().Length),
|
WireLength: int(frame.Header().Length),
|
||||||
Header: metadata.MD(mdata).Copy(),
|
Header: mdata.Copy(),
|
||||||
}
|
}
|
||||||
sh.HandleRPC(s.ctx, inHeader)
|
sh.HandleRPC(s.ctx, inHeader)
|
||||||
}
|
}
|
||||||
|
@ -1344,9 +1350,6 @@ func (t *http2Server) outgoingGoAwayHandler(g *goAway) (bool, error) {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
if retErr != nil {
|
if retErr != nil {
|
||||||
// Abruptly close the connection following the GoAway (via
|
|
||||||
// loopywriter). But flush out what's inside the buffer first.
|
|
||||||
t.framer.writer.Flush()
|
|
||||||
return false, retErr
|
return false, retErr
|
||||||
}
|
}
|
||||||
return true, nil
|
return true, nil
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue