Add a connection backoff to talk to CRI impls

We can add backoff for connection like we do in cadvisor:
https://github.com/google/cadvisor/blob/master/container/containerd/client.go#L76-L80

for now, don't tune it, just use the default:
https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
This commit is contained in:
Davanum Srinivas 2023-06-20 21:32:45 -04:00
parent bbc7ca94a4
commit c98e72841b
No known key found for this signature in database
GPG Key ID: 80D83A796103BF59
2 changed files with 12 additions and 2 deletions

View File

@ -25,6 +25,7 @@ import (
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"go.opentelemetry.io/otel/trace"
"google.golang.org/grpc"
"google.golang.org/grpc/backoff"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/status"
@ -55,7 +56,11 @@ func NewRemoteImageService(endpoint string, connectionTimeout time.Duration, tp
ctx, cancel := context.WithTimeout(context.Background(), connectionTimeout)
defer cancel()
dialOpts := []grpc.DialOption{}
dialOpts := []grpc.DialOption{
grpc.WithConnectParams(grpc.ConnectParams{
Backoff: backoff.DefaultConfig,
}),
}
dialOpts = append(dialOpts,
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithContextDialer(dialer),

View File

@ -27,6 +27,7 @@ import (
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"go.opentelemetry.io/otel/trace"
"google.golang.org/grpc"
"google.golang.org/grpc/backoff"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/status"
@ -79,7 +80,11 @@ func NewRemoteRuntimeService(endpoint string, connectionTimeout time.Duration, t
ctx, cancel := context.WithTimeout(context.Background(), connectionTimeout)
defer cancel()
dialOpts := []grpc.DialOption{}
dialOpts := []grpc.DialOption{
grpc.WithConnectParams(grpc.ConnectParams{
Backoff: backoff.DefaultConfig,
}),
}
dialOpts = append(dialOpts,
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithContextDialer(dialer),