diff --git a/clients/src/main/java/org/apache/kafka/common/network/Selector.java b/clients/src/main/java/org/apache/kafka/common/network/Selector.java index 06f7048793fc5..c367f05168254 100644 --- a/clients/src/main/java/org/apache/kafka/common/network/Selector.java +++ b/clients/src/main/java/org/apache/kafka/common/network/Selector.java @@ -1114,9 +1114,10 @@ public void close() { class SelectorMetrics implements AutoCloseable { private final Metrics metrics; - private final String metricGrpPrefix; private final Map metricTags; private final boolean metricsPerConnection; + private final String metricGrpName; + private final String perConnectionMetricGrpName; public final Sensor connectionClosed; public final Sensor connectionCreated; @@ -1142,10 +1143,10 @@ class SelectorMetrics implements AutoCloseable { public SelectorMetrics(Metrics metrics, String metricGrpPrefix, Map metricTags, boolean metricsPerConnection) { this.metrics = metrics; - this.metricGrpPrefix = metricGrpPrefix; this.metricTags = metricTags; this.metricsPerConnection = metricsPerConnection; - String metricGrpName = metricGrpPrefix + "-metrics"; + this.metricGrpName = metricGrpPrefix + "-metrics"; + this.perConnectionMetricGrpName = metricGrpPrefix + "-node-metrics"; StringBuilder tagsSuffix = new StringBuilder(); for (Map.Entry tag: metricTags.entrySet()) { @@ -1293,34 +1294,33 @@ public void maybeRegisterConnectionMetrics(String connectionId) { String nodeRequestName = "node-" + connectionId + ".requests-sent"; Sensor nodeRequest = this.metrics.getSensor(nodeRequestName); if (nodeRequest == null) { - String metricGrpName = metricGrpPrefix + "-node-metrics"; Map tags = new LinkedHashMap<>(metricTags); tags.put("node-id", "node-" + connectionId); nodeRequest = sensor(nodeRequestName); - nodeRequest.add(createMeter(metrics, metricGrpName, tags, new WindowedCount(), "request", "requests sent")); - MetricName metricName = metrics.metricName("request-size-avg", metricGrpName, "The average size of requests sent.", tags); + nodeRequest.add(createMeter(metrics, perConnectionMetricGrpName, tags, new WindowedCount(), "request", "requests sent")); + MetricName metricName = metrics.metricName("request-size-avg", perConnectionMetricGrpName, "The average size of requests sent.", tags); nodeRequest.add(metricName, new Avg()); - metricName = metrics.metricName("request-size-max", metricGrpName, "The maximum size of any request sent.", tags); + metricName = metrics.metricName("request-size-max", perConnectionMetricGrpName, "The maximum size of any request sent.", tags); nodeRequest.add(metricName, new Max()); String bytesSentName = "node-" + connectionId + ".bytes-sent"; Sensor bytesSent = sensor(bytesSentName); - bytesSent.add(createMeter(metrics, metricGrpName, tags, "outgoing-byte", "outgoing bytes")); + bytesSent.add(createMeter(metrics, perConnectionMetricGrpName, tags, "outgoing-byte", "outgoing bytes")); String nodeResponseName = "node-" + connectionId + ".responses-received"; Sensor nodeResponse = sensor(nodeResponseName); - nodeResponse.add(createMeter(metrics, metricGrpName, tags, new WindowedCount(), "response", "responses received")); + nodeResponse.add(createMeter(metrics, perConnectionMetricGrpName, tags, new WindowedCount(), "response", "responses received")); String bytesReceivedName = "node-" + connectionId + ".bytes-received"; Sensor bytesReceive = sensor(bytesReceivedName); - bytesReceive.add(createMeter(metrics, metricGrpName, tags, "incoming-byte", "incoming bytes")); + bytesReceive.add(createMeter(metrics, perConnectionMetricGrpName, tags, "incoming-byte", "incoming bytes")); String nodeTimeName = "node-" + connectionId + ".latency"; Sensor nodeRequestTime = sensor(nodeTimeName); - metricName = metrics.metricName("request-latency-avg", metricGrpName, tags); + metricName = metrics.metricName("request-latency-avg", perConnectionMetricGrpName, tags); nodeRequestTime.add(metricName, new Avg()); - metricName = metrics.metricName("request-latency-max", metricGrpName, tags); + metricName = metrics.metricName("request-latency-max", perConnectionMetricGrpName, tags); nodeRequestTime.add(metricName, new Max()); } }