Browse Source
* Clean up one redundant and one misplaced metric * Clarify the relationship among these metrics to avoid future confusion Reviewers: Matthias J. Sax <matthias@confluent.io>, Bill Bejeck <bill@confluent.io>, Guozhang Wang <wangguoz@gmail.com>pull/7117/head
John Roesler
5 years ago
committed by
Guozhang Wang
32 changed files with 292 additions and 230 deletions
@ -0,0 +1,50 @@
@@ -0,0 +1,50 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.apache.kafka.common.metrics.stats; |
||||
|
||||
import org.apache.kafka.common.metrics.MeasurableStat; |
||||
import org.apache.kafka.common.metrics.MetricConfig; |
||||
|
||||
/** |
||||
* An non-sampled cumulative total maintained over all time. |
||||
* This is a non-sampled version of {@link WindowedSum}. |
||||
* |
||||
* See also {@link CumulativeCount} if you just want to increment the value by 1 on each recording. |
||||
*/ |
||||
public class CumulativeSum implements MeasurableStat { |
||||
|
||||
private double total; |
||||
|
||||
public CumulativeSum() { |
||||
total = 0.0; |
||||
} |
||||
|
||||
public CumulativeSum(double value) { |
||||
total = value; |
||||
} |
||||
|
||||
@Override |
||||
public void record(MetricConfig config, double value, long now) { |
||||
total += value; |
||||
} |
||||
|
||||
@Override |
||||
public double measure(MetricConfig config, long now) { |
||||
return total; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.apache.kafka.common.metrics.stats; |
||||
|
||||
import org.apache.kafka.common.metrics.MetricConfig; |
||||
|
||||
/** |
||||
* A {@link SampledStat} that maintains a simple count of what it has seen. |
||||
* This is a special kind of {@link WindowedSum} that always records a value of {@code 1} instead of the provided value. |
||||
* In other words, it counts the number of |
||||
* {@link WindowedCount#record(MetricConfig, double, long)} invocations, |
||||
* instead of summing the recorded values. |
||||
* |
||||
* See also {@link CumulativeCount} for a non-sampled version of this metric. |
||||
*/ |
||||
public class WindowedCount extends WindowedSum { |
||||
@Override |
||||
protected void update(Sample sample, MetricConfig config, double value, long now) { |
||||
super.update(sample, config, 1.0, now); |
||||
} |
||||
} |
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.apache.kafka.common.metrics.stats; |
||||
|
||||
import org.apache.kafka.common.metrics.MetricConfig; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* A {@link SampledStat} that maintains the sum of what it has seen. |
||||
* This is a sampled version of {@link CumulativeSum}. |
||||
* |
||||
* See also {@link WindowedCount} if you want to increment the value by 1 on each recording. |
||||
*/ |
||||
public class WindowedSum extends SampledStat { |
||||
|
||||
public WindowedSum() { |
||||
super(0); |
||||
} |
||||
|
||||
@Override |
||||
protected void update(Sample sample, MetricConfig config, double value, long now) { |
||||
sample.value += value; |
||||
} |
||||
|
||||
@Override |
||||
public double combine(List<Sample> samples, MetricConfig config, long now) { |
||||
double total = 0.0; |
||||
for (Sample sample : samples) |
||||
total += sample.value; |
||||
return total; |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue