Skip to content

Commit 333c927

Browse files
committed
RUM-8448 Add ios.benchmark.bytes_uploaded
1 parent 447dfc2 commit 333c927

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

DatadogCore/Sources/Core/Upload/DataUploader.swift

+13-1
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,17 @@ internal final class DataUploader: DataUploaderType {
2626

2727
private let httpClient: HTTPClient
2828
private let requestBuilder: FeatureRequestBuilder
29+
/// Name of the feature this worker is performing uploads for.
30+
private let featureName: String
2931

30-
init(httpClient: HTTPClient, requestBuilder: FeatureRequestBuilder) {
32+
init(
33+
httpClient: HTTPClient,
34+
requestBuilder: FeatureRequestBuilder,
35+
featureName: String
36+
) {
3137
self.httpClient = httpClient
3238
self.requestBuilder = requestBuilder
39+
self.featureName = featureName
3340
}
3441

3542
/// Uploads data synchronously (will block current thread) and returns the upload status.
@@ -71,6 +78,11 @@ internal final class DataUploader: DataUploaderType {
7178

7279
_ = semaphore.wait(timeout: .distantFuture)
7380

81+
#if DD_BENCHMARK
82+
bench.meter.counter(metric: "ios.benchmark.bytes_uploaded")
83+
.increment(by: request.httpBody?.count ?? 0, attributes: ["track": featureName])
84+
#endif
85+
7486
return uploadStatus ?? DataUploader.unreachableUploadStatus
7587
}
7688
}

DatadogCore/Sources/Core/Upload/FeatureUpload.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ internal struct FeatureUpload {
3030

3131
let dataUploader = DataUploader(
3232
httpClient: httpClient,
33-
requestBuilder: requestBuilder
33+
requestBuilder: requestBuilder,
34+
featureName: featureName
3435
)
3536

3637
#if canImport(UIKit)

DatadogCore/Tests/Datadog/Core/Upload/DataUploadWorkerTests.swift

+2-1
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,8 @@ class DataUploadWorkerTests: XCTestCase {
765765

766766
let dataUploader = DataUploader(
767767
httpClient: httpClient,
768-
requestBuilder: FeatureRequestBuilderMock()
768+
requestBuilder: FeatureRequestBuilderMock(),
769+
featureName: .mockRandom()
769770
)
770771
let worker = DataUploadWorker(
771772
queue: uploaderQueue,

DatadogCore/Tests/Datadog/Core/Upload/DataUploaderTests.swift

+6-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ class DataUploaderTests: XCTestCase {
2121

2222
let uploader = DataUploader(
2323
httpClient: HTTPClientMock(response: randomResponse),
24-
requestBuilder: FeatureRequestBuilderMock(request: randomRequest)
24+
requestBuilder: FeatureRequestBuilderMock(request: randomRequest),
25+
featureName: .mockRandom()
2526
)
2627

2728
// When
@@ -50,7 +51,8 @@ class DataUploaderTests: XCTestCase {
5051

5152
let uploader = DataUploader(
5253
httpClient: HTTPClientMock(error: randomError),
53-
requestBuilder: FeatureRequestBuilderMock(request: randomRequest)
54+
requestBuilder: FeatureRequestBuilderMock(request: randomRequest),
55+
featureName: .mockRandom()
5456
)
5557

5658
// When
@@ -72,7 +74,8 @@ class DataUploaderTests: XCTestCase {
7274

7375
let uploader = DataUploader(
7476
httpClient: HTTPClientMock(),
75-
requestBuilder: FailingRequestBuilderMock(error: error)
77+
requestBuilder: FailingRequestBuilderMock(error: error),
78+
featureName: .mockRandom()
7679
)
7780

7881
// When & Then

0 commit comments

Comments
 (0)