Show error spans like in dproxy (#144)
This commit is contained in:
@@ -126,17 +126,22 @@ open class NativeCall(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun completeSpan(callResult: CallResult, requestCount: Int) {
|
private fun completeSpan(callResult: CallResult, requestCount: Int) {
|
||||||
|
val span = tracer.currentSpan()
|
||||||
|
if (callResult.isError()) {
|
||||||
|
errorSpan(span, callResult.error?.message ?: "Internal error")
|
||||||
|
}
|
||||||
if (requestCount > 1) {
|
if (requestCount > 1) {
|
||||||
val span = tracer.currentSpan()
|
|
||||||
if (callResult.isError()) {
|
|
||||||
span?.error(
|
|
||||||
RuntimeException(callResult.error?.message ?: "Internal error")
|
|
||||||
)
|
|
||||||
}
|
|
||||||
span?.end()
|
span?.end()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun errorSpan(span: Span?, message: String) {
|
||||||
|
span?.apply {
|
||||||
|
tag("error", "true")
|
||||||
|
tag("status.message", message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun createTracingReactorContext(
|
private fun createTracingReactorContext(
|
||||||
ctx: Context,
|
ctx: Context,
|
||||||
requestCount: Int,
|
requestCount: Int,
|
||||||
@@ -222,10 +227,11 @@ open class NativeCall(
|
|||||||
log.error("Lost context for a native call", it)
|
log.error("Lost context for a native call", it)
|
||||||
0
|
0
|
||||||
}
|
}
|
||||||
tracer.currentSpan()?.error(it)
|
val message = it?.message ?: "Internal error"
|
||||||
|
errorSpan(tracer.currentSpan(), message)
|
||||||
return BlockchainOuterClass.NativeCallReplyItem.newBuilder()
|
return BlockchainOuterClass.NativeCallReplyItem.newBuilder()
|
||||||
.setSucceed(false)
|
.setSucceed(false)
|
||||||
.setErrorMessage(it?.message ?: "Internal error")
|
.setErrorMessage(message)
|
||||||
.setErrorCode(500)
|
.setErrorCode(500)
|
||||||
.setId(id)
|
.setId(id)
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
Reference in New Issue
Block a user