aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/tracing/Span.scala
blob: 2194e8d32f278a4653d5a29138c1b69bffec59b2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)

}