mirror of
https://github.com/kubernetes/client-go.git
synced 2025-07-21 18:32:50 +00:00
Merge pull request #49678 from smarterclayton/429_metric
Automatic merge from submit-queue Timeout and Max-in-flight don't report non-resource URLs correctly. Unify error reporting for 429 and 504 to be correct for timeout and max in flight and eviction. Add better messages to eviction (removing a todo). Return the correct body content for timeouts (reason and code should be correct). This potentially increases cardinality of 429, but because non-api urls may be under the max-inflight budget we need to report them somewhere (if something breaks and starts fetching API versions endlessly). ```release-note The 504 timeout error was returning a JSON error body that indicated it was a 500. The body contents now correctly report a 500 error. ``` Kubernetes-commit: 8d6bbaa85f96f14ac9c9722ed1677e1052c974ba
This commit is contained in:
commit
1091ffb59e
96
Godeps/Godeps.json
generated
96
Godeps/Godeps.json
generated
@ -432,195 +432,195 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion/unstructured",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/fields",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/labels",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/selection",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/types",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/version",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/watch",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
|
||||
"Rev": "abee1a2f97bdbf7f5c1bd6f363a3d1478bb1e8ec"
|
||||
"Rev": "8cc513375dee45d0409b6cd3d1bec72cf3ea1be8"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/kube-openapi/pkg/common",
|
||||
|
@ -889,7 +889,7 @@ func isTextResponse(resp *http.Response) bool {
|
||||
func checkWait(resp *http.Response) (int, bool) {
|
||||
switch r := resp.StatusCode; {
|
||||
// any 500 error code and 429 can trigger a wait
|
||||
case r == errors.StatusTooManyRequests, r >= 500:
|
||||
case r == http.StatusTooManyRequests, r >= 500:
|
||||
default:
|
||||
return 0, false
|
||||
}
|
||||
|
@ -1130,7 +1130,7 @@ func TestCheckRetryClosesBody(t *testing.T) {
|
||||
return
|
||||
}
|
||||
w.Header().Set("Retry-After", "1")
|
||||
http.Error(w, "Too many requests, please try again later.", apierrors.StatusTooManyRequests)
|
||||
http.Error(w, "Too many requests, please try again later.", http.StatusTooManyRequests)
|
||||
}))
|
||||
defer testServer.Close()
|
||||
|
||||
@ -1204,7 +1204,7 @@ func TestCheckRetryHandles429And5xx(t *testing.T) {
|
||||
return
|
||||
}
|
||||
w.Header().Set("Retry-After", "0")
|
||||
w.WriteHeader([]int{apierrors.StatusTooManyRequests, 500, 501, 504}[count])
|
||||
w.WriteHeader([]int{http.StatusTooManyRequests, 500, 501, 504}[count])
|
||||
count++
|
||||
}))
|
||||
defer testServer.Close()
|
||||
@ -1234,7 +1234,7 @@ func BenchmarkCheckRetryClosesBody(b *testing.B) {
|
||||
return
|
||||
}
|
||||
w.Header().Set("Retry-After", "0")
|
||||
w.WriteHeader(apierrors.StatusTooManyRequests)
|
||||
w.WriteHeader(http.StatusTooManyRequests)
|
||||
}))
|
||||
defer testServer.Close()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user