diff options
author | Diego Parra <diegolparra@gmail.com> | 2016-07-08 11:10:09 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-07-08 11:10:09 -0300 |
commit | ef927dc672bea427d4de89b8d0ea0bd18bd71285 (patch) | |
tree | b70c59924450fab5b5cb03e6255afef0af7604d5 /kamon-core/src/test/scala | |
parent | ebc560f24154ddec862411b82a79033164bb2c31 (diff) | |
download | Kamon-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/scala')
-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 |