Hi Pulsar Community, In talking with Zike Yang on https://github.com/apache/pulsar/pull/19540, we identified that it would be helpful for the proxy to forward its own version when connecting to the broker. Here is a related PIP to improve the connection information available to operators.
Issue: https://github.com/apache/pulsar/issues/19623 Implementation: https://github.com/apache/pulsar/pull/19618 I look forward to your feedback! Thanks, Michael Text of PIP copied below: ### Motivation When clients connect through the proxy, it is valuable to know which version of the proxy connected to the broker. That information isn't currently logged or reported in any easily identifiable way. The only way to get information about the connection is to infer which proxy forwarded a connection based on matching up the IP address in the logs. An additional change proposed in the implementation is to log this new information along with the `clientVersion`, `clientProtocolVersion`, and relevant authentication role information. This information will improve debug-ability and could also serve as a form of audit logging. ### Goal Improve the value of the broker's logs and metrics about connections to simplify debugging and to make it easier for Pulsar operators to understand how clients are connecting to their clusters. ### API Changes Add the following: ```proto message CommandConnect { // Other fields omitted optional string proxy_version = 11; // Version of the proxy. Should only be forwarded by a proxy. } ``` ### Implementation Initial implementation: https://github.com/apache/pulsar/pull/19618 ### Alternatives The `CommandAuthResponse` has a `client_version` field. It's possible that someone would want this `proxy_version` field on that message. However, I think we should not continue down the path of duplicating fields in the connection handshake protocol. ### Anything else? Future work could include exposing this `proxyVersion` and `clientVersion` information via Prometheus metrics.