Skip to content

Commit a76476c

Browse files
author
Ignacio Bonafonte
authored
Merge pull request #109 from jomisj/add-zipkinExporter-auth-and-endpoint-update-option
Added `additionalHeaders` property to ZipkinExporterOptions Made options public in ZipkinTraceExporter; Adding the additional headers in option.additionalHeaders to the request in the export(spans:) method of ZipkinTraceExporter This would enable a user to add custom header to the zipkin export calls like authorisation headers.
2 parents 42da6ae + 7468e96 commit a76476c

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

Sources/Exporters/Zipkin/ZipkinTraceExporter.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Foundation
1717
import OpenTelemetrySdk
1818

1919
public class ZipkinTraceExporter: SpanExporter {
20-
public private(set) var options: ZipkinTraceExporterOptions
20+
public var options: ZipkinTraceExporterOptions
2121
var localEndPoint: ZipkinEndpoint
2222

2323
public init(options: ZipkinTraceExporterOptions) {
@@ -31,6 +31,9 @@ public class ZipkinTraceExporter: SpanExporter {
3131
var request = URLRequest(url: url)
3232
request.httpMethod = "POST"
3333
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
34+
options.additionalHeaders.forEach {
35+
request.addValue($0.value, forHTTPHeaderField: $0.key)
36+
}
3437

3538
let spans = encodeSpans(spans: spans)
3639
do {

Sources/Exporters/Zipkin/ZipkinTraceExporterOptions.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,19 @@ public struct ZipkinTraceExporterOptions {
2020
let timeoutSeconds: TimeInterval
2121
let serviceName: String
2222
let useShortTraceIds: Bool
23+
let additionalHeaders: [String:String]
2324

2425
public init(endpoint: String = "http://localhost:9411/api/v2/spans",
2526
serviceName: String = "Open Telemetry Exporter",
2627
timeoutSeconds: TimeInterval = 10.0,
27-
useShortTraceIds: Bool = false) {
28+
useShortTraceIds: Bool = false,
29+
additionalHeaders: [String:String] = [String:String]()) {
2830

2931
self.endpoint = endpoint
3032
self.serviceName = serviceName
3133
self.timeoutSeconds = timeoutSeconds
3234
self.useShortTraceIds = useShortTraceIds
35+
self.additionalHeaders = additionalHeaders
3336
}
3437
}
3538

0 commit comments

Comments
 (0)