AndrewJSchofield commented on code in PR #14767:
URL: https://github.com/apache/kafka/pull/14767#discussion_r1409788411


##########
core/src/main/scala/kafka/server/KafkaApis.scala:
##########
@@ -3697,16 +3698,60 @@ class KafkaApis(val requestChannel: RequestChannel,
     CompletableFuture.completedFuture[Unit](())
   }
 
-  // Just a place holder for now.
   def handleGetTelemetrySubscriptionsRequest(request: RequestChannel.Request): 
Unit = {
-    requestHelper.sendMaybeThrottle(request, 
request.body[GetTelemetrySubscriptionsRequest].getErrorResponse(Errors.UNSUPPORTED_VERSION.exception))
-    CompletableFuture.completedFuture[Unit](())
+    val subscriptionRequest = request.body[GetTelemetrySubscriptionsRequest]
+
+    if (ClientMetricsReceiverPlugin.instance.isEmpty) {
+      info("Received get telemetry client request, no metrics receiver plugin 
configured or running with ZK")
+      requestHelper.sendResponseMaybeThrottle(request, requestThrottleMs =>
+        subscriptionRequest.getErrorResponse(requestThrottleMs, 
Errors.UNSUPPORTED_VERSION.exception))

Review Comment:
   We can wait for @junrao to weigh in, but I think the handling of 
`APIVersions` should be as written in the KIP. The whole point is that a client 
can tell from the `APIVersionsResponse` that there is no need to get a 
telemetry subscription. For a cluster without client telemetry enabled, there 
are no additional RPCs when the client connects. With this PR, a 3.7 client 
will make extra RPCs even when client telemetry is not enabled. This should be 
avoided if at all possible.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to