aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/metric/Counter.scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2017-06-11 13:24:44 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2017-06-11 13:24:44 +0200
commit942562d452bc1aa64ea6787702c47286c597a186 (patch)
tree437168af59d1169b00e9c269cb43db1e487c8faa /kamon-core/src/main/scala/kamon/metric/Counter.scala
parenta78ce66cbe149ec7f71b7912e9f7df427688aa15 (diff)
downloadKamon-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.scala17
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])
+}
+