From 942562d452bc1aa64ea6787702c47286c597a186 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Sun, 11 Jun 2017 13:24:44 +0200 Subject: add internal snapshot API that allows keeping state intact --- kamon-core/src/main/scala/kamon/metric/Counter.scala | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/metric/Counter.scala') diff --git a/kamon-core/src/main/scala/kamon/metric/Counter.scala b/kamon-core/src/main/scala/kamon/metric/Counter.scala index e6585021..d2481fa5 100644 --- a/kamon-core/src/main/scala/kamon/metric/Counter.scala +++ b/kamon-core/src/main/scala/kamon/metric/Counter.scala @@ -15,9 +15,9 @@ package kamon.metric -import com.typesafe.scalalogging.StrictLogging import kamon.jsr166.LongAdder import kamon.util.MeasurementUnit +import org.slf4j.LoggerFactory trait Counter { def unit: MeasurementUnit @@ -26,8 +26,8 @@ trait Counter { def increment(times: Long): Unit } -class LongAdderCounter(name: String, tags: Map[String, String], val unit: MeasurementUnit) - extends SnapshotableCounter with StrictLogging { +class LongAdderCounter(name: String, tags: Map[String, String], val unit: MeasurementUnit) extends Counter { + import LongAdderCounter.logger private val adder = new LongAdder() @@ -39,5 +39,14 @@ class LongAdderCounter(name: String, tags: Map[String, String], val unit: Measur else logger.warn(s"Ignored attempt to decrement counter [$name]") } - def snapshot(): MetricValue = MetricValue(name, tags, unit, adder.sumAndReset()) + def snapshot(resetState: Boolean): MetricValue = + if(resetState) + MetricValue(name, tags, unit, adder.sumAndReset()) + else + MetricValue(name, tags, unit, adder.sum()) } + +object LongAdderCounter { + private val logger = LoggerFactory.getLogger(classOf[LongAdderCounter]) +} + -- cgit v1.2.3