@@ -15,6 +15,11 @@ public static class RabbitMQActivitySource
1515 // https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/#messaging-attributes
1616 internal const string MessageId = "messaging.message.id" ;
1717 internal const string MessageConversationId = "messaging.message.conversation_id" ;
18+ internal const string MessagingOperationName = "messaging.operation.name" ;
19+ internal const string MessagingOperationNameBasicDeliver = "deliver" ;
20+ internal const string MessagingOperationNameBasicGet = "fetch" ;
21+ internal const string MessagingOperationNameBasicGetEmpty = "fetch (empty)" ;
22+ internal const string MessagingOperationNameBasicPublish = "publish" ;
1823 internal const string MessagingOperationType = "messaging.operation.type" ;
1924 internal const string MessagingOperationTypeSend = "send" ;
2025 internal const string MessagingOperationTypeProcess = "process" ;
@@ -56,7 +61,7 @@ public static class RabbitMQActivitySource
5661 new KeyValuePair < string , object ? > ( ProtocolVersion , "0.9.1" )
5762 } ;
5863
59- internal static Activity ? Send ( string routingKey , string exchange , int bodySize ,
64+ internal static Activity ? BasicPublish ( string routingKey , string exchange , int bodySize ,
6065 ActivityContext linkedContext = default )
6166 {
6267 if ( ! s_publisherSource . HasListeners ( ) )
@@ -66,41 +71,42 @@ public static class RabbitMQActivitySource
6671
6772 Activity ? activity = linkedContext == default
6873 ? s_publisherSource . StartRabbitMQActivity (
69- UseRoutingKeyAsOperationName ? $ "{ routingKey } { MessagingOperationTypeSend } " : MessagingOperationTypeSend ,
74+ UseRoutingKeyAsOperationName ? $ "{ MessagingOperationNameBasicPublish } { routingKey } " : MessagingOperationNameBasicPublish ,
7075 ActivityKind . Producer )
7176 : s_publisherSource . StartLinkedRabbitMQActivity (
72- UseRoutingKeyAsOperationName ? $ "{ routingKey } { MessagingOperationTypeSend } " : MessagingOperationTypeSend ,
77+ UseRoutingKeyAsOperationName ? $ "{ MessagingOperationNameBasicPublish } { routingKey } " : MessagingOperationNameBasicPublish ,
7378 ActivityKind . Producer , linkedContext ) ;
7479 if ( activity != null && activity . IsAllDataRequested )
7580 {
76- PopulateMessagingTags ( MessagingOperationTypeSend , routingKey , exchange , 0 , bodySize , activity ) ;
81+ PopulateMessagingTags ( MessagingOperationTypeSend , MessagingOperationNameBasicPublish , routingKey , exchange , 0 , bodySize , activity ) ;
7782 }
7883
7984 return activity ;
8085
8186 }
8287
83- internal static Activity ? ReceiveEmpty ( string queue )
88+ internal static Activity ? BasicGetEmpty ( string queue )
8489 {
8590 if ( ! s_subscriberSource . HasListeners ( ) )
8691 {
8792 return null ;
8893 }
8994
9095 Activity ? activity = s_subscriberSource . StartRabbitMQActivity (
91- UseRoutingKeyAsOperationName ? $ "{ queue } { MessagingOperationTypeReceive } " : MessagingOperationTypeReceive ,
96+ UseRoutingKeyAsOperationName ? $ "{ MessagingOperationNameBasicGetEmpty } { queue } " : MessagingOperationNameBasicGetEmpty ,
9297 ActivityKind . Consumer ) ;
9398 if ( activity != null && activity . IsAllDataRequested )
9499 {
95100 activity
96101 . SetTag ( MessagingOperationType , MessagingOperationTypeReceive )
102+ . SetTag ( MessagingOperationName , MessagingOperationNameBasicGetEmpty )
97103 . SetTag ( MessagingDestination , "amq.default" ) ;
98104 }
99105
100106 return activity ;
101107 }
102108
103- internal static Activity ? Receive ( string routingKey , string exchange , ulong deliveryTag ,
109+ internal static Activity ? BasicGet ( string routingKey , string exchange , ulong deliveryTag ,
104110 IReadOnlyBasicProperties readOnlyBasicProperties , int bodySize )
105111 {
106112 if ( ! s_subscriberSource . HasListeners ( ) )
@@ -110,11 +116,11 @@ public static class RabbitMQActivitySource
110116
111117 // Extract the PropagationContext of the upstream parent from the message headers.
112118 Activity ? activity = s_subscriberSource . StartLinkedRabbitMQActivity (
113- UseRoutingKeyAsOperationName ? $ "{ routingKey } { MessagingOperationTypeReceive } " : MessagingOperationTypeReceive , ActivityKind . Consumer ,
119+ UseRoutingKeyAsOperationName ? $ "{ MessagingOperationNameBasicGet } { routingKey } " : MessagingOperationNameBasicGet , ActivityKind . Consumer ,
114120 ContextExtractor ( readOnlyBasicProperties ) ) ;
115121 if ( activity != null && activity . IsAllDataRequested )
116122 {
117- PopulateMessagingTags ( MessagingOperationTypeReceive , routingKey , exchange , deliveryTag , readOnlyBasicProperties ,
123+ PopulateMessagingTags ( MessagingOperationTypeReceive , MessagingOperationNameBasicGet , routingKey , exchange , deliveryTag , readOnlyBasicProperties ,
118124 bodySize , activity ) ;
119125 }
120126
@@ -131,11 +137,11 @@ public static class RabbitMQActivitySource
131137
132138 // Extract the PropagationContext of the upstream parent from the message headers.
133139 Activity ? activity = s_subscriberSource . StartLinkedRabbitMQActivity (
134- UseRoutingKeyAsOperationName ? $ "{ routingKey } { MessagingOperationTypeProcess } " : MessagingOperationTypeProcess ,
140+ UseRoutingKeyAsOperationName ? $ "{ MessagingOperationNameBasicDeliver } { routingKey } " : MessagingOperationNameBasicDeliver ,
135141 ActivityKind . Consumer , ContextExtractor ( basicProperties ) ) ;
136142 if ( activity != null && activity . IsAllDataRequested )
137143 {
138- PopulateMessagingTags ( MessagingOperationTypeProcess , routingKey , exchange ,
144+ PopulateMessagingTags ( MessagingOperationTypeProcess , MessagingOperationNameBasicDeliver , routingKey , exchange ,
139145 deliveryTag , basicProperties , bodySize , activity ) ;
140146 }
141147
@@ -157,10 +163,10 @@ public static class RabbitMQActivitySource
157163 ? . Start ( ) ;
158164 }
159165
160- private static void PopulateMessagingTags ( string operation , string routingKey , string exchange ,
166+ private static void PopulateMessagingTags ( string operationType , string operationName , string routingKey , string exchange ,
161167 ulong deliveryTag , IReadOnlyBasicProperties readOnlyBasicProperties , int bodySize , Activity activity )
162168 {
163- PopulateMessagingTags ( operation , routingKey , exchange , deliveryTag , bodySize , activity ) ;
169+ PopulateMessagingTags ( operationType , operationName , routingKey , exchange , deliveryTag , bodySize , activity ) ;
164170
165171 if ( ! string . IsNullOrEmpty ( readOnlyBasicProperties . CorrelationId ) )
166172 {
@@ -173,11 +179,12 @@ private static void PopulateMessagingTags(string operation, string routingKey, s
173179 }
174180 }
175181
176- private static void PopulateMessagingTags ( string operation , string routingKey , string exchange ,
182+ private static void PopulateMessagingTags ( string operationType , string operationName , string routingKey , string exchange ,
177183 ulong deliveryTag , int bodySize , Activity activity )
178184 {
179185 activity
180- . SetTag ( MessagingOperationType , operation )
186+ . SetTag ( MessagingOperationType , operationType )
187+ . SetTag ( MessagingOperationName , operationName )
181188 . SetTag ( MessagingDestination , string . IsNullOrEmpty ( exchange ) ? "amq.default" : exchange )
182189 . SetTag ( MessagingDestinationRoutingKey , routingKey )
183190 . SetTag ( MessagingBodySize , bodySize ) ;
0 commit comments