diff options
author | John St John <johnthesaintjohn@gmail.com> | 2017-09-26 15:51:38 -0700 |
---|---|---|
committer | John St John <johnthesaintjohn@gmail.com> | 2017-09-26 15:51:38 -0700 |
commit | e07838aab7b059a37bfaa8ff23335cc6e1c9867e (patch) | |
tree | e7e7502163e5965bbfe9688255e0a03f254de7be /src/main/scala/xyz/driver/core/trace/GoogleStackdriverTraceWithConsumer.scala | |
parent | 26a5eb401c48c08812f1292664848595e7f74806 (diff) | |
download | driver-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.scala | 10 |
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) |