
org.kairosdb.metrics4j.collectors.impl.DoubleGauge Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of metrics4j Show documentation
Show all versions of metrics4j Show documentation
Java library for reporting metrics to any timeseries database.
package org.kairosdb.metrics4j.collectors.impl;
import lombok.EqualsAndHashCode;
import lombok.Setter;
import lombok.ToString;
import org.kairosdb.metrics4j.MetricsContext;
import org.kairosdb.metrics4j.collectors.Collector;
import org.kairosdb.metrics4j.collectors.DoubleCollector;
import org.kairosdb.metrics4j.reporting.DoubleValue;
import org.kairosdb.metrics4j.reporting.MetricReporter;
@ToString
@EqualsAndHashCode
public class DoubleGauge implements DoubleCollector
{
protected double m_gauge = 0.0;
@EqualsAndHashCode.Exclude
protected Object m_counterLock = new Object();
@Setter
protected boolean reset;
public DoubleGauge(boolean reset)
{
this.reset = reset;
}
public DoubleGauge()
{
this(false);
}
@Override
public void put(double value)
{
synchronized (m_counterLock)
{
m_gauge = value;
}
}
@Override
public Collector clone()
{
return new DoubleGauge(reset);
}
@Override
public void init(MetricsContext context)
{
}
@Override
public void reportMetric(MetricReporter metricReporter)
{
synchronized (m_counterLock)
{
metricReporter.put("gauge", new DoubleValue(m_gauge));
if (reset)
m_gauge = 0.0;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy