From 1643750f7864bee5c07ae9fb156fc4c8fd2e01b7 Mon Sep 17 00:00:00 2001 From: Gaius Date: Fri, 15 Dec 2023 18:58:54 +0800 Subject: [PATCH] feat: add log for resolver and dynconfig (#2945) Signed-off-by: Gaius --- internal/dynconfig/dynconfig.go | 2 +- pkg/resolver/scheduler_resolver.go | 3 +++ pkg/resolver/seed_peer_resolver.go | 3 +++ pkg/rpc/interceptor.go | 5 +++++ scheduler/config/dynconfig.go | 1 + 5 files changed, 13 insertions(+), 1 deletion(-) diff --git a/internal/dynconfig/dynconfig.go b/internal/dynconfig/dynconfig.go index 84c28a3f134..895124570e9 100644 --- a/internal/dynconfig/dynconfig.go +++ b/internal/dynconfig/dynconfig.go @@ -110,7 +110,7 @@ func (d *dynconfig[T]) Get() (*T, error) { func (d *dynconfig[T]) load() error { // If another load is in progress, return directly. if !d.mu.TryLock() { - return errors.New("another load is in progress") + return errors.New("load is running") } defer d.mu.Unlock() diff --git a/pkg/resolver/scheduler_resolver.go b/pkg/resolver/scheduler_resolver.go index 4d5e9260ff1..551d567ce79 100644 --- a/pkg/resolver/scheduler_resolver.go +++ b/pkg/resolver/scheduler_resolver.go @@ -74,6 +74,7 @@ func (r *SchedulerResolver) Build(target resolver.Target, cc resolver.ClientConn func (r *SchedulerResolver) ResolveNow(resolver.ResolveNowOptions) { // Avoid concurrent GetResolveSchedulerAddrs calls. if !r.mu.TryLock() { + plogger.Warning("resolve addresses is running") return } defer r.mu.Unlock() @@ -94,6 +95,8 @@ func (r *SchedulerResolver) ResolveNow(resolver.ResolveNowOptions) { }); err != nil { plogger.Errorf("resolver update ClientConn error %v", err) } + + plogger.Infof("resolve addresses %v", addrs) } // Close closes the resolver. diff --git a/pkg/resolver/seed_peer_resolver.go b/pkg/resolver/seed_peer_resolver.go index 63ea4801e4a..0adbcf6dedf 100644 --- a/pkg/resolver/seed_peer_resolver.go +++ b/pkg/resolver/seed_peer_resolver.go @@ -75,6 +75,7 @@ func (r *SeedPeerResolver) Build(target resolver.Target, cc resolver.ClientConn, func (r *SeedPeerResolver) ResolveNow(resolver.ResolveNowOptions) { // Avoid concurrent GetResolveSeedPeerAddrs calls. if !r.mu.TryLock() { + slogger.Warning("resolve addresses is running") return } defer r.mu.Unlock() @@ -95,6 +96,8 @@ func (r *SeedPeerResolver) ResolveNow(resolver.ResolveNowOptions) { }); err != nil { slogger.Errorf("resolver update ClientConn error %v", err) } + + slogger.Infof("resolve addresses %v", addrs) } // Close closes the resolver. diff --git a/pkg/rpc/interceptor.go b/pkg/rpc/interceptor.go index 5948b4f1d16..460304ead02 100644 --- a/pkg/rpc/interceptor.go +++ b/pkg/rpc/interceptor.go @@ -27,6 +27,7 @@ import ( "google.golang.org/grpc/status" "d7y.io/dragonfly/v2/internal/dferrors" + logger "d7y.io/dragonfly/v2/internal/dflog" ) var ( @@ -73,6 +74,8 @@ func RefresherUnaryClientInterceptor(r Refresher) grpc.UnaryClientInterceptor { err := invoker(ctx, method, req, reply, cc, opts...) if s, ok := status.FromError(err); ok { if s.Code() == codes.ResourceExhausted || s.Code() == codes.Unavailable { + logger.Errorf("refresh dynconfig addresses when unary client calling error: %s %#v %v", method, req, err) + // nolint r.Refresh() } @@ -88,6 +91,8 @@ func RefresherStreamClientInterceptor(r Refresher) grpc.StreamClientInterceptor clientStream, err := streamer(ctx, desc, cc, method, opts...) if s, ok := status.FromError(err); ok { if s.Code() == codes.ResourceExhausted || s.Code() == codes.Unavailable { + logger.Errorf("refresh dynconfig addresses when stream clinet calling error: %s %v", method, err) + // nolint r.Refresh() } diff --git a/scheduler/config/dynconfig.go b/scheduler/config/dynconfig.go index 39d87a1418c..d979950ece6 100644 --- a/scheduler/config/dynconfig.go +++ b/scheduler/config/dynconfig.go @@ -319,6 +319,7 @@ func (d *dynconfig) GetSchedulerClusterClientConfig() (types.SchedulerClusterCli func (d *dynconfig) Refresh() error { // If another load is in progress, return directly. if !d.mu.TryLock() { + logger.Warn("refresh is running") return nil } defer d.mu.Unlock()