-
Notifications
You must be signed in to change notification settings - Fork 179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Messaging: Remove messaging.source.*
attributes
#100
Messaging: Remove messaging.source.*
attributes
#100
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!!
are there other options that might make sense besides I'm wondering from the perspective of reserving |
What about |
Are we even sure there are really practical cases where the original destination can be set? If not, or if we think it's not that important, I would suggest to remove the original-attributes from this PR (so that it actually does just what the title says) and create a follow-up issue to do it on-demand when we have a concrete use case. To clarify: This is just a suggestion since it seems we are running into a bikeshedding hurdle with these attributes. Otherwise I have nothing against them. |
we have other attributes in the Using @dpauls could you suggest a name based on the existing terminology, which is not "original"? |
The sort of use case where I think the message's original destination (published destination, producer destination?) is useful is when the broker maps a message's destination onto a consumer destination. From an client application's point of view, this is easily illustrated with JMS:
Note in particular the documentation for
This is specifically highlighting that it may not match the MessageConsumer's destination. JMS Providers where it would be common for these destinations to differ would be providers like Solace PubSub+, IBM MQ, Tibco EMS and AMQP. In the case of JMS over AMQP, they've documented the details of how to carry the JMSDestination in the message's Rabbit MQ also has this same concept where a message is sent to an (exchange, routing key), which directs the message to one or more queues for consumption. When a RabbitMQ Consumer receives a message in handleDelivery, it receives an Envelope, from which the message's exchange and routing key can be obtained. I'll also point out that the originally published destination often contains particularly useful information about the message itself. In a loosely coupled Pub/Sub messaging system, the destination the consumer is created with would often be something rather static, perhaps the name of an application using the queue. It's the destinations the messages were sent to that really tell you about the message itself. Given that standards such as AMQP and JMS have separated these two concepts, and I've listed several messaging systems that really do this, I think it would be beneficial to include this information in the conventions. I liked the original terminology of "source" and "destination" the best. If this does not align with ECS, and such alignment is important for this group, then destination_original is "good enough" from my point of view. Other possibilities I can think of are hardly much of an improvement (destination_publish[ed], destination_sent). I'd be open to any other naming suggestions but the worst of all worlds is each messaging system that has the concept uses a different name for the same concept. I don't see much value in removing it. It is optional to begin with and would only be included for messages where it differs from the consumer's destination, so there's no implementation burden for messaging systems where it wouldn't apply. |
Hello, not to and continue to bikeshed the conversation, and not fully aware of how much is planning on being re-worked in the ECS alignment effort, but I did want to jump in and second the notion that we could use a different terminology other than Currently there exist well-defined messaging operations: Since we already use the terminology |
Thanks @dpauls for the research that was great!. I read most of things and I think it's irrefutable that we have use cases for it, so I change my opinion to just remove it and agree with @dpauls we should have it. It's optional anyway. About naming: I don't know if it's just me but the "destination" always throws me off when we talk about the "original place the message came from" (aka producer). It takes some minutes for my brain to catch up that we are talking about the producer. Given this, I was then thinking if the suggestions from @nicholasdgoodman @dpauls to include "publisher/producer" on it wouldn't make it clearer we are talking about the producer while also staying away from conflicting with ECS/Other OTel semconv. We could name the namespace then as I also think we need to adapt this sentence, because I think it's very confusing:
To
|
I think nobody was arguing against having it, at least I was just suggesting to split it to a new PR, since the main change of this PR is something different. |
I recommend to proceed like this:
There's agreement that Naming discussions can take quite some time, and I'd like to avoid having "zombie" terminology lingering around while those discussions are going on. Also, we gain some flexibility in triaging the issue for coming up with an alternative name if we remove references to "source" from the conventions beforehand. Removing the "source" terminology must happen before stabilizing messaging conventions, however, introducing an alternative term can well happen after stabilization. |
messaging.source.*
attributes
I modified the PR to remove As requested, I opened #123 to discuss the new name for the namespace. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Port from open-telemetry/opentelemetry-specification#3450
CC @lmolkova
Fixes open-telemetry/opentelemetry-specification#3196
Changes
messaging.source
namespace.Destination
andsource
namespaces are defined in ECS and unrelated to messaging. Removed to allow attribute reuse across signals (e.g. logs), to decrease confusion with ECS source, and resolve some usability issues with source/destinationmessaging.destination
because it's widely used in messagingdestination_original
: in some cases when a message is routed, consumer also knows the original destination and the destination it received a message from. Withmessaging.source
removed, we need another namespace for the original destination.