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