3131
3232using System ;
3333using System . Collections . Generic ;
34+ using System . Diagnostics ;
3435using System . Diagnostics . CodeAnalysis ;
3536using System . Linq ;
3637using System . Net . Security ;
@@ -544,24 +545,31 @@ public async Task<IConnection> CreateConnectionAsync(IEndpointResolver endpointR
544545 CancellationToken cancellationToken = default )
545546 {
546547 ConnectionConfig config = CreateConfig ( clientProvidedName ) ;
548+ using Activity ? connectionActivity = RabbitMQActivitySource . OpenConnection ( false ) ;
547549 try
548550 {
549551 if ( AutomaticRecoveryEnabled )
550552 {
551- return await AutorecoveringConnection . CreateAsync ( config , endpointResolver , cancellationToken )
553+ connectionActivity ? . SetTag ( "messaging.rabbitmq.connection.automatic_recovery" , true ) ;
554+ return await AutorecoveringConnection . CreateAsync ( config , endpointResolver , connectionActivity , cancellationToken )
552555 . ConfigureAwait ( false ) ;
553556 }
554557 else
555558 {
559+
560+ connectionActivity ? . SetTag ( "messaging.rabbitmq.connection.automatic_recovery" , false ) ;
556561 IFrameHandler frameHandler = await endpointResolver . SelectOneAsync ( CreateFrameHandlerAsync , cancellationToken )
557562 . ConfigureAwait ( false ) ;
563+ connectionActivity . SetNetworkTags ( frameHandler ) ;
558564 var c = new Connection ( config , frameHandler ) ;
559565 return await c . OpenAsync ( cancellationToken )
560566 . ConfigureAwait ( false ) ;
561567 }
562568 }
563569 catch ( OperationCanceledException ex )
564570 {
571+ connectionActivity ? . SetStatus ( ActivityStatusCode . Error ) ;
572+ connectionActivity ? . AddException ( ex ) ;
565573 if ( cancellationToken . IsCancellationRequested )
566574 {
567575 throw ;
@@ -573,7 +581,10 @@ public async Task<IConnection> CreateConnectionAsync(IEndpointResolver endpointR
573581 }
574582 catch ( Exception ex )
575583 {
576- throw new BrokerUnreachableException ( ex ) ;
584+ var brokerUnreachableException = new BrokerUnreachableException ( ex ) ;
585+ connectionActivity ? . SetStatus ( ActivityStatusCode . Error ) ;
586+ connectionActivity ? . AddException ( brokerUnreachableException ) ;
587+ throw brokerUnreachableException ;
577588 }
578589 }
579590
0 commit comments