diff options
Diffstat (limited to 'kamon-core/src/main')
-rw-r--r-- | kamon-core/src/main/scala/kamon/trace/Span.scala | 19 |
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) } } |