Skip to content

[Messaging RabbitMQ] What to use for destination.name when the default exchange is used (empty string) #1529

Closed
@joaopgrassi

Description

@joaopgrassi

Area(s)

area:messaging

Is your change request related to a problem? Please describe.

In the RabbitMQ conventions we say:

In RabbitMQ, the destination is defined by an exchange and a routing key. messaging.destination.name MUST be set to the name of the exchange. This will be an empty string if the default exchange is used.

In Java, the RabbitMQ instrumentation uses <default> in case the exchange name is empty (default one is used).

It is also "confusing" that we say a destination is composed of exchange and routing key, but we don't say how or if even the routing key is supposed to be part of the destination name attribute.

Describe the solution you'd like

Given there are clients for many languages, the conventions should specify what to use when the default exchange is used. Right now, each language can do their own thing, resulting in inconsistent behavior/value for the destination.name attribute.

Describe alternatives you've considered

No response

Additional context

Java example:
https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/instrumentation/rabbitmq-2.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/rabbitmq/RabbitDeliveryAttributesGetter.java#L41

Metadata

Metadata

Assignees

Type

No type

Projects

Status

V1 - Stable Semantics

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions