blob: 4e76c8fe105ad9eeb59a1c3991bc8e9a250132c0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
package kamon.util
import kamon.Kamon
import kamon.Kamon.buildSpan
import kamon.trace.SpanContext
import org.scalatest.{Matchers, WordSpec}
import org.slf4j.MDC
class BaggageOnMDCSpec extends WordSpec with Matchers {
"the BaggageOnMDC utility" should {
"copy all baggage items and the trace ID to MDC and clear them after evaluating the supplied code" in {
val parent = new SpanContext(1, 1, 0, true, Map.empty)
Kamon.withSpan(buildSpan("propagate-mdc").asChildOf(parent).startManual().setBaggageItem("key-to-mdc", "value")) {
BaggageOnMDC.withBaggageOnMDC {
MDC.get("key-to-mdc") should be("value")
MDC.get("trace_id") should be(HexCodec.toLowerHex(1))
}
MDC.get("key-to-mdc") should be(null)
MDC.get("trace_id") should be(null)
}
}
"don't copy the trace ID to MDC if not required" in {
Kamon.withSpan(buildSpan("propagate-mdc").startManual().setBaggageItem("key-to-mdc", "value")) {
BaggageOnMDC.withBaggageOnMDC(false, {
MDC.get("key-to-mdc") should be("value")
MDC.get("trace_id") should be(null)
})
MDC.get("key-to-mdc") should be(null)
MDC.get("trace_id") should be(null)
}
}
}
}
|