aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/Span.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2017-10-01 20:24:02 -0700
committerJakob Odersky <jakob@driver.xyz>2017-10-01 20:24:29 -0700
commit2c08b51411be5b0cce57f876377fcd52bee99990 (patch)
treefee56a21e6a5f3d2dd459b51e5afb355db6c7f02 /src/main/scala/Span.scala
parent5bd947dd08eec1d6c64a9549566f3ce0e91fe74f (diff)
downloadtracing-2c08b51411be5b0cce57f876377fcd52bee99990.tar.gz
tracing-2c08b51411be5b0cce57f876377fcd52bee99990.tar.bz2
tracing-2c08b51411be5b0cce57f876377fcd52bee99990.zip
Flatten file hierarchy and implement OAUTH2 authentication
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)
+
+}