blob: 58473f136b6a6a9758089d4da460cf36e24f58a5 (
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
|
package kamon.logging
import java.util.concurrent.atomic.AtomicLong
import spray.routing.Directive0
import spray.routing.directives.BasicDirectives
import java.net.InetAddress
import scala.util.Try
import kamon.{Tracer, Kamon}
trait UowDirectives extends BasicDirectives {
def uow: Directive0 = mapRequest { request =>
val generatedUow = Some(UowDirectives.newUow)
println("Generated UOW: "+generatedUow)
Tracer.set(Tracer.newTraceContext().copy(userContext = generatedUow))
request
}
}
object UowDirectives {
val uowCounter = new AtomicLong
val hostnamePrefix = Try(InetAddress.getLocalHost.getHostName).getOrElse("unknown-localhost")
def newUow = "%s-%s".format(hostnamePrefix, uowCounter.incrementAndGet())
}
|