From 89330da4b06943895fbd42db22df07b1dc755b82 Mon Sep 17 00:00:00 2001 From: KirillPamPam Date: Mon, 24 Apr 2023 11:38:27 +0400 Subject: [PATCH] Fix collect spans (#209) --- .../dshackle/config/spans/ErrorSpanHandler.kt | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/io/emeraldpay/dshackle/config/spans/ErrorSpanHandler.kt b/src/main/kotlin/io/emeraldpay/dshackle/config/spans/ErrorSpanHandler.kt index 2fc0c94f..f19173f7 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/config/spans/ErrorSpanHandler.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/config/spans/ErrorSpanHandler.kt @@ -35,7 +35,7 @@ class ErrorSpanHandler( currentSpan.context().parentId()?.let { spans.getIfPresent(it)?.let { mutableSpans -> if (mutableSpans.isNotEmpty()) { - spansInfo.spans.add(mutableSpans[0]) + processSpanInfo(mutableSpans[0], spansInfo) } } } @@ -59,16 +59,20 @@ class ErrorSpanHandler( val currentSpans: List? = spans.getIfPresent(spanId) currentSpans?.forEach { - spansInfo.spans.add(it) - if (it.tags().containsKey(SPAN_ERROR)) { - spansInfo.hasError = true - } + processSpanInfo(it, spansInfo) if (spanId != it.id()) { enrichErrorSpans(it.id(), spansInfo) } } } + private fun processSpanInfo(span: MutableSpan, spansInfo: SpansInfo) { + spansInfo.spans.add(span) + if (span.tags().containsKey(SPAN_ERROR)) { + spansInfo.hasError = true + } + } + private data class SpansInfo( var hasError: Boolean = false, val spans: MutableList = mutableListOf()