diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-06-11 13:24:44 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2017-06-11 13:24:44 +0200 |
commit | 942562d452bc1aa64ea6787702c47286c597a186 (patch) | |
tree | 437168af59d1169b00e9c269cb43db1e487c8faa /kamon-core/src/main/scala/kamon/metric/Counter.scala | |
parent | a78ce66cbe149ec7f71b7912e9f7df427688aa15 (diff) | |
download | Kamon-942562d452bc1aa64ea6787702c47286c597a186.tar.gz Kamon-942562d452bc1aa64ea6787702c47286c597a186.tar.bz2 Kamon-942562d452bc1aa64ea6787702c47286c597a186.zip |
add internal snapshot API that allows keeping state intact
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metric/Counter.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/metric/Counter.scala | 17 |
1 files changed, 13 insertions, 4 deletions
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]) +} + |