@@ -589,8 +589,10 @@ public Attributes filterTransport(Attributes attributes) {
589589 public void transportReady () {
590590 channelLogger .log (ChannelLogLevel .INFO , "READY" );
591591 subchannelMetrics .recordConnectionAttemptSucceeded (buildLabelSet (
592- addressIndex .getCurrentEagAttributes ().get (NameResolver .ATTR_BACKEND_SERVICE ),
593- addressIndex .getCurrentEagAttributes ().get (LoadBalancer .ATTR_LOCALITY_NAME ),
592+ getAttributeOrDefault (
593+ addressIndex .getCurrentEagAttributes (), NameResolver .ATTR_BACKEND_SERVICE ),
594+ getAttributeOrDefault (
595+ addressIndex .getCurrentEagAttributes (), LoadBalancer .ATTR_LOCALITY_NAME ),
594596 null ,
595597 extractSecurityLevel (
596598 addressIndex .getCurrentEagAttributes ().get (GrpcAttributes .ATTR_SECURITY_LEVEL ))
@@ -625,10 +627,10 @@ public void transportShutdown(final Status s) {
625627 ChannelLogLevel .INFO , "{0} SHUTDOWN with {1}" , transport .getLogId (), printShortStatus (s ));
626628 shutdownInitiated = true ;
627629 subchannelMetrics .recordConnectionAttemptFailed (buildLabelSet (
628- addressIndex .getCurrentEagAttributes (). get ( NameResolver .ATTR_BACKEND_SERVICE ),
629- addressIndex .getCurrentEagAttributes (). get ( LoadBalancer .ATTR_LOCALITY_NAME ),
630+ getAttributeOrDefault ( addressIndex .getCurrentEagAttributes (), NameResolver .ATTR_BACKEND_SERVICE ),
631+ getAttributeOrDefault ( addressIndex .getCurrentEagAttributes (), LoadBalancer .ATTR_LOCALITY_NAME ),
630632 null , null
631- ));
633+ ));
632634 syncContext .execute (new Runnable () {
633635 @ Override
634636 public void run () {
@@ -670,8 +672,10 @@ public void transportTerminated() {
670672 filter .transportTerminated (transport .getAttributes ());
671673 }
672674 subchannelMetrics .recordDisconnection (buildLabelSet (
673- addressIndex .getCurrentEagAttributes ().get (NameResolver .ATTR_BACKEND_SERVICE ),
674- addressIndex .getCurrentEagAttributes ().get (LoadBalancer .ATTR_LOCALITY_NAME ),
675+ getAttributeOrDefault (
676+ addressIndex .getCurrentEagAttributes (), NameResolver .ATTR_BACKEND_SERVICE ),
677+ getAttributeOrDefault (
678+ addressIndex .getCurrentEagAttributes (), LoadBalancer .ATTR_LOCALITY_NAME ),
675679 "Peer Pressure" ,
676680 extractSecurityLevel (
677681 addressIndex .getCurrentEagAttributes ().get (GrpcAttributes .ATTR_SECURITY_LEVEL ))
@@ -702,6 +706,11 @@ private String extractSecurityLevel(SecurityLevel securityLevel) {
702706 throw new IllegalArgumentException ("Unknown SecurityLevel: " + securityLevel );
703707 }
704708 }
709+
710+ private String getAttributeOrDefault (Attributes attributes , Attributes .Key <String > key ) {
711+ String value = attributes .get (key );
712+ return value == null ? "" : value ;
713+ }
705714 }
706715
707716 // All methods are called in syncContext
0 commit comments