aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/reporting
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2018-08-29 16:09:37 -0700
committerJakob Odersky <jakob@driver.xyz>2018-09-12 14:17:39 -0700
commita178592098a2bc07fcb7749eaf148debf02a5e63 (patch)
tree4c64614dd13b99b074bd56fa355d3d49a90e4feb /src/main/scala/xyz/driver/core/reporting
parent5ec270aa98b806f32338fa25357abdf45dd0625b (diff)
downloaddriver-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')
-rw-r--r--src/main/scala/xyz/driver/core/reporting/GoogleReporter.scala6
-rw-r--r--src/main/scala/xyz/driver/core/reporting/Reporter.scala11
-rw-r--r--src/main/scala/xyz/driver/core/reporting/SpanContext.scala4
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"
)
}