diff options
author | Jakob Odersky <jakob@driver.xyz> | 2017-09-29 13:41:52 -0700 |
---|---|---|
committer | Jakob Odersky <jakob@driver.xyz> | 2017-09-29 13:44:10 -0700 |
commit | 03503f6be54cbde22261c56919f5ef45ebdcb21d (patch) | |
tree | fd85cb40860674bd404476346b9ed8ea84a1cfe1 /src/main/scala/xyz/driver/tracing/Span.scala | |
download | tracing-03503f6be54cbde22261c56919f5ef45ebdcb21d.tar.gz tracing-03503f6be54cbde22261c56919f5ef45ebdcb21d.tar.bz2 tracing-03503f6be54cbde22261c56919f5ef45ebdcb21d.zip |
Initial commit
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) + +} |