diff options
Diffstat (limited to 'kamon-core/src/test/scala/kamon')
-rw-r--r-- | kamon-core/src/test/scala/kamon/metric/TraceMetricsSpec.scala | 35 | ||||
-rw-r--r-- | kamon-core/src/test/scala/kamon/trace/TraceContextManipulationSpec.scala | 8 |
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 |