aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/test
diff options
context:
space:
mode:
authorDiego <diegolparra@gmail.com>2014-05-09 12:35:54 -0300
committerDiego <diegolparra@gmail.com>2014-05-09 12:35:54 -0300
commit19bd9f9ff70b5cda7937217047085645c09cb76d (patch)
treefd3e5086b892c10cd2a912b22f18d9df9f3fa403 /kamon-core/src/test
parent1704a8515a73a806e594e980bfeee25ce36d3bae (diff)
downloadKamon-19bd9f9ff70b5cda7937217047085645c09cb76d.tar.gz
Kamon-19bd9f9ff70b5cda7937217047085645c09cb76d.tar.bz2
Kamon-19bd9f9ff70b5cda7937217047085645c09cb76d.zip
+ core: added MinMaxCounterSpec and new test in ActorMetricsSpec
Diffstat (limited to 'kamon-core/src/test')
-rw-r--r--kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala16
-rw-r--r--kamon-core/src/test/scala/kamon/metrics/instrument/MinMaxCounterSpec.scala109
2 files changed, 116 insertions, 9 deletions
diff --git a/kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala b/kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala
index 0f0bb475..7430e0f0 100644
--- a/kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala
+++ b/kamon-core/src/test/scala/kamon/metrics/ActorMetricsSpec.scala
@@ -15,9 +15,9 @@
package kamon.metrics
-import org.scalatest.{WordSpecLike, Matchers}
-import akka.testkit.{TestProbe, TestKitBase}
-import akka.actor.{ActorRef, Actor, Props, ActorSystem}
+import org.scalatest.{ WordSpecLike, Matchers }
+import akka.testkit.{ TestProbe, TestKitBase }
+import akka.actor.{ ActorRef, Actor, Props, ActorSystem }
import com.typesafe.config.ConfigFactory
import scala.concurrent.duration._
import kamon.Kamon
@@ -89,8 +89,8 @@ class ActorMetricsSpec extends TestKitBase with WordSpecLike with Matchers {
val stalledTickMetrics = expectActorMetrics("user/tracked-mailbox-size-queueing-up", metricsListener, 2 seconds)
stalledTickMetrics.mailboxSize.numberOfMeasurements should equal(31)
// only the automatic last-value recording should be taken, and includes the message being currently processed.
- stalledTickMetrics.mailboxSize.measurements should contain only (Measurement(0, 10), Measurement(10, 21))
- stalledTickMetrics.mailboxSize.min should equal(0)
+ stalledTickMetrics.mailboxSize.measurements should contain only (Measurement(10, 31))
+ stalledTickMetrics.mailboxSize.min should equal(10)
stalledTickMetrics.mailboxSize.max should equal(10)
stalledTickMetrics.processingTime.numberOfMeasurements should be(0L)
stalledTickMetrics.timeInMailbox.numberOfMeasurements should be(0L)
@@ -115,7 +115,6 @@ class ActorMetricsSpec extends TestKitBase with WordSpecLike with Matchers {
}
}
-
def expectActorMetrics(actorPath: String, listener: TestProbe, waitTime: FiniteDuration): ActorMetricSnapshot = {
val tickSnapshot = within(waitTime) {
listener.expectMsgType[TickMetricSnapshot]
@@ -150,19 +149,18 @@ class ActorMetricsSpec extends TestKitBase with WordSpecLike with Matchers {
(actor, metricsListener)
}
}
-
}
class DelayableActor extends Actor {
def receive = {
case Delay(time) ⇒ Thread.sleep(time.toMillis)
- case Discard ⇒
+ case Discard ⇒
}
}
class FailedActor extends Actor {
def receive = {
- case Error ⇒ 1 / 0
+ case Error ⇒ 1 / 0
case Discard ⇒
}
}
diff --git a/kamon-core/src/test/scala/kamon/metrics/instrument/MinMaxCounterSpec.scala b/kamon-core/src/test/scala/kamon/metrics/instrument/MinMaxCounterSpec.scala
new file mode 100644
index 00000000..a309f92e
--- /dev/null
+++ b/kamon-core/src/test/scala/kamon/metrics/instrument/MinMaxCounterSpec.scala
@@ -0,0 +1,109 @@
+package kamon.metrics.instrument
+/* =========================================================================================
+ * 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
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ * either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ * =========================================================================================
+ */
+import org.scalatest.{Matchers, WordSpecLike}
+import kamon.metrics.instruments.counter.MinMaxCounter
+
+class MinMaxCounterSpec extends WordSpecLike with Matchers {
+
+
+ "the MinMaxCounter" should {
+ "increment" in {
+ val counter = MinMaxCounter()
+
+ counter.increment()
+ counter.increment()
+ counter.increment()
+ counter.increment()
+ counter.increment()
+
+ val (_, _, sum) = counter.collect()
+
+ sum should be(5)
+ }
+
+ "decrement" in {
+ val counter = MinMaxCounter()
+ counter.increment(5L)
+
+ counter.decrement()
+ counter.decrement()
+ counter.decrement()
+ counter.decrement()
+ counter.decrement()
+
+ val (_, _, sum) = counter.collect()
+
+ sum should be(0)
+ }
+
+ "reset the min and max with the sum value when the collect method is called" in {
+ val counter = MinMaxCounter()
+
+ counter.increment(10)
+ counter.increment(20)
+ counter.increment(30)
+ counter.increment(40)
+ counter.increment(50)
+
+ counter.collect() //only for check the last value after reset min max
+
+ val (min, max, sum) = counter.collect()
+
+ min should be(sum)
+ max should be(sum)
+ sum should be(150)
+ }
+ }
+
+ "track the min value" in {
+ val counter = MinMaxCounter()
+
+ counter.increment(10)
+ counter.increment(20)
+ counter.increment(30)
+ counter.increment(40)
+ counter.increment(50)
+
+ val (min, _, _) = counter.collect()
+
+ min should be(0)
+
+ counter.increment(50)
+
+ val (minAfterCollectAndAddSomeValues, _, _) = counter.collect()
+
+ minAfterCollectAndAddSomeValues should be(150)
+ }
+
+ "track the max value" in {
+ val counter = MinMaxCounter()
+ counter.increment(10)
+ counter.increment(20)
+ counter.increment(30)
+ counter.increment(40)
+ counter.increment(50)
+
+ val (_, max, _) = counter.collect()
+
+ max should be(150)
+
+ counter.increment(200)
+
+ val (_,maxAfterCollectAndAddSomeValues, _) = counter.collect()
+
+ maxAfterCollectAndAddSomeValues should be(350)
+ }
+}