aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/rest/headers/Traceparent.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/core/rest/headers/Traceparent.scala')
-rw-r--r--src/main/scala/xyz/driver/core/rest/headers/Traceparent.scala10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/main/scala/xyz/driver/core/rest/headers/Traceparent.scala b/src/main/scala/xyz/driver/core/rest/headers/Traceparent.scala
index 9d470ad..866476d 100644
--- a/src/main/scala/xyz/driver/core/rest/headers/Traceparent.scala
+++ b/src/main/scala/xyz/driver/core/rest/headers/Traceparent.scala
@@ -3,20 +3,21 @@ package rest
package headers
import akka.http.scaladsl.model.headers.{ModeledCustomHeader, ModeledCustomHeaderCompanion}
+import xyz.driver.core.reporting.SpanContext
import scala.util.Try
-/** Encapsulates trace context in an HTTP header for propagation across services.
+/** Encapsulates a trace context in an HTTP header for propagation across services.
*
* This implementation corresponds to the W3C editor's draft specification (as of 2018-08-28)
* https://w3c.github.io/distributed-tracing/report-trace-context.html. The 'flags' field is
* ignored.
*/
-final case class Traceparent(traceId: String, spanId: String) extends ModeledCustomHeader[Traceparent] {
+final case class Traceparent(spanContext: SpanContext) extends ModeledCustomHeader[Traceparent] {
override def renderInRequests = true
override def renderInResponses = true
override val companion: Traceparent.type = Traceparent
- override def value: String = f"01-$traceId-$spanId-00"
+ override def value: String = f"01-${spanContext.traceId}-${spanContext.spanId}-00"
}
object Traceparent extends ModeledCustomHeaderCompanion[Traceparent] {
override val name = "traceparent"
@@ -26,8 +27,7 @@ object Traceparent extends ModeledCustomHeaderCompanion[Traceparent] {
version == "01",
s"Found unsupported version '$version' in traceparent header. Only version '01' is supported.")
new Traceparent(
- traceId,
- spanId
+ new SpanContext(traceId, spanId)
)
}
}