aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/tracing/Span.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/tracing/Span.scala')
-rw-r--r--src/main/scala/xyz/driver/tracing/Span.scala24
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)
+
+}