Skip to content

Commit 968bf95

Browse files
authored
Merge pull request #2343 from DataDog/valpertui/RUM-10315/add-ap2-support
[RUM-10315] AP2 DC Support
2 parents 3bb247b + dd3e142 commit 968bf95

File tree

9 files changed

+25
-5
lines changed

9 files changed

+25
-5
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Unreleased
22

3+
- Support for AP2 Datacenter added. You can configure it setting `DatadogSite.ap2` on `Datadog.Configuration.site`.
4+
35
# 2.28.1 / 29-05-2025
46

57
- [FIX] Fix `RUMMethod` export from RUM. See [#2316][]

DatadogCore/Tests/Datadog/Core/DirectoriesTests.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,28 @@ class DirectoriesTests: XCTestCase {
2424

2525
func testWhenCreatingCoreDirectory_thenItsNameIsUniqueForClientTokenAndSite() throws {
2626
// Given
27-
let fixtures: [(instancenName: String, site: DatadogSite, expectedName: String)] = [
27+
let fixtures: [(instanceName: String, site: DatadogSite, expectedName: String)] = [
2828
("abcdef", .us1, "d5f91716d9c17bc76cb9931e1f9ff37724a27d4c05f1eb7081f59ea34d44c777"),
2929
("abcdef", .us3, "4a2e7e5b459af9976950e85463db2ba1e71500cdd77ead26b41559bf5a372dfb"),
3030
("abcdef", .us5, "38028ebbeab2aa980eab9e5a8ee714f93e8118621472697dabe084e6a9c55cd1"),
3131
("abcdef", .eu1, "ff203358d7d236d35dd6acbe6f74b2db17c5855c9a8c43d4f9c2d6869af413e9"),
3232
("abcdef", .ap1, "e7f8dbbceb3cb6c93d74a8fc6ba9c6a43c05c00b792b65b183f62edb98709c79"),
33+
("abcdef", .ap2, "2ec0ea56fdf0f78ddfdfc8bc1e03e8ea28814817e0dae3433f2da5038ccad17c"),
3334
("abcdef", .us1_fed, "2a69100a36ae68ad3b081daa4c254fcade6b804ec71eda9109b7ec4b8317940b"),
3435
("ghijkl", .us1, "158931c9e9576ef6ed1576721227d29e641e3f0ec2083e4bff280684f6b7ca94"),
3536
("ghijkl", .us3, "e098808a9b0e3695f6b876ff677e50aaf98034606369abeabd5df45bbe8bb739"),
3637
("ghijkl", .us5, "6212ba431e02e4da2da2f36a5fe9d26b4c33641a63be75c22e81196acfde7d91"),
3738
("ghijkl", .eu1, "16fbe70ae92694f96bb36021589ae2ae5f050872548c26fe320cde96eac81957"),
3839
("ghijkl", .ap1, "396717396bd53c4019640e9b6f6f1848f10fa95752c497d3a93de88e2600d550"),
40+
("ghijkl", .ap2, "904bd45213241e69c07b3918f39b1330f08cbbd2c828eeeff53fd4ed189a4a08"),
3941
("ghijkl", .us1_fed, "1585291b515c607624ed20935382bde4438ffac64f190b20a064eb6c1b734c6b"),
4042
]
4143

4244
// When
43-
let coreDirectories = try fixtures.map { instancenName, site, _ in
45+
let coreDirectories = try fixtures.map { instanceName, site, _ in
4446
try CoreDirectory(
4547
in: directory,
46-
instanceName: instancenName,
48+
instanceName: instanceName,
4749
site: site
4850
)
4951
}
@@ -54,7 +56,7 @@ class DirectoriesTests: XCTestCase {
5456
let directoryName = coreDirectory.coreDirectory.url.lastPathComponent
5557
XCTAssertEqual(directoryName, fixture.expectedName)
5658
XCTAssertFalse(
57-
directoryName.contains(fixture.instancenName),
59+
directoryName.contains(fixture.instanceName),
5860
"The core directory name must not include client token"
5961
)
6062
}

DatadogCore/Tests/DatadogObjc/DDConfigurationTests.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class DDConfigurationTests: XCTestCase {
3636
objcConfig.site = .ap1()
3737
XCTAssertEqual(objcConfig.sdkConfiguration.site, .ap1)
3838

39+
objcConfig.site = .ap2()
40+
XCTAssertEqual(objcConfig.sdkConfiguration.site, .ap2)
41+
3942
objcConfig.site = .us1()
4043
XCTAssertEqual(objcConfig.sdkConfiguration.site, .us1)
4144

DatadogInternal/Sources/Context/DatadogSite.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public enum DatadogSite: String {
2222
/// Asia based servers.
2323
/// Sends data to [ap1.datadoghq.com](https://ap1.datadoghq.com/).
2424
case ap1
25+
/// Asia based servers.
26+
/// Sends data to [ap2.datadoghq.com](https://ap2.datadoghq.com/).
27+
case ap2
2528
/// US based servers, FedRAMP compatible.
2629
/// Sends data to [app.ddog-gov.com](https://app.ddog-gov.com/).
2730
case us1_fed
@@ -48,6 +51,7 @@ extension DatadogSite {
4851
case .us5: return URL(string: "https://browser-intake-us5-datadoghq.com/")!
4952
case .eu1: return URL(string: "https://browser-intake-datadoghq.eu/")!
5053
case .ap1: return URL(string: "https://browser-intake-ap1-datadoghq.com/")!
54+
case .ap2: return URL(string: "https://browser-intake-ap2-datadoghq.com/")!
5155
case .us1_fed: return URL(string: "https://browser-intake-ddog-gov.com/")!
5256
// swiftlint:enable force_unwrapping
5357
}

DatadogObjc/Sources/DatadogConfiguration+objc.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public class DDSite: NSObject {
3333
@objc
3434
public static func ap1() -> DDSite { .init(sdkSite: .ap1) }
3535

36+
@objc
37+
public static func ap2() -> DDSite { .init(sdkSite: .ap2) }
38+
3639
@objc
3740
public static func us1_fed() -> DDSite { .init(sdkSite: .us1_fed) }
3841
}

DatadogRUM/Tests/Feature/RequestBuilderTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class RequestBuilderTests: XCTestCase {
5151
XCTAssertEqual(url(for: .us5), "https://browser-intake-us5-datadoghq.com/api/v2/rum")
5252
XCTAssertEqual(url(for: .eu1), "https://browser-intake-datadoghq.eu/api/v2/rum")
5353
XCTAssertEqual(url(for: .ap1), "https://browser-intake-ap1-datadoghq.com/api/v2/rum")
54+
XCTAssertEqual(url(for: .ap2), "https://browser-intake-ap2-datadoghq.com/api/v2/rum")
5455
XCTAssertEqual(url(for: .us1_fed), "https://browser-intake-ddog-gov.com/api/v2/rum")
5556
}
5657

@@ -76,6 +77,7 @@ class RequestBuilderTests: XCTestCase {
7677
XCTAssertEqual(url(for: .us5), expectedURL)
7778
XCTAssertEqual(url(for: .eu1), expectedURL)
7879
XCTAssertEqual(url(for: .ap1), expectedURL)
80+
XCTAssertEqual(url(for: .ap2), expectedURL)
7981
XCTAssertEqual(url(for: .us1_fed), expectedURL)
8082
}
8183

DatadogSessionReplay/Tests/Feature/RequestBuilder/ResourceRequestBuilderTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ class ResourceRequestBuilderTests: XCTestCase {
4747
XCTAssertEqual(try url(for: .us5), "https://browser-intake-us5-datadoghq.com/api/v2/replay")
4848
XCTAssertEqual(try url(for: .eu1), "https://browser-intake-datadoghq.eu/api/v2/replay")
4949
XCTAssertEqual(try url(for: .ap1), "https://browser-intake-ap1-datadoghq.com/api/v2/replay")
50+
XCTAssertEqual(try url(for: .ap2), "https://browser-intake-ap2-datadoghq.com/api/v2/replay")
5051
XCTAssertEqual(try url(for: .us1_fed), "https://browser-intake-ddog-gov.com/api/v2/replay")
5152
}
5253

@@ -68,6 +69,7 @@ class ResourceRequestBuilderTests: XCTestCase {
6869
XCTAssertEqual(try url(for: .us5), expectedURL)
6970
XCTAssertEqual(try url(for: .eu1), expectedURL)
7071
XCTAssertEqual(try url(for: .ap1), expectedURL)
72+
XCTAssertEqual(try url(for: .ap2), expectedURL)
7173
XCTAssertEqual(try url(for: .us1_fed), expectedURL)
7274
}
7375

DatadogSessionReplay/Tests/Feature/RequestBuilder/SegmentRequestBuilderTests.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class SegmentRequestBuilderTests: XCTestCase {
5151
XCTAssertEqual(try url(for: .us5), "https://browser-intake-us5-datadoghq.com/api/v2/replay")
5252
XCTAssertEqual(try url(for: .eu1), "https://browser-intake-datadoghq.eu/api/v2/replay")
5353
XCTAssertEqual(try url(for: .ap1), "https://browser-intake-ap1-datadoghq.com/api/v2/replay")
54+
XCTAssertEqual(try url(for: .ap2), "https://browser-intake-ap2-datadoghq.com/api/v2/replay")
5455
XCTAssertEqual(try url(for: .us1_fed), "https://browser-intake-ddog-gov.com/api/v2/replay")
5556
}
5657

@@ -72,6 +73,7 @@ class SegmentRequestBuilderTests: XCTestCase {
7273
XCTAssertEqual(try url(for: .us5), expectedURL)
7374
XCTAssertEqual(try url(for: .eu1), expectedURL)
7475
XCTAssertEqual(try url(for: .ap1), expectedURL)
76+
XCTAssertEqual(try url(for: .ap2), expectedURL)
7577
XCTAssertEqual(try url(for: .us1_fed), expectedURL)
7678
}
7779

TestUtilities/Sources/Mocks/DatadogInternal/DatadogContextMock.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ extension DatadogSite: AnyMockable, RandomMockable {
112112
}
113113

114114
public static func mockRandom() -> Self {
115-
return [.us1, .us3, .us5, .eu1, .ap1, .us1_fed].randomElement()!
115+
return [.us1, .us3, .us5, .eu1, .ap1, .ap2, .us1_fed].randomElement()!
116116
}
117117
}
118118

0 commit comments

Comments
 (0)