diff options
Diffstat (limited to 'src/main/scala/xyz/driver/tracing/Span.scala')
-rw-r--r-- | src/main/scala/xyz/driver/tracing/Span.scala | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/tracing/Span.scala b/src/main/scala/xyz/driver/tracing/Span.scala new file mode 100644 index 0000000..2194e8d --- /dev/null +++ b/src/main/scala/xyz/driver/tracing/Span.scala @@ -0,0 +1,24 @@ +package xyz.driver.tracing + +import java.util.UUID +import java.time._ + +case class Span( + traceId: UUID, + spanId: UUID, + name: String, + parentSpanId: Option[UUID] = None, + labels: Map[String, String] = Map.empty, + startTime: Instant = Instant.now, + endTime: Instant = Instant.now +) { + + def started(clock: Clock = Clock.systemUTC): Span = + this.copy(startTime = clock.instant()) + def ended(clock: Clock = Clock.systemUTC): Span = + this.copy(endTime = clock.instant()) + + def withLabels(extraLabels: (String, String)*) = + this.copy(labels = this.labels ++ extraLabels) + +} |