aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/trace/LoggingTrace.scala
blob: cd920f09a4fb6d6fd3bed5edf87cca438d4b0da1 (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
25
26
package xyz.driver.core.trace

import akka.http.scaladsl.model.HttpRequest
import com.google.cloud.trace.v1.consumer.TraceConsumer
import com.typesafe.scalalogging.Logger

final class LoggingTrace(appName: String, appEnvironment: String, log: Logger, bufferSize: Int)
    extends GoogleServiceTracer {

  private val traceConsumer: TraceConsumer = new LoggingTraceConsumer(log)
  private val googleServiceTracer = new GoogleStackdriverTraceWithConsumer(
    "logging-tracer",
    appName,
    appEnvironment,
    traceConsumer,
    log,
    bufferSize
  )

  override def startSpan(httpRequest: HttpRequest): GoogleStackdriverTraceSpan =
    googleServiceTracer.startSpan(httpRequest)

  override def endSpan(span: GoogleStackdriverTraceSpan): Unit = googleServiceTracer.endSpan(span)

  override def flush(): Unit = googleServiceTracer.flush()
}