From 70bc3a3ecb135127283ba8d369c397f913c88186 Mon Sep 17 00:00:00 2001 From: Ismael Juma Date: Tue, 16 Mar 2021 07:50:01 -0700 Subject: [PATCH] MINOR: Add toString to various Kafka Metrics classes This was useful while debugging a JDK 16 test failure, I noticed these were missing. --- .../apache/kafka/common/metrics/Sensor.java | 5 +++++ .../common/metrics/stats/CumulativeSum.java | 4 ++++ .../kafka/common/metrics/stats/Frequency.java | 7 +++++++ .../kafka/common/metrics/stats/Meter.java | 10 ++++++++++ .../kafka/common/metrics/stats/Rate.java | 8 ++++++++ .../common/metrics/stats/SampledStat.java | 19 +++++++++++++++++++ .../common/metrics/stats/TokenBucket.java | 9 +++++++++ 7 files changed, 62 insertions(+) diff --git a/clients/src/main/java/org/apache/kafka/common/metrics/Sensor.java b/clients/src/main/java/org/apache/kafka/common/metrics/Sensor.java index 16041e2d66eff..5ae3b8d997a64 100644 --- a/clients/src/main/java/org/apache/kafka/common/metrics/Sensor.java +++ b/clients/src/main/java/org/apache/kafka/common/metrics/Sensor.java @@ -69,6 +69,11 @@ public Stat stat() { public MetricConfig config() { return configSupplier.get(); } + + @Override + public String toString() { + return "StatAndConfig(stat=" + stat + ')'; + } } public enum RecordingLevel { diff --git a/clients/src/main/java/org/apache/kafka/common/metrics/stats/CumulativeSum.java b/clients/src/main/java/org/apache/kafka/common/metrics/stats/CumulativeSum.java index 13f12a1bb09d4..6726b9d0d5485 100644 --- a/clients/src/main/java/org/apache/kafka/common/metrics/stats/CumulativeSum.java +++ b/clients/src/main/java/org/apache/kafka/common/metrics/stats/CumulativeSum.java @@ -47,4 +47,8 @@ public double measure(MetricConfig config, long now) { return total; } + @Override + public String toString() { + return "CumulativeSum(total=" + total + ")"; + } } diff --git a/clients/src/main/java/org/apache/kafka/common/metrics/stats/Frequency.java b/clients/src/main/java/org/apache/kafka/common/metrics/stats/Frequency.java index 116d0c2e50c72..5222219f92e1f 100644 --- a/clients/src/main/java/org/apache/kafka/common/metrics/stats/Frequency.java +++ b/clients/src/main/java/org/apache/kafka/common/metrics/stats/Frequency.java @@ -56,4 +56,11 @@ public double centerValue() { return this.centerValue; } + @Override + public String toString() { + return "Frequency(" + + "name=" + name + + ", centerValue=" + centerValue + + ')'; + } } diff --git a/clients/src/main/java/org/apache/kafka/common/metrics/stats/Meter.java b/clients/src/main/java/org/apache/kafka/common/metrics/stats/Meter.java index a6bdc9f3c108f..0eec0c42626a8 100644 --- a/clients/src/main/java/org/apache/kafka/common/metrics/stats/Meter.java +++ b/clients/src/main/java/org/apache/kafka/common/metrics/stats/Meter.java @@ -82,4 +82,14 @@ public void record(MetricConfig config, double value, long timeMs) { double totalValue = (rate.stat instanceof WindowedCount) ? 1.0 : value; total.record(config, totalValue, timeMs); } + + @Override + public String toString() { + return "Meter(" + + "rate=" + rate + + ", total=" + total + + ", rateMetricName=" + rateMetricName + + ", totalMetricName=" + totalMetricName + + ')'; + } } diff --git a/clients/src/main/java/org/apache/kafka/common/metrics/stats/Rate.java b/clients/src/main/java/org/apache/kafka/common/metrics/stats/Rate.java index 0f3573e4aa5fc..952b0fb323e85 100644 --- a/clients/src/main/java/org/apache/kafka/common/metrics/stats/Rate.java +++ b/clients/src/main/java/org/apache/kafka/common/metrics/stats/Rate.java @@ -94,6 +94,14 @@ public long windowSize(MetricConfig config, long now) { return totalElapsedTimeMs; } + @Override + public String toString() { + return "Rate(" + + "unit=" + unit + + ", stat=" + stat + + ')'; + } + /** * @deprecated since 2.4 Use {@link WindowedSum} instead. */ diff --git a/clients/src/main/java/org/apache/kafka/common/metrics/stats/SampledStat.java b/clients/src/main/java/org/apache/kafka/common/metrics/stats/SampledStat.java index 369709e32e11c..faf596a0bfd46 100644 --- a/clients/src/main/java/org/apache/kafka/common/metrics/stats/SampledStat.java +++ b/clients/src/main/java/org/apache/kafka/common/metrics/stats/SampledStat.java @@ -93,6 +93,15 @@ public Sample oldest(long now) { return oldest; } + @Override + public String toString() { + return "SampledStat(" + + "initialValue=" + initialValue + + ", current=" + current + + ", samples=" + samples + + ')'; + } + protected abstract void update(Sample sample, MetricConfig config, double value, long timeMs); public abstract double combine(List samples, MetricConfig config, long now); @@ -128,6 +137,16 @@ public void reset(long now) { public boolean isComplete(long timeMs, MetricConfig config) { return timeMs - lastWindowMs >= config.timeWindowMs() || eventCount >= config.eventWindow(); } + + @Override + public String toString() { + return "Sample(" + + "value=" + value + + ", eventCount=" + eventCount + + ", lastWindowMs=" + lastWindowMs + + ", initialValue=" + initialValue + + ')'; + } } } diff --git a/clients/src/main/java/org/apache/kafka/common/metrics/stats/TokenBucket.java b/clients/src/main/java/org/apache/kafka/common/metrics/stats/TokenBucket.java index 2d50652671316..c86ff51548777 100644 --- a/clients/src/main/java/org/apache/kafka/common/metrics/stats/TokenBucket.java +++ b/clients/src/main/java/org/apache/kafka/common/metrics/stats/TokenBucket.java @@ -98,4 +98,13 @@ private void refill(final double quota, final double burst, final long timeMs) { private double burst(final MetricConfig config) { return config.samples() * convert(config.timeWindowMs(), unit) * config.quota().bound(); } + + @Override + public String toString() { + return "TokenBucket(" + + "unit=" + unit + + ", tokens=" + tokens + + ", lastUpdateMs=" + lastUpdateMs + + ')'; + } }