blob: 0f9f8634fafae810dc123fa026c2d3aee750aeba [file] [log] [blame]
package org.apache.ignite.internal.metrics;
import java.util.concurrent.atomic.LongAdder;
import org.apache.ignite.internal.metrics.AbstractMetric;
import org.apache.ignite.internal.metrics.LongMetric;
import org.jetbrains.annotations.Nullable;
public class LongAdderMetric extends AbstractMetric implements LongMetric {
/** Value. */
private volatile LongAdder val;
/**
* @param name Name.
* @param desc Description.
*/
public LongAdderMetric(String name, @Nullable String desc) {
super(name, desc);
this.val = new LongAdder();
}
/**
* Adds x to the metric.
*
* @param x Value to be added.
*/
public void add(long x) {
val.add(x);
}
/**
* Sets value.
*
* @param val Value.
*/
public void value(long val) {
LongAdder adder = new LongAdder();
adder.add(val);
this.val = adder;
}
/** {@inheritDoc} */
@Override public long value() {
return val.sum();
}
}