I'm making an iPhone app and using the OpenTelemetry Swift package to send traces to my OpenTelemetry Collector!
I want to add custom baggage to my traces, but can't see it in my collector.
iOS Client code:
let spanExporter = OtlpHttpTraceExporter(endpoint: URL(string: "http://localhost:4318/v1/traces")!)
let spanProcessor = SimpleSpanProcessor(spanExporter: spanExporter)
OpenTelemetry.registerTracerProvider(tracerProvider: TracerProviderBuilder()
.add(spanProcessor: spanProcessor)
.build()
)
let tracer = OpenTelemetry.instance.tracerProvider.get(instrumentationName: "HTTPTraceTestInstrumentationName", instrumentationVersion: "HTTPTraceTestInstrumentationVersion")
if #available(macOS 10.14, *), #available(iOS 12.0, *) {
let tracerProviderSDK = OpenTelemetry.instance.tracerProvider as? TracerProviderSdk
tracerProviderSDK?.addSpanProcessor(SignPostIntegration())
}
let baggageBuilder = DefaultBaggage.baggageBuilder()
baggageBuilder.put(key: EntryKey(name: "someTestBaggageKey")!, value: EntryValue(string: "someTestBaggageValue")!, metadata: nil)
let baggage = baggageBuilder.build()
OpenTelemetry.instance.contextProvider.setActiveBaggage(baggage)
let span = tracer.spanBuilder(spanName: "someSpan").setSpanKind(spanKind: .client).startSpan()
span.setAttribute(key: "someKey", value: "someValue")
span.end()
Collector results:
2023-10-12T11:15:18.078+0200 info TracesExporter {"kind": "exporter", "data_type": "traces", "name": "logging", "resource spans": 1, "spans": 1}
2023-10-12T11:15:18.078+0200 info ResourceSpans #0
Resource SchemaURL:
Resource attributes:
-> telemetry.sdk.language: Str(swift)
-> telemetry.sdk.version: Str(1.0.0)
-> service.name: Str(unknown_service:BaggageTest)
-> telemetry.sdk.name: Str(opentelemetry)
ScopeSpans #0
ScopeSpans SchemaURL:
InstrumentationScope HTTPTraceTestInstrumentationName HTTPTraceTestInstrumentationVersion
Span #0
Trace ID : 7e16fec54027961698e6e3d2ebb05062
Parent ID :
ID : 78a4b19ec3a1d048
Name : someSpan
Kind : Client
Start time : 2023-10-12 09:15:17.990396928 +0000 UTC
End time : 2023-10-12 09:15:17.99045888 +0000 UTC
Status code : Unset
Status message :
Attributes:
-> someKey: Str(someValue)
{"kind": "exporter", "data_type": "traces", "name": "logging"}
Can someone help me on how to do it?