@@ -52,8 +52,8 @@ object OpenTelemetryTraceReporter {
52
52
import OpenTelemetryTraceReporter ._
53
53
54
54
/**
55
- * Converts internal finished Kamon spans to OpenTelemetry format and sends to a configured OpenTelemetry endpoint using gRPC or REST.
56
- */
55
+ * Converts internal finished Kamon spans to OpenTelemetry format and sends to a configured OpenTelemetry endpoint using gRPC or REST.
56
+ */
57
57
class OpenTelemetryTraceReporter (traceServiceFactory : Config => TraceService )(implicit ec : ExecutionContext ) extends SpanReporter {
58
58
private var traceService : Option [TraceService ] = None
59
59
private var spanConverterFunc : Seq [Span .Finished ] => JCollection [SpanData ] = (_ => new util.ArrayList [SpanData ](0 ))
@@ -81,7 +81,7 @@ class OpenTelemetryTraceReporter(traceServiceFactory: Config => TraceService)(im
81
81
decoded.failed.foreach(t => throw new IllegalArgumentException (s " value for attribute ${k.trim} is not a url-encoded string " , t))
82
82
k.trim -> decoded.get
83
83
}.toMap
84
- val resource : Resource = buildResource(attributes)
84
+ val resource : Resource = OpenTelemetryConfiguration . buildResource(attributes)
85
85
this .spanConverterFunc = SpanConverter .convert(newConfig.getBoolean(" kamon.otel.trace.include-error-event" ), resource, kamonSettings.version)
86
86
87
87
this .traceService = Option (traceServiceFactory.apply(newConfig))
@@ -93,29 +93,4 @@ class OpenTelemetryTraceReporter(traceServiceFactory: Config => TraceService)(im
93
93
this .traceService = None
94
94
}
95
95
96
- /**
97
- * Builds the resource information added as resource labels to the exported traces
98
- *
99
- * @return
100
- */
101
- private def buildResource (attributes : Map [String , String ]): Resource = {
102
- val env = Kamon .environment
103
- val builder = Resource .builder()
104
- .put(" host.name" , kamonSettings.environment.host)
105
- .put(" service.instance.id" , kamonSettings.environment.instance)
106
- .put(" service.name" , env.service)
107
- .put(" telemetry.sdk.name" , " kamon" )
108
- .put(" telemetry.sdk.language" , " scala" )
109
- .put(" telemetry.sdk.version" , kamonSettings.version)
110
-
111
- attributes.foreach { case (k, v) => builder.put(k, v) }
112
- // add all kamon.environment.tags as KeyValues to the Resource object
113
- env.tags.iterator().foreach {
114
- case t : Tag .String => builder.put(t.key, t.value)
115
- case t : Tag .Boolean => builder.put(t.key, t.value)
116
- case t : Tag .Long => builder.put(t.key, t.value)
117
- }
118
-
119
- builder.build()
120
- }
121
96
}
0 commit comments