-
Notifications
You must be signed in to change notification settings - Fork 896
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 consumer/client (group) ID could be made more generic #2015
Comments
This would be a good candidate to include in the messaging WG discussions. @pyohannes? |
For easier reference, here's an updated list of attributes pertaining to this discussion:
A consumer group usually defines a logical "view" of a topic or similar kind, whereas a client id uniquely identifies a running instance. I think it makes sense to use separate terms (client/consumer) here. As far as I understand, a Client id, on the other hand, could be applicable to any messaging system, so I think it would make sense to move it to the generic The To summarize, I'd suggest replacing the above-mentioned attributes with the following:
|
@kenfinnigan As you introduced the |
The one concern I have is identifying Kafka messages generically by |
Do you think that in this instance, it would be feasible to look at a tuple of attributes: The problem with the current definition of |
We can consider a tuple of attributes for Kafka, but we then have the same problem in that |
True, it doesn't uniquely identify a client, because it might be missing for some cases. However, the semantics are clearly defined across systems: if it is given, then it uniquely identifies a client. As far as I understand, the current If there are no strong blocking reasons from your side, I will submit a PR with the proposed changes above. |
…generic (#3336) Fixes #2015 ## Changes Based on discussions in the messaging workgroup and in issue #2015, this PR proposes to remove `messaging.consumer.id`, and to replace both `messaging.kafka.client_id` and `messaging.rocketmq.client_id` with a generic `messaging.client_id`. `messaging.consumer.id` is defined to always be set to the `client_id` of the used messaging system, except for Kafka, where it was defined to be a combination of `messaging.kafka.client_id` and `messaging.kafka.consumer.group`, or just the latter if `messaging.kafka.client_id` is not available. With this definition, the semantics of `consumer.id` are different between messaging systems, and even different for different Kafka scenarios. The proposed `messaging.client_id` has consistent semantics ("an unique client id, when it is available"), and can be used instead of `messaging.consumer.id` in almost all cases. In addition to have consistent semantics, this also simplifies the semantic conventions, as instead of `messaging.consumer.id` `messaging.kafka.client_id` `messaging.rocketmq.client_id` there is now just: `messaging.client_id`.
…generic (open-telemetry#3336) Fixes open-telemetry#2015 ## Changes Based on discussions in the messaging workgroup and in issue open-telemetry#2015, this PR proposes to remove `messaging.consumer.id`, and to replace both `messaging.kafka.client_id` and `messaging.rocketmq.client_id` with a generic `messaging.client_id`. `messaging.consumer.id` is defined to always be set to the `client_id` of the used messaging system, except for Kafka, where it was defined to be a combination of `messaging.kafka.client_id` and `messaging.kafka.consumer.group`, or just the latter if `messaging.kafka.client_id` is not available. With this definition, the semantics of `consumer.id` are different between messaging systems, and even different for different Kafka scenarios. The proposed `messaging.client_id` has consistent semantics ("an unique client id, when it is available"), and can be used instead of `messaging.consumer.id` in almost all cases. In addition to have consistent semantics, this also simplifies the semantic conventions, as instead of `messaging.consumer.id` `messaging.kafka.client_id` `messaging.rocketmq.client_id` there is now just: `messaging.client_id`.
Currently we have these semantic span attributes to identify message senders/consumers:
messaging.kafka.consumer_group
(Resolve semantic inconsistencies for non traditional messaging #1027)messaging.consumer_id
(Addconsumer_id
to identify the consumer #1810)messaging.rocketmq.client_group
(Add specific attributes for Apache RocketMQ #1904)messaging.rocketmq.client_id
(also Add specific attributes for Apache RocketMQ #1904)It seems like these could all be merged into a generic
messaging.client_id
andmessaging.client_group
.See also #1904 (comment) and #1810 (comment).
The text was updated successfully, but these errors were encountered: