Skip to content

Commit 506b773

Browse files
Implemented component logging (#3617)
1 parent 4241954 commit 506b773

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+426
-287
lines changed

balancer/base/balancer.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import (
2828
"google.golang.org/grpc/resolver"
2929
)
3030

31+
var logger = grpclog.Component("balancer")
32+
3133
type baseBuilder struct {
3234
name string
3335
pickerBuilder PickerBuilder
@@ -91,8 +93,8 @@ func (b *baseBalancer) ResolverError(err error) {
9193

9294
func (b *baseBalancer) UpdateClientConnState(s balancer.ClientConnState) error {
9395
// TODO: handle s.ResolverState.ServiceConfig?
94-
if grpclog.V(2) {
95-
grpclog.Infoln("base.baseBalancer: got new ClientConn state: ", s)
96+
if logger.V(2) {
97+
logger.Info("base.baseBalancer: got new ClientConn state: ", s)
9698
}
9799
// Successful resolution; clear resolver error and ensure we return nil.
98100
b.resolverErr = nil
@@ -104,7 +106,7 @@ func (b *baseBalancer) UpdateClientConnState(s balancer.ClientConnState) error {
104106
// a is a new address (not existing in b.subConns).
105107
sc, err := b.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{HealthCheckEnabled: b.config.HealthCheck})
106108
if err != nil {
107-
grpclog.Warningf("base.baseBalancer: failed to create new SubConn: %v", err)
109+
logger.Warningf("base.baseBalancer: failed to create new SubConn: %v", err)
108110
continue
109111
}
110112
b.subConns[a] = sc
@@ -168,13 +170,13 @@ func (b *baseBalancer) regeneratePicker() {
168170

169171
func (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) {
170172
s := state.ConnectivityState
171-
if grpclog.V(2) {
172-
grpclog.Infof("base.baseBalancer: handle SubConn state change: %p, %v", sc, s)
173+
if logger.V(2) {
174+
logger.Infof("base.baseBalancer: handle SubConn state change: %p, %v", sc, s)
173175
}
174176
oldS, ok := b.scStates[sc]
175177
if !ok {
176-
if grpclog.V(2) {
177-
grpclog.Infof("base.baseBalancer: got state changes for an unknown SubConn: %p, %v", sc, s)
178+
if logger.V(2) {
179+
logger.Infof("base.baseBalancer: got state changes for an unknown SubConn: %p, %v", sc, s)
178180
}
179181
return
180182
}

balancer/grpclb/grpclb.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ const (
5050
)
5151

5252
var errServerTerminatedConnection = errors.New("grpclb: failed to recv server list: server terminated connection")
53+
var logger = grpclog.Component("grpclb")
5354

5455
func convertDuration(d *durationpb.Duration) time.Duration {
5556
if d == nil {
@@ -150,11 +151,11 @@ func (b *lbBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) bal
150151
if opt.CredsBundle != nil {
151152
lb.grpclbClientConnCreds, err = opt.CredsBundle.NewWithMode(internal.CredsBundleModeBalancer)
152153
if err != nil {
153-
grpclog.Warningf("lbBalancer: client connection creds NewWithMode failed: %v", err)
154+
logger.Warningf("lbBalancer: client connection creds NewWithMode failed: %v", err)
154155
}
155156
lb.grpclbBackendCreds, err = opt.CredsBundle.NewWithMode(internal.CredsBundleModeBackendFromBalancer)
156157
if err != nil {
157-
grpclog.Warningf("lbBalancer: backend creds NewWithMode failed: %v", err)
158+
logger.Warningf("lbBalancer: backend creds NewWithMode failed: %v", err)
158159
}
159160
}
160161

@@ -310,16 +311,16 @@ func (lb *lbBalancer) aggregateSubConnStates() connectivity.State {
310311

311312
func (lb *lbBalancer) UpdateSubConnState(sc balancer.SubConn, scs balancer.SubConnState) {
312313
s := scs.ConnectivityState
313-
if grpclog.V(2) {
314-
grpclog.Infof("lbBalancer: handle SubConn state change: %p, %v", sc, s)
314+
if logger.V(2) {
315+
logger.Infof("lbBalancer: handle SubConn state change: %p, %v", sc, s)
315316
}
316317
lb.mu.Lock()
317318
defer lb.mu.Unlock()
318319

319320
oldS, ok := lb.scStates[sc]
320321
if !ok {
321-
if grpclog.V(2) {
322-
grpclog.Infof("lbBalancer: got state changes for an unknown SubConn: %p, %v", sc, s)
322+
if logger.V(2) {
323+
logger.Infof("lbBalancer: got state changes for an unknown SubConn: %p, %v", sc, s)
323324
}
324325
return
325326
}
@@ -393,8 +394,8 @@ func (lb *lbBalancer) handleServiceConfig(gc *grpclbServiceConfig) {
393394
if lb.usePickFirst == newUsePickFirst {
394395
return
395396
}
396-
if grpclog.V(2) {
397-
grpclog.Infof("lbBalancer: switching mode, new usePickFirst: %+v", newUsePickFirst)
397+
if logger.V(2) {
398+
logger.Infof("lbBalancer: switching mode, new usePickFirst: %+v", newUsePickFirst)
398399
}
399400
lb.refreshSubConns(lb.backendAddrs, lb.inFallback, newUsePickFirst)
400401
}
@@ -405,8 +406,8 @@ func (lb *lbBalancer) ResolverError(error) {
405406
}
406407

407408
func (lb *lbBalancer) UpdateClientConnState(ccs balancer.ClientConnState) error {
408-
if grpclog.V(2) {
409-
grpclog.Infof("lbBalancer: UpdateClientConnState: %+v", ccs)
409+
if logger.V(2) {
410+
logger.Infof("lbBalancer: UpdateClientConnState: %+v", ccs)
410411
}
411412
gc, _ := ccs.BalancerConfig.(*grpclbServiceConfig)
412413
lb.handleServiceConfig(gc)

balancer/grpclb/grpclb_remote_balancer.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import (
3333
"google.golang.org/grpc/balancer"
3434
lbpb "google.golang.org/grpc/balancer/grpclb/grpc_lb_v1"
3535
"google.golang.org/grpc/connectivity"
36-
"google.golang.org/grpc/grpclog"
3736
"google.golang.org/grpc/internal/backoff"
3837
"google.golang.org/grpc/internal/channelz"
3938
"google.golang.org/grpc/keepalive"
@@ -44,8 +43,8 @@ import (
4443
// processServerList updates balancer's internal state, create/remove SubConns
4544
// and regenerates picker using the received serverList.
4645
func (lb *lbBalancer) processServerList(l *lbpb.ServerList) {
47-
if grpclog.V(2) {
48-
grpclog.Infof("lbBalancer: processing server list: %+v", l)
46+
if logger.V(2) {
47+
logger.Infof("lbBalancer: processing server list: %+v", l)
4948
}
5049
lb.mu.Lock()
5150
defer lb.mu.Unlock()
@@ -56,8 +55,8 @@ func (lb *lbBalancer) processServerList(l *lbpb.ServerList) {
5655

5756
// If the new server list == old server list, do nothing.
5857
if cmp.Equal(lb.fullServerList, l.Servers, cmp.Comparer(proto.Equal)) {
59-
if grpclog.V(2) {
60-
grpclog.Infof("lbBalancer: new serverlist same as the previous one, ignoring")
58+
if logger.V(2) {
59+
logger.Infof("lbBalancer: new serverlist same as the previous one, ignoring")
6160
}
6261
return
6362
}
@@ -81,8 +80,8 @@ func (lb *lbBalancer) processServerList(l *lbpb.ServerList) {
8180
Addr: fmt.Sprintf("%s:%d", ipStr, s.Port),
8281
Metadata: &md,
8382
}
84-
if grpclog.V(2) {
85-
grpclog.Infof("lbBalancer: server list entry[%d]: ipStr:|%s|, port:|%d|, load balancer token:|%v|",
83+
if logger.V(2) {
84+
logger.Infof("lbBalancer: server list entry[%d]: ipStr:|%s|, port:|%d|, load balancer token:|%v|",
8685
i, ipStr, s.Port, s.LoadBalanceToken)
8786
}
8887
backendAddrs = append(backendAddrs, addr)
@@ -150,7 +149,7 @@ func (lb *lbBalancer) refreshSubConns(backendAddrs []resolver.Address, fallback
150149
// This bypasses the cc wrapper with SubConn cache.
151150
sc, err := lb.cc.cc.NewSubConn(backendAddrs, opts)
152151
if err != nil {
153-
grpclog.Warningf("grpclb: failed to create new SubConn: %v", err)
152+
logger.Warningf("grpclb: failed to create new SubConn: %v", err)
154153
return
155154
}
156155
sc.Connect()
@@ -173,7 +172,7 @@ func (lb *lbBalancer) refreshSubConns(backendAddrs []resolver.Address, fallback
173172
// Use addrWithMD to create the SubConn.
174173
sc, err := lb.cc.NewSubConn([]resolver.Address{addr}, opts)
175174
if err != nil {
176-
grpclog.Warningf("grpclb: failed to create new SubConn: %v", err)
175+
logger.Warningf("grpclb: failed to create new SubConn: %v", err)
177176
continue
178177
}
179178
lb.subConns[addrWithoutMD] = sc // Use the addr without MD as key for the map.
@@ -245,7 +244,7 @@ func (lb *lbBalancer) newRemoteBalancerCCWrapper() {
245244
// receive ServerName as authority.
246245
cc, err := grpc.DialContext(context.Background(), lb.manualResolver.Scheme()+":///grpclb.subClientConn", dopts...)
247246
if err != nil {
248-
grpclog.Fatalf("failed to dial: %v", err)
247+
logger.Fatalf("failed to dial: %v", err)
249248
}
250249
ccw := &remoteBalancerCCWrapper{
251250
cc: cc,
@@ -373,9 +372,9 @@ func (ccw *remoteBalancerCCWrapper) watchRemoteBalancer() {
373372
default:
374373
if err != nil {
375374
if err == errServerTerminatedConnection {
376-
grpclog.Info(err)
375+
logger.Info(err)
377376
} else {
378-
grpclog.Warning(err)
377+
logger.Warning(err)
379378
}
380379
}
381380
}

balancer/rls/internal/balancer.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ var (
3434

3535
// For overriding in tests.
3636
newRLSClientFunc = newRLSClient
37+
logger = grpclog.Component("rls")
3738
)
3839

3940
// rlsBalancer implements the RLS LB policy.
@@ -75,18 +76,18 @@ func (lb *rlsBalancer) run() {
7576
// channel accordingly.
7677
// TODO(easwars): Handle updates to other fields in the service config.
7778
func (lb *rlsBalancer) handleClientConnUpdate(ccs *balancer.ClientConnState) {
78-
grpclog.Infof("rls: service config: %+v", ccs.BalancerConfig)
79+
logger.Infof("rls: service config: %+v", ccs.BalancerConfig)
7980
lb.mu.Lock()
8081
defer lb.mu.Unlock()
8182

8283
if lb.done.HasFired() {
83-
grpclog.Warning("rls: received service config after balancer close")
84+
logger.Warning("rls: received service config after balancer close")
8485
return
8586
}
8687

8788
newCfg := ccs.BalancerConfig.(*lbConfig)
8889
if lb.lbCfg.Equal(newCfg) {
89-
grpclog.Info("rls: new service config matches existing config")
90+
logger.Info("rls: new service config matches existing config")
9091
return
9192
}
9293

@@ -109,12 +110,12 @@ func (lb *rlsBalancer) UpdateClientConnState(ccs balancer.ClientConnState) error
109110
func (lb *rlsBalancer) ResolverError(error) {
110111
// ResolverError is called by gRPC when the name resolver reports an error.
111112
// TODO(easwars): How do we handle this?
112-
grpclog.Fatal("rls: ResolverError is not yet unimplemented")
113+
logger.Fatal("rls: ResolverError is not yet unimplemented")
113114
}
114115

115116
// UpdateSubConnState implements balancer.V2Balancer interface.
116117
func (lb *rlsBalancer) UpdateSubConnState(_ balancer.SubConn, _ balancer.SubConnState) {
117-
grpclog.Fatal("rls: UpdateSubConnState is not yet implemented")
118+
logger.Fatal("rls: UpdateSubConnState is not yet implemented")
118119
}
119120

120121
// Cleans up the resources allocated by the LB policy including the clientConn
@@ -162,7 +163,7 @@ func (lb *rlsBalancer) updateControlChannel(newCfg *lbConfig) {
162163

163164
cc, err := grpc.Dial(newCfg.lookupService, dopts...)
164165
if err != nil {
165-
grpclog.Errorf("rls: dialRLS(%s, %v): %v", newCfg.lookupService, lb.opts, err)
166+
logger.Errorf("rls: dialRLS(%s, %v): %v", newCfg.lookupService, lb.opts, err)
166167
// An error from a non-blocking dial indicates something serious. We
167168
// should continue to use the old control channel if one exists, and
168169
// return so that the rest of the config updates can be processes.
@@ -185,14 +186,14 @@ func dialCreds(opts balancer.BuildOptions) grpc.DialOption {
185186
switch {
186187
case opts.DialCreds != nil:
187188
if err := opts.DialCreds.OverrideServerName(server); err != nil {
188-
grpclog.Warningf("rls: OverrideServerName(%s) = (%v), using Insecure", server, err)
189+
logger.Warningf("rls: OverrideServerName(%s) = (%v), using Insecure", server, err)
189190
return grpc.WithInsecure()
190191
}
191192
return grpc.WithTransportCredentials(opts.DialCreds)
192193
case opts.CredsBundle != nil:
193194
return grpc.WithTransportCredentials(opts.CredsBundle.TransportCredentials())
194195
default:
195-
grpclog.Warning("rls: no credentials available, using Insecure")
196+
logger.Warning("rls: no credentials available, using Insecure")
196197
return grpc.WithInsecure()
197198
}
198199
}

balancer/rls/internal/cache/cache.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import (
3030
"google.golang.org/grpc/internal/backoff"
3131
)
3232

33+
var logger = grpclog.Component("rls")
34+
3335
// Key represents the cache key used to uniquely identify a cache entry.
3436
type Key struct {
3537
// Path is the full path of the incoming RPC request.
@@ -175,7 +177,7 @@ func (lru *LRU) removeToFit(newSize int64) {
175177
if elem == nil {
176178
// This is a corner case where the cache is empty, but the new entry
177179
// to be added is bigger than maxSize.
178-
grpclog.Info("rls: newly added cache entry exceeds cache maxSize")
180+
logger.Info("rls: newly added cache entry exceeds cache maxSize")
179181
return
180182
}
181183

@@ -184,7 +186,7 @@ func (lru *LRU) removeToFit(newSize int64) {
184186
// When the oldest entry is too new (it hasn't even spent a default
185187
// minimum amount of time in the cache), we abort and allow the
186188
// cache to grow bigger than the configured maxSize.
187-
grpclog.Info("rls: LRU eviction finds oldest entry to be too new. Allowing cache to exceed maxSize momentarily")
189+
logger.Info("rls: LRU eviction finds oldest entry to be too new. Allowing cache to exceed maxSize momentarily")
188190
return
189191
}
190192
lru.removeElement(elem)

balancer/rls/internal/config.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import (
3232
"google.golang.org/grpc/balancer"
3333
"google.golang.org/grpc/balancer/rls/internal/keys"
3434
rlspb "google.golang.org/grpc/balancer/rls/internal/proto/grpc_lookup_v1"
35-
"google.golang.org/grpc/grpclog"
3635
"google.golang.org/grpc/internal/grpcutil"
3736
"google.golang.org/grpc/resolver"
3837
"google.golang.org/grpc/serviceconfig"
@@ -238,11 +237,11 @@ func (*rlsBB) ParseConfig(c json.RawMessage) (serviceconfig.LoadBalancingConfig,
238237
return nil, fmt.Errorf("rls: stale_age is set, but max_age is not in service config {%+v}", string(c))
239238
}
240239
if staleAge >= maxAge {
241-
grpclog.Info("rls: stale_age {%v} is greater than max_age {%v}, ignoring it", staleAge, maxAge)
240+
logger.Info("rls: stale_age {%v} is greater than max_age {%v}, ignoring it", staleAge, maxAge)
242241
staleAge = 0
243242
}
244243
if maxAge == 0 || maxAge > maxMaxAge {
245-
grpclog.Infof("rls: max_age in service config is %v, using %v", maxAge, maxMaxAge)
244+
logger.Infof("rls: max_age in service config is %v, using %v", maxAge, maxMaxAge)
246245
maxAge = maxMaxAge
247246
}
248247

balancer/roundrobin/roundrobin.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ import (
3333
// Name is the name of round_robin balancer.
3434
const Name = "round_robin"
3535

36+
var logger = grpclog.Component("roundrobin")
37+
3638
// newBuilder creates a new roundrobin balancer builder.
3739
func newBuilder() balancer.Builder {
3840
return base.NewBalancerBuilder(Name, &rrPickerBuilder{}, base.Config{HealthCheck: true})
@@ -45,7 +47,7 @@ func init() {
4547
type rrPickerBuilder struct{}
4648

4749
func (*rrPickerBuilder) Build(info base.PickerBuildInfo) balancer.Picker {
48-
grpclog.Infof("roundrobinPicker: newPicker called with info: %v", info)
50+
logger.Infof("roundrobinPicker: newPicker called with info: %v", info)
4951
if len(info.ReadySCs) == 0 {
5052
return base.NewErrPicker(balancer.ErrNoSubConnAvailable)
5153
}

balancer_conn_wrappers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ func (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) {
220220

221221
ac, err := cc.newAddrConn(addrs, opts)
222222
if err != nil {
223-
channelz.Warningf(acbw.ac.channelzID, "acBalancerWrapper: UpdateAddresses: failed to newAddrConn: %v", err)
223+
channelz.Warningf(logger, acbw.ac.channelzID, "acBalancerWrapper: UpdateAddresses: failed to newAddrConn: %v", err)
224224
return
225225
}
226226
acbw.ac = ac

channelz/service/service.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
"google.golang.org/grpc/codes"
3232
"google.golang.org/grpc/connectivity"
3333
"google.golang.org/grpc/credentials"
34+
"google.golang.org/grpc/grpclog"
3435
"google.golang.org/grpc/internal/channelz"
3536
"google.golang.org/grpc/status"
3637
)
@@ -39,6 +40,8 @@ func init() {
3940
channelz.TurnOn()
4041
}
4142

43+
var logger = grpclog.Component("channelz")
44+
4245
// RegisterChannelzServiceToServer registers the channelz service to the given server.
4346
func RegisterChannelzServiceToServer(s *grpc.Server) {
4447
channelzgrpc.RegisterChannelzServer(s, newCZServer())

0 commit comments

Comments
 (0)