diff options
author | Jakob Odersky <jakob@driver.xyz> | 2018-08-29 16:09:37 -0700 |
---|---|---|
committer | Jakob Odersky <jakob@driver.xyz> | 2018-09-12 14:17:39 -0700 |
commit | a178592098a2bc07fcb7749eaf148debf02a5e63 (patch) | |
tree | 4c64614dd13b99b074bd56fa355d3d49a90e4feb /src/main/scala/xyz/driver/core/reporting | |
parent | 5ec270aa98b806f32338fa25357abdf45dd0625b (diff) | |
download | driver-core-a178592098a2bc07fcb7749eaf148debf02a5e63.tar.gz driver-core-a178592098a2bc07fcb7749eaf148debf02a5e63.tar.bz2 driver-core-a178592098a2bc07fcb7749eaf148debf02a5e63.zip |
Fix trace ID generation and improve trace naming scheme
Diffstat (limited to 'src/main/scala/xyz/driver/core/reporting')
3 files changed, 12 insertions, 9 deletions
diff --git a/src/main/scala/xyz/driver/core/reporting/GoogleReporter.scala b/src/main/scala/xyz/driver/core/reporting/GoogleReporter.scala index 40cb1e5..2f889f5 100644 --- a/src/main/scala/xyz/driver/core/reporting/GoogleReporter.scala +++ b/src/main/scala/xyz/driver/core/reporting/GoogleReporter.scala @@ -111,7 +111,7 @@ class GoogleReporter( parentSpanId: Option[String], displayName: String, attributes: Map[String, String]) = Span( - s"project/${credentials.getProjectId}/traces/$traceId/spans/$spanId", + s"projects/${credentials.getProjectId}/traces/$traceId/spans/$spanId", spanId, parentSpanId, TruncatableString(displayName), @@ -125,7 +125,7 @@ class GoogleReporter( tags: Map[String, String], parent: Option[(SpanContext, CausalRelation)])(operation: SpanContext => A): A = { val child = parent match { - case Some((p, _)) => SpanContext(p.traceId, f"${Random.nextLong()}%02x") + case Some((p, _)) => SpanContext(p.traceId, f"${Random.nextLong()}%016x") case None => SpanContext.fresh() } val span = startSpan(child.traceId, child.spanId, parent.map(_._1.spanId), operationName, tags) @@ -140,7 +140,7 @@ class GoogleReporter( tags: Map[String, String], parent: Option[(SpanContext, CausalRelation)])(operation: SpanContext => Future[A]): Future[A] = { val child = parent match { - case Some((p, _)) => SpanContext(p.traceId, f"${Random.nextLong()}%02x") + case Some((p, _)) => SpanContext(p.traceId, f"${Random.nextLong()}%016x") case None => SpanContext.fresh() } val span = startSpan(child.traceId, child.spanId, parent.map(_._1.spanId), operationName, tags) diff --git a/src/main/scala/xyz/driver/core/reporting/Reporter.scala b/src/main/scala/xyz/driver/core/reporting/Reporter.scala index 2425044..9649ada 100644 --- a/src/main/scala/xyz/driver/core/reporting/Reporter.scala +++ b/src/main/scala/xyz/driver/core/reporting/Reporter.scala @@ -66,7 +66,7 @@ trait Reporter { * * $rootWarning */ - def traceRoot[A](name: String, tags: Map[String, String])(op: SpanContext => A): A = + def traceRoot[A](name: String, tags: Map[String, String] = Map.empty)(op: SpanContext => A): A = traceWithOptionalParent( name, tags, @@ -79,7 +79,7 @@ trait Reporter { * * @see traceRoot */ - def traceRootAsync[A](name: String, tags: Map[String, String])(op: SpanContext => Future[A]): Future[A] = + def traceRootAsync[A](name: String, tags: Map[String, String] = Map.empty)(op: SpanContext => Future[A]): Future[A] = traceWithOptionalParentAsync( name, tags, @@ -102,7 +102,7 @@ trait Reporter { * @tparam A Return type of the operation. * @return The value of the child operation. */ - def trace[A](name: String, tags: Map[String, String], relation: CausalRelation = CausalRelation.Child)( + def trace[A](name: String, tags: Map[String, String] = Map.empty, relation: CausalRelation = CausalRelation.Child)( op: /* implicit (gotta wait for Scala 3) */ SpanContext => A)(implicit ctx: SpanContext): A = traceWithOptionalParent( name, @@ -117,7 +117,10 @@ trait Reporter { * * @see trace */ - def traceAsync[A](name: String, tags: Map[String, String], relation: CausalRelation = CausalRelation.Child)( + def traceAsync[A]( + name: String, + tags: Map[String, String] = Map.empty, + relation: CausalRelation = CausalRelation.Child)( op: /* implicit (gotta wait for Scala 3) */ SpanContext => Future[A])(implicit ctx: SpanContext): Future[A] = traceWithOptionalParentAsync( name, diff --git a/src/main/scala/xyz/driver/core/reporting/SpanContext.scala b/src/main/scala/xyz/driver/core/reporting/SpanContext.scala index 58ab973..ecc2ba3 100644 --- a/src/main/scala/xyz/driver/core/reporting/SpanContext.scala +++ b/src/main/scala/xyz/driver/core/reporting/SpanContext.scala @@ -5,7 +5,7 @@ import scala.util.Random case class SpanContext private[core] (traceId: String, spanId: String) object SpanContext { def fresh() = SpanContext( - f"${Random.nextLong()}%02x${Random.nextLong()}%02x", - f"${Random.nextLong()}%02x" + f"${Random.nextLong()}%016x${Random.nextLong()}%016x", + f"${Random.nextLong()}%016x" ) } |