aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/test
diff options
context:
space:
mode:
authorDiego Parra <diegolparra@gmail.com>2016-07-08 11:10:09 -0300
committerGitHub <noreply@github.com>2016-07-08 11:10:09 -0300
commitef927dc672bea427d4de89b8d0ea0bd18bd71285 (patch)
treeb70c59924450fab5b5cb03e6255afef0af7604d5 /kamon-core/src/test
parentebc560f24154ddec862411b82a79033164bb2c31 (diff)
downloadKamon-ef927dc672bea427d4de89b8d0ea0bd18bd71285.tar.gz
Kamon-ef927dc672bea427d4de89b8d0ea0bd18bd71285.tar.bz2
Kamon-ef927dc672bea427d4de89b8d0ea0bd18bd71285.zip
+ Kamon-core: introduce finishWithError(Throwable) for Traces and Segments
* + kamon-core: introduce finishWithError(Throwable) for Traces and Segments
Diffstat (limited to 'kamon-core/src/test')
-rw-r--r--kamon-core/src/test/scala/kamon/metric/TraceMetricsSpec.scala35
-rw-r--r--kamon-core/src/test/scala/kamon/trace/TraceContextManipulationSpec.scala8
2 files changed, 37 insertions, 6 deletions
diff --git a/kamon-core/src/test/scala/kamon/metric/TraceMetricsSpec.scala b/kamon-core/src/test/scala/kamon/metric/TraceMetricsSpec.scala
index 3e3e2d8e..7678991e 100644
--- a/kamon-core/src/test/scala/kamon/metric/TraceMetricsSpec.scala
+++ b/kamon-core/src/test/scala/kamon/metric/TraceMetricsSpec.scala
@@ -1,6 +1,6 @@
/*
* =========================================================================================
- * Copyright © 2013-2015 the kamon project <http://kamon.io/>
+ * Copyright © 2013-2016 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
@@ -22,6 +22,8 @@ import kamon.testkit.BaseKamonSpec
import kamon.trace.Tracer
import kamon.metric.instrument.Histogram
+import scala.util.control.NoStackTrace
+
class TraceMetricsSpec extends BaseKamonSpec("trace-metrics-spec") with ImplicitSender {
"the TraceMetrics" should {
@@ -82,5 +84,34 @@ class TraceMetricsSpec extends BaseKamonSpec("trace-metrics-spec") with Implicit
afterFinishSegmentSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(1)
}
+
+ "record the elapsed time between a trace creation and finish with an error" in {
+ for (repetitions ← 1 to 10) {
+ Tracer.withContext(newContext("record-elapsed-time-with-error")) {
+ Tracer.currentContext.finishWithError(new RuntimeException("awesome-trace-error") with NoStackTrace)
+ }
+ }
+
+ val snapshot = takeSnapshotOf("record-elapsed-time-with-error", "trace")
+ snapshot.histogram("elapsed-time").get.numberOfMeasurements should be(10)
+ snapshot.counter("errors").get.count should be(10)
+ }
+
+ "record the elapsed time for segments that finish with an error and that occur inside a given trace" in {
+ Tracer.withContext(newContext("trace-with-segments")) {
+ val segment = Tracer.currentContext.startSegment("test-segment-with-error", "test-category", "test-library")
+ segment.finishWithError(new RuntimeException("awesome-segment-error") with NoStackTrace)
+ Tracer.currentContext.finish()
+ }
+
+ val snapshot = takeSnapshotOf("test-segment-with-error", "trace-segment",
+ tags = Map(
+ "trace" -> "trace-with-segments",
+ "category" -> "test-category",
+ "library" -> "test-library"))
+
+ snapshot.histogram("elapsed-time").get.numberOfMeasurements should be(1)
+ snapshot.counter("errors").get.count should be(1)
+ }
}
-}
+} \ No newline at end of file
diff --git a/kamon-core/src/test/scala/kamon/trace/TraceContextManipulationSpec.scala b/kamon-core/src/test/scala/kamon/trace/TraceContextManipulationSpec.scala
index 6a454149..2756eb30 100644
--- a/kamon-core/src/test/scala/kamon/trace/TraceContextManipulationSpec.scala
+++ b/kamon-core/src/test/scala/kamon/trace/TraceContextManipulationSpec.scala
@@ -60,17 +60,17 @@ class TraceContextManipulationSpec extends BaseKamonSpec("trace-metrics-spec") {
}
Tracer.currentContext shouldBe empty
- createdContext.name shouldBe ("renamed-trace")
+ createdContext.name shouldBe "renamed-trace"
}
"allow creating a segment within a trace" in {
val createdContext = Tracer.withContext(newContext("trace-with-segments")) {
- val segment = Tracer.currentContext.startSegment("segment-1", "segment-1-category", "segment-library")
+ Tracer.currentContext.startSegment("segment-1", "segment-1-category", "segment-library")
Tracer.currentContext
}
Tracer.currentContext shouldBe empty
- createdContext.name shouldBe ("trace-with-segments")
+ createdContext.name shouldBe "trace-with-segments"
}
"allow renaming a segment" in {
@@ -83,4 +83,4 @@ class TraceContextManipulationSpec extends BaseKamonSpec("trace-metrics-spec") {
}
}
}
-}
+} \ No newline at end of file