aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace/Span.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace/Span.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/Span.scala19
1 files changed, 11 insertions, 8 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/Span.scala b/kamon-core/src/main/scala/kamon/trace/Span.scala
index 161042d5..a4424a45 100644
--- a/kamon-core/src/main/scala/kamon/trace/Span.scala
+++ b/kamon-core/src/main/scala/kamon/trace/Span.scala
@@ -59,7 +59,7 @@ trait Span {
def annotate(timestampMicroseconds: Long, name: String, fields: Map[String, String]): Span =
annotate(Span.Annotation(timestampMicroseconds, name, fields))
-
+
}
object Span {
@@ -168,14 +168,17 @@ object Span {
val elapsedTime = endTimestampMicros - startTimestampMicros
val metricTags = Map("operation" -> operationName) ++ customMetricTags
- val latencyHistogram = Span.Metrics.SpanProcessingTimeMetric.refine(metricTags)
- latencyHistogram.record(elapsedTime)
-
- spanTags.get("error").foreach { errorTag =>
- if(errorTag != null && errorTag.equals(TagValue.True)) {
- Span.Metrics.SpanErrorCount.refine(metricTags).increment()
- }
+ val isError = spanTags.get("error").exists {
+ errorTag => errorTag != null && errorTag.equals(Span.TagValue.True)
}
+
+ val refinedMetricTags = if(isError)
+ metricTags + ("error" -> "true")
+ else
+ metricTags
+
+ val latencyHistogram = Span.Metrics.SpanProcessingTimeMetric.refine(refinedMetricTags)
+ latencyHistogram.record(elapsedTime)
}
}