blob: 0bb50dc2828aa85678bba1718a35d0c598eed890 (
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
|
package akka.kamon.instrumentation
import kamon.trace.{ EmptyTraceContext, TraceContext }
import kamon.util.RelativeNanoTimestamp
import org.aspectj.lang.annotation.{ DeclareMixin, Aspect }
case class EnvelopeContext(nanoTime: RelativeNanoTimestamp, context: TraceContext)
object EnvelopeContext {
val Empty = EnvelopeContext(RelativeNanoTimestamp.zero, EmptyTraceContext)
}
trait InstrumentedEnvelope {
def envelopeContext(): EnvelopeContext
def setEnvelopeContext(envelopeContext: EnvelopeContext): Unit
}
object InstrumentedEnvelope {
def apply(): InstrumentedEnvelope = new InstrumentedEnvelope {
var envelopeContext: EnvelopeContext = _
def setEnvelopeContext(envelopeContext: EnvelopeContext): Unit =
this.envelopeContext = envelopeContext
}
}
@Aspect
class EnvelopeContextIntoEnvelopeMixin {
@DeclareMixin("akka.dispatch.Envelope")
def mixinInstrumentationToEnvelope: InstrumentedEnvelope = InstrumentedEnvelope()
}
|