diff options
author | Diego <diegolparra@gmail.com> | 2014-04-30 00:35:07 -0300 |
---|---|---|
committer | Diego <diegolparra@gmail.com> | 2014-04-30 00:35:07 -0300 |
commit | b260e19fac6fc85822c53abc4688e90b6166a0af (patch) | |
tree | e90d30ab846f0df6da073b82d3b1481b9c117dc7 /kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala | |
parent | 0952d2b6f4e571d2c949966131d857083bcdb5bd (diff) | |
download | Kamon-b260e19fac6fc85822c53abc4688e90b6166a0af.tar.gz Kamon-b260e19fac6fc85822c53abc4688e90b6166a0af.tar.bz2 Kamon-b260e19fac6fc85822c53abc4688e90b6166a0af.zip |
! core: new counter recorder based on LongAdder
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala b/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala index bd0d628b..c703d589 100644 --- a/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala +++ b/kamon-core/src/main/scala/kamon/metrics/ActorMetrics.scala @@ -1,6 +1,6 @@ /* * ========================================================================================= - * Copyright © 2013 the kamon project <http://kamon.io/> + * Copyright © 2013-2014 the kamon project <http://kamon.io/> * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of the License at @@ -17,7 +17,7 @@ package kamon.metrics import com.typesafe.config.Config -import kamon.metrics.instruments.ContinuousHdrRecorder +import kamon.metrics.instruments.{ CounterRecorder, ContinuousHdrRecorder } import org.HdrHistogram.HdrRecorder case class ActorMetrics(name: String) extends MetricGroupIdentity { @@ -30,22 +30,24 @@ object ActorMetrics extends MetricGroupCategory { case object ProcessingTime extends MetricIdentity { val name, tag = "processing-time" } case object MailboxSize extends MetricIdentity { val name, tag = "mailbox-size" } case object TimeInMailbox extends MetricIdentity { val name, tag = "time-in-mailbox" } + case object ErrorCounter extends MetricIdentity { val name, tag = "errors" } - case class ActorMetricRecorder(processingTime: MetricRecorder, mailboxSize: MetricRecorder, timeInMailbox: MetricRecorder) + case class ActorMetricRecorder(processingTime: MetricRecorder, mailboxSize: MetricRecorder, timeInMailbox: MetricRecorder, errorCounter: MetricRecorder) extends MetricGroupRecorder { def collect: MetricGroupSnapshot = { - ActorMetricSnapshot(processingTime.collect(), mailboxSize.collect(), timeInMailbox.collect()) + ActorMetricSnapshot(processingTime.collect(), mailboxSize.collect(), timeInMailbox.collect(), errorCounter.collect()) } } - case class ActorMetricSnapshot(processingTime: MetricSnapshotLike, mailboxSize: MetricSnapshotLike, timeInMailbox: MetricSnapshotLike) + case class ActorMetricSnapshot(processingTime: MetricSnapshotLike, mailboxSize: MetricSnapshotLike, timeInMailbox: MetricSnapshotLike, errorCounter: MetricSnapshotLike) extends MetricGroupSnapshot { val metrics: Map[MetricIdentity, MetricSnapshotLike] = Map( (ProcessingTime -> processingTime), (MailboxSize -> mailboxSize), - (TimeInMailbox -> timeInMailbox)) + (TimeInMailbox -> timeInMailbox), + (ErrorCounter -> errorCounter)) } val Factory = new MetricGroupFactory { @@ -61,7 +63,8 @@ object ActorMetrics extends MetricGroupCategory { new ActorMetricRecorder( HdrRecorder(processingTimeConfig.highestTrackableValue, processingTimeConfig.significantValueDigits, Scale.Nano), ContinuousHdrRecorder(mailboxSizeConfig.highestTrackableValue, mailboxSizeConfig.significantValueDigits, Scale.Unit), - HdrRecorder(timeInMailboxConfig.highestTrackableValue, timeInMailboxConfig.significantValueDigits, Scale.Nano)) + HdrRecorder(timeInMailboxConfig.highestTrackableValue, timeInMailboxConfig.significantValueDigits, Scale.Nano), + CounterRecorder()) } } } |