aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala
diff options
context:
space:
mode:
authorJohn St John <johnthesaintjohn@gmail.com>2017-09-26 15:51:38 -0700
committerJohn St John <johnthesaintjohn@gmail.com>2017-09-26 15:51:38 -0700
commite07838aab7b059a37bfaa8ff23335cc6e1c9867e (patch)
treee7e7502163e5965bbfe9688255e0a03f254de7be /src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala
parent26a5eb401c48c08812f1292664848595e7f74806 (diff)
downloaddriver-core-e07838aab7b059a37bfaa8ff23335cc6e1c9867e.tar.gz
driver-core-e07838aab7b059a37bfaa8ff23335cc6e1c9867e.tar.bz2
driver-core-e07838aab7b059a37bfaa8ff23335cc6e1c9867e.zip
Catch and log google tracing exceptions rather than crashing the entire app
Diffstat (limited to 'src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala')
-rw-r--r--src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala b/src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala
index 7fed3c7..81619d2 100644
--- a/src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala
+++ b/src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala
@@ -8,18 +8,22 @@ import com.google.cloud.trace.v1.consumer.{SizedBufferingTraceConsumer, TraceCon
import com.google.cloud.trace.v1.producer.TraceProducer
import com.google.cloud.trace.v1.util.RoughTraceSizer
import com.google.cloud.trace.{SpanContextHandler, SpanContextHandlerTracer, Tracer}
+import com.typesafe.scalalogging.Logger
import scala.compat.java8.OptionConverters._
final class GoogleStackdriverTraceWithConsumer(projectId: String,
appName: String,
appEnvironment: String,
- traceConsumer: TraceConsumer)
+ traceConsumer: TraceConsumer,
+ log: Logger)
extends GoogleServiceTracer {
private val traceProducer: TraceProducer = new TraceProducer()
- private val threadSafeBufferingTraceConsumer =
- new SizedBufferingTraceConsumer(traceConsumer, new RoughTraceSizer(), 100)
+ private val threadSafeBufferingTraceConsumer = new ExceptionLoggingFlushableTraceConsumer(
+ new SizedBufferingTraceConsumer(traceConsumer, new RoughTraceSizer(), 100),
+ log
+ )
private val traceSink: TraceSink = new TraceSinkV1(projectId, traceProducer, threadSafeBufferingTraceConsumer)