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.scala33
1 files changed, 0 insertions, 33 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
deleted file mode 100644
index 866476d..0000000
--- a/src/main/scala/xyz/driver/core/rest/headers/Traceparent.scala
+++ /dev/null
@@ -1,33 +0,0 @@
-package xyz.driver.core
-package rest
-package headers
-
-import akka.http.scaladsl.model.headers.{ModeledCustomHeader, ModeledCustomHeaderCompanion}
-import xyz.driver.core.reporting.SpanContext
-
-import scala.util.Try
-
-/** 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(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-${spanContext.traceId}-${spanContext.spanId}-00"
-}
-object Traceparent extends ModeledCustomHeaderCompanion[Traceparent] {
- override val name = "traceparent"
- override def parse(value: String) = Try {
- val Array(version, traceId, spanId, _) = value.split("-")
- require(
- version == "01",
- s"Found unsupported version '$version' in traceparent header. Only version '01' is supported.")
- new Traceparent(
- new SpanContext(traceId, spanId)
- )
- }
-}