Skip to content

Commit

Permalink
Merge pull request #1811 from DataDog/hotfix/2.10.1
Browse files Browse the repository at this point in the history
Release 2.10.1
  • Loading branch information
ganeshnj committed May 2, 2024
2 parents c900a21 + 5180710 commit 1a1881b
Show file tree
Hide file tree
Showing 27 changed files with 58 additions and 44 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Unreleased

# 2.10.1 / 02-05-2024

- [FIX] Use trace and span id as decimal. See [#1807][]

# 2.10.0 / 23-04-2024

- [IMPROVEMENT] Add image duplicate detection between sessions. See [#1747][]
Expand Down Expand Up @@ -639,6 +643,7 @@ Release `2.0` introduces breaking changes. Follow the [Migration Guide](MIGRATIO
[#1767]: https://github.com/DataDog/dd-sdk-ios/pull/1767
[#1721]: https://github.com/DataDog/dd-sdk-ios/pull/1721
[#1747]: https://github.com/DataDog/dd-sdk-ios/pull/1747
[#1807]: https://github.com/DataDog/dd-sdk-ios/pull/1807
[@00fa9a]: https://github.com/00FA9A
[@britton-earnin]: https://github.com/Britton-Earnin
[@hengyu]: https://github.com/Hengyu
Expand Down
20 changes: 14 additions & 6 deletions Datadog/IntegrationUnitTests/Trace/HeadBasedSamplingTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -111,10 +111,12 @@ class HeadBasedSamplingTests: XCTestCase {
XCTAssertTrue(span.isKept, "Span must be sampled")

// Then
let expectedTraceIDField = String(span.traceID, representation: .decimal)
let expectedTraceIDField = String(span.traceID.idLo)
let expectedSpanIDField = String(span.spanID, representation: .decimal)
let expectedTagsField = "_dd.p.tid=\(span.traceID.idHiHex)"
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), expectedTraceIDField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), expectedSpanIDField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), expectedTagsField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "1")
}

Expand Down Expand Up @@ -149,10 +151,12 @@ class HeadBasedSamplingTests: XCTestCase {
XCTAssertFalse(span.isKept, "Span must be dropped")

// Then
let expectedTraceIDField = String(span.traceID, representation: .decimal)
let expectedSpanIDField = String(span.spanID, representation: .decimal)
let expectedTraceIDField = span.traceID.idLoHex
let expectedSpanIDField = String(span.spanID, representation: .hexadecimal)
let expectedTagsField = "_dd.p.tid=\(span.traceID.idHiHex)"
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), expectedTraceIDField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), expectedSpanIDField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), expectedTagsField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "0")
}

Expand Down Expand Up @@ -196,10 +200,12 @@ class HeadBasedSamplingTests: XCTestCase {
XCTAssertEqual(urlsessionSpan.parentID, activeSpan.spanID)

// Then
let expectedTraceIDField = String(activeSpan.traceID, representation: .decimal)
let expectedTraceIDField = String(activeSpan.traceID.idLo)
let expectedSpanIDField = String(urlsessionSpan.spanID, representation: .decimal)
let expectedTagsField = "_dd.p.tid=\(activeSpan.traceID.idHiHex)"
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), expectedTraceIDField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), expectedSpanIDField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), expectedTagsField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "1")
}

Expand Down Expand Up @@ -243,11 +249,13 @@ class HeadBasedSamplingTests: XCTestCase {
XCTAssertEqual(urlsessionSpan.parentID, activeSpan.spanID)

// Then
let expectedTraceIDField = String(activeSpan.traceID, representation: .decimal)
let expectedSpanIDField = String(urlsessionSpan.spanID, representation: .decimal)
let expectedTraceIDField = activeSpan.traceID.idLoHex
let expectedSpanIDField = String(urlsessionSpan.spanID, representation: .hexadecimal)
let expectedTagsField = "_dd.p.tid=\(activeSpan.traceID.idHiHex)"
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), expectedTraceIDField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), expectedSpanIDField)
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "1")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), expectedTagsField)
}

// MARK: - Helpers
Expand Down
2 changes: 1 addition & 1 deletion DatadogAlamofireExtension.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogAlamofireExtension"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "An Official Extensions of Datadog Swift SDK for Alamofire."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogCore.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogCore"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Official Datadog Swift SDK for iOS."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogCore/Sources/Versioning.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// GENERATED FILE: Do not edit directly

internal let __sdkVersion = "2.10.0"
internal let __sdkVersion = "2.10.1"
4 changes: 2 additions & 2 deletions DatadogCore/Tests/Datadog/TracerTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -739,8 +739,8 @@ class TracerTests: XCTestCase {

// Then
let expectedHTTPHeaders1 = [
"x-datadog-trace-id": "64",
"x-datadog-parent-id": "c8",
"x-datadog-trace-id": "100",
"x-datadog-parent-id": "200",
"x-datadog-sampling-priority": "1",
"x-datadog-tags": "_dd.p.tid=a"
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,10 +219,10 @@ class TracingURLSessionHandlerTests: XCTestCase {
"X-B3-Sampled": "1",
"X-B3-TraceId": "000000000000000a0000000000000064",
"b3": "000000000000000a0000000000000064-0000000000000064-1",
"x-datadog-trace-id": "64",
"x-datadog-trace-id": "100",
"x-datadog-tags": "_dd.p.tid=a",
"tracestate": "dd=p:0000000000000064;s:1",
"x-datadog-parent-id": "64",
"x-datadog-parent-id": "100",
"x-datadog-sampling-priority": "1"
]
)
Expand Down
4 changes: 2 additions & 2 deletions DatadogCore/Tests/DatadogObjc/DDTracerTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -207,8 +207,8 @@ class DDTracerTests: XCTestCase {
try objcTracer.inject(objcSpanContext, format: OT.formatTextMap, carrier: objcWriter)

let expectedHTTPHeaders = [
"x-datadog-trace-id": "64",
"x-datadog-parent-id": "c8",
"x-datadog-trace-id": "100",
"x-datadog-parent-id": "200",
"x-datadog-sampling-priority": "1",
"x-datadog-tags": "_dd.p.tid=a"
]
Expand Down
2 changes: 1 addition & 1 deletion DatadogCrashReporting.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogCrashReporting"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Official Datadog Crash Reporting SDK for iOS."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogInternal.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogInternal"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Datadog Internal Package. This module is not for public use."

s.homepage = "https://www.datadoghq.com"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public class HTTPHeadersReader: TracePropagationHeadersReader {
public func read() -> (traceID: TraceID, spanID: SpanID, parentSpanID: SpanID?)? {
guard let traceIDLoValue = httpHeaderFields[TracingHTTPHeaders.traceIDField],
let spanIDValue = httpHeaderFields[TracingHTTPHeaders.parentSpanIDField],
let spanID = SpanID(spanIDValue, representation: .hexadecimal)
let spanID = SpanID(spanIDValue, representation: .decimal)
else {
return nil
}
Expand All @@ -34,7 +34,7 @@ public class HTTPHeadersReader: TracePropagationHeadersReader {

let traceID = TraceID(
idHi: UInt64(traceIDHiValue, radix: 16) ?? 0,
idLo: UInt64(traceIDLoValue, radix: 16) ?? 0
idLo: UInt64(traceIDLoValue, radix: 10) ?? 0
)

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ public class HTTPHeadersWriter: TracePropagationHeadersWriter {
]

if samplingPriority {
traceHeaderFields[TracingHTTPHeaders.traceIDField] = traceID.idLoHex
traceHeaderFields[TracingHTTPHeaders.parentSpanIDField] = String(spanID, representation: .hexadecimal)
traceHeaderFields[TracingHTTPHeaders.traceIDField] = String(traceID.idLo)
traceHeaderFields[TracingHTTPHeaders.parentSpanIDField] = String(spanID, representation: .decimal)
traceHeaderFields[TracingHTTPHeaders.tagsField] = "_dd.p.tid=\(traceID.idHiHex)"
}
}
Expand Down
2 changes: 1 addition & 1 deletion DatadogLogs.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogLogs"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Datadog Logs Module."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogObjc.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogObjc"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Official Datadog Objective-C SDK for iOS."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogRUM.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogRUM"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Datadog Real User Monitoring Module."

s.homepage = "https://www.datadoghq.com"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ class URLSessionRUMResourcesHandlerTests: XCTestCase {
)

XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.originField), "rum")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), "64")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), "100")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), "_dd.p.tid=a")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), "64")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), "100")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "1")
}

Expand Down Expand Up @@ -486,8 +486,8 @@ class URLSessionRUMResourcesHandlerTests: XCTestCase {
"X-B3-Sampled": "1",
"X-B3-TraceId": "000000000000000a0000000000000064",
"b3": "000000000000000a0000000000000064-0000000000000064-1",
"x-datadog-trace-id": "64",
"x-datadog-parent-id": "64",
"x-datadog-trace-id": "100",
"x-datadog-parent-id": "100",
"x-datadog-sampling-priority": "1",
"x-datadog-origin": "rum",
"x-datadog-tags": "_dd.p.tid=a"
Expand Down
2 changes: 1 addition & 1 deletion DatadogSDK.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogSDK"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Official Datadog Swift SDK for iOS."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogSDKAlamofireExtension.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "DatadogSDKAlamofireExtension"
s.module_name = "DatadogAlamofireExtension"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "An Official Extensions of Datadog Swift SDK for Alamofire."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogSDKCrashReporting.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "DatadogSDKCrashReporting"
s.module_name = "DatadogCrashReporting"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Official Datadog Crash Reporting SDK for iOS."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogSDKObjc.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "DatadogSDKObjc"
s.module_name = "DatadogObjc"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Official Datadog Objective-C SDK for iOS."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogSessionReplay.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogSessionReplay"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Official Datadog Session Replay SDK for iOS."

s.homepage = "https://www.datadoghq.com"
Expand Down
2 changes: 1 addition & 1 deletion DatadogTrace.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogTrace"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Datadog Trace Module."

s.homepage = "https://www.datadoghq.com"
Expand Down
8 changes: 4 additions & 4 deletions DatadogTrace/Tests/TracingURLSessionHandlerTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ class TracingURLSessionHandlerTests: XCTestCase {
]
)

XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), "64")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), "100")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), "_dd.p.tid=a")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), "64")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), "100")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "1")
XCTAssertEqual(request.value(forHTTPHeaderField: B3HTTPHeaders.Multiple.traceIDField), "000000000000000a0000000000000064")
XCTAssertEqual(request.value(forHTTPHeaderField: B3HTTPHeaders.Multiple.spanIDField), "0000000000000064")
Expand Down Expand Up @@ -173,9 +173,9 @@ class TracingURLSessionHandlerTests: XCTestCase {

span.finish()

XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), "64")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), "100")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), "_dd.p.tid=a")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), "65")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), "101")
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "1")
XCTAssertEqual(request.value(forHTTPHeaderField: B3HTTPHeaders.Multiple.traceIDField), "000000000000000a0000000000000064")
XCTAssertEqual(request.value(forHTTPHeaderField: B3HTTPHeaders.Multiple.spanIDField), "0000000000000065")
Expand Down
2 changes: 1 addition & 1 deletion DatadogWebViewTracking.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DatadogWebViewTracking"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Datadog WebView Tracking Module."

s.homepage = "https://www.datadoghq.com"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -409,14 +409,14 @@ class RUMResourcesScenarioTests: IntegrationTests, RUMCommonAsserts {

return .init(
idHi: UInt64(traceIDHiValue, radix: 16) ?? 0,
idLo: UInt64(traceIDLoValue, radix: 16) ?? 0
idLo: UInt64(traceIDLoValue, radix: 10) ?? 0
)
}
private func getSpanID(from request: Request) -> SpanID? {
guard let spanId = request.httpHeaders["x-datadog-parent-id"] else {
return nil
}
return .init(spanId, representation: .hexadecimal)
return .init(spanId, representation: .decimal)
}
private func isValid(sampleRate: Double) -> Bool { sampleRate >= 0 && sampleRate <= 1 }
}
Original file line number Diff line number Diff line change
Expand Up @@ -238,8 +238,9 @@ class TracingURLSessionScenarioTests: IntegrationTests, TracingCommonAsserts {
XCTAssertEqual(firstPartyRequests.count, 1)

let firstPartyRequest = firstPartyRequests[0]
XCTAssertEqual(firstPartyRequest.httpHeaders["x-datadog-trace-id"], try taskWithRequest.traceID()?.idLoHex)
XCTAssertEqual(firstPartyRequest.httpHeaders["x-datadog-parent-id"], try taskWithRequest.spanID()?.toString(representation: .hexadecimal))
let traceId = try taskWithRequest.traceID() ?? .invalid
XCTAssertEqual(firstPartyRequest.httpHeaders["x-datadog-trace-id"], String(traceId.idLo))
XCTAssertEqual(firstPartyRequest.httpHeaders["x-datadog-parent-id"], try taskWithRequest.spanID()?.toString(representation: .decimal))
XCTAssertEqual(firstPartyRequest.httpHeaders["x-datadog-sampling-priority"], "1")
XCTAssertNil(firstPartyRequest.httpHeaders["x-datadog-origin"])
let tid = try taskWithRequest.meta.tid()
Expand Down
2 changes: 1 addition & 1 deletion TestUtilities.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "TestUtilities"
s.version = "2.10.0"
s.version = "2.10.1"
s.summary = "Datadog Testing Utilities. This module is for internal testing and should not be published."

s.homepage = "https://www.datadoghq.com"
Expand Down

0 comments on commit 1a1881b

Please sign in to comment.