Skip to content

Commit 1eb201a

Browse files
Merge pull request #181 from ExpediaDotCom/LookForServiceTagJustOnce
Only do one O(n) search for "service" tag, not two.
2 parents 5999fd6 + bacc83f commit 1eb201a

1 file changed

Lines changed: 17 additions & 18 deletions

File tree

  • reader/src/main/scala/com/expedia/www/haystack/trace/reader/readers/utils

reader/src/main/scala/com/expedia/www/haystack/trace/reader/readers/utils/SpanUtils.scala

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616

1717
package com.expedia.www.haystack.trace.reader.readers.utils
1818

19-
import com.expedia.open.tracing.{Log, Span, Tag}
19+
import com.expedia.open.tracing.Log
20+
import com.expedia.open.tracing.Span
21+
import com.expedia.open.tracing.Tag
2022
import com.expedia.www.haystack.trace.reader.readers.utils.SpanMarkers._
2123

2224
import scala.collection.JavaConverters._
@@ -45,20 +47,23 @@ object SpanUtils {
4547
}
4648

4749
def getEffectiveServiceName(span: Span): String = {
48-
if(containsServiceTag(span)) {
49-
val serviceTagValue = span.getTagsList.asScala.find(_.getKey == SERVICE_TAG_KEY).map(_.getVStr).get
50-
if(serviceTagValue == "") { // Span protobuf-generated code returns empty string for a missing tag key
51-
span.getServiceName
52-
} else {
53-
serviceTagValue
54-
}
55-
} else {
50+
val serviceTag = getServiceTag(span)
51+
if (serviceTag.isDefined) {
52+
val serviceTagValue = serviceTag.get.getVStr
53+
if (serviceTagValue == "") { // Span protobuf-generated code returns empty string for a missing tag key
5654
span.getServiceName
55+
} else {
56+
serviceTagValue
5757
}
58-
}
58+
} else {
59+
span.getServiceName
60+
}
61+
}
5962

60-
def containsServiceTag(span: Span): Boolean = {
61-
containsTag(span, SERVICE_TAG_KEY)
63+
def getServiceTag(span: Span): Option[Tag] = {
64+
span.getTagsList.asScala.find(tag => {
65+
tag.getKey.equalsIgnoreCase(SERVICE_TAG_KEY)
66+
})
6267
}
6368

6469
def containsClientLogTag(span: Span): Boolean = {
@@ -109,12 +114,6 @@ object SpanUtils {
109114
})
110115
}
111116

112-
private def containsTag(span: Span, key: String) = {
113-
span.getTagsList.asScala.exists(tag => {
114-
tag.getKey.equalsIgnoreCase(key)
115-
})
116-
}
117-
118117
def createAutoGeneratedRootSpan(spans: Seq[Span],
119118
reason: String,
120119
rootSpanId: String): Span.Builder = {

0 commit comments

Comments
 (0)