Skip to content

Commit 5d1c704

Browse files
committed
major refactor per PR comments
1 parent 95812a7 commit 5d1c704

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+245
-239
lines changed

Package.swift

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ let package = Package(
5454
.library(name: "SmithyWaitersAPI", targets: ["SmithyWaitersAPI"]),
5555
.library(name: "SmithyTestUtil", targets: ["SmithyTestUtil"]),
5656
.library(name: "SmithySwiftNIO", targets: ["SmithySwiftNIO"]),
57-
.library(name: "SmithyTelemetry", targets: ["SmithyTelemetry"]),
57+
.library(name: "SmithyTelemetryAPI", targets: ["SmithyTelemetryAPI"]),
5858
.library(name: "SmithyHTTPClientAPI", targets: ["SmithyHTTPClientAPI"]),
5959
],
6060
dependencies: {
@@ -79,7 +79,7 @@ let package = Package(
7979
]
8080
),
8181
.target(
82-
name: "SmithyTelemetry",
82+
name: "SmithyTelemetryAPI",
8383
dependencies: [
8484
"Smithy",
8585
]
@@ -89,15 +89,15 @@ let package = Package(
8989
dependencies: [
9090
"Smithy",
9191
"SmithyHTTPAPI",
92-
"SmithyTelemetry",
92+
"SmithyTelemetryAPI",
9393
.product(name: "AwsCommonRuntimeKit", package: "aws-crt-swift"),
9494
]
9595
),
9696
.target(
9797
name: "ClientRuntime",
9898
dependencies: [
9999
"Smithy",
100-
"SmithyTelemetry",
100+
"SmithyTelemetryAPI",
101101
"SmithyHTTPClientAPI",
102102
"SmithyRetriesAPI",
103103
"SmithyRetries",
@@ -149,10 +149,8 @@ let package = Package(
149149
dependencies: [
150150
"Smithy",
151151
"SmithyHTTPAPI",
152-
"SmithyHTTPClient",
153152
"SmithyStreams",
154153
"SmithyHTTPClientAPI",
155-
"ClientRuntime",
156154
.product(name: "AsyncHTTPClient", package: "async-http-client"),
157155
],
158156
path: "Sources/SmithySwiftNIO"

Sources/ClientRuntime/Config/DefaultSDKRuntimeConfiguration.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import protocol SmithyHTTPAuthAPI.AuthSchemeResolver
1313
import protocol SmithyHTTPAuthAPI.AuthSchemeResolverParameters
1414
import struct SmithyRetries.DefaultRetryStrategy
1515
import struct SmithyRetries.ExponentialBackoffStrategy
16+
import SmithyTelemetryAPI
1617
import protocol SmithyRetriesAPI.RetryErrorInfoProvider
1718
import protocol SmithyRetriesAPI.RetryStrategy
1819
import struct SmithyRetriesAPI.RetryStrategyOptions

Sources/ClientRuntime/Networking/Http/CRT/CRTClientEngine.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import enum SmithyHTTPAPI.HTTPStatusCode
2222
import class SmithyHTTPClientAPI.HttpTelemetry
2323
import enum SmithyHTTPClientAPI.HttpMetricsAttributesKeys
2424
import class SmithyStreams.BufferedStream
25+
import SmithyTelemetryAPI
2526
#if os(Linux)
2627
import Glibc
2728
#elseif !os(Windows)

Sources/ClientRuntime/Networking/Http/HttpClientConfiguration.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ import SmithyHTTPClientAPI
99

1010
/// Typealias for backward compatibility.
1111
/// The actual implementation is now in SmithyHTTPClientAPI.
12-
public typealias HttpClientConfiguration = SmithyHTTPClientAPI.HttpClientConfiguration
12+
public typealias HttpClientConfiguration = SmithyHTTPClientAPI.HTTPClientConfiguration

Sources/ClientRuntime/Networking/Http/URLSession/URLSessionHTTPClient.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import class Foundation.URLResponse
2929
import class Foundation.URLSession
3030
import class Foundation.URLSessionConfiguration
3131
import protocol Foundation.URLSessionDataDelegate
32+
import SmithyTelemetryAPI
3233
import class Foundation.URLSessionDataTask
3334
import class Foundation.URLSessionTask
3435
import class Foundation.URLSessionTaskMetrics

Sources/ClientRuntime/Plugins/TelemetryPlugin.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
// SPDX-License-Identifier: Apache-2.0
66
//
77

8+
import SmithyTelemetryAPI
9+
810
public class TelemetryPlugin: Plugin {
911
private let telemetryProvider: TelemetryProvider
1012

Sources/ClientRuntime/Telemetry/Context/TelemetryContext.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
// SPDX-License-Identifier: Apache-2.0
66
//
77

8-
import SmithyTelemetry
8+
import SmithyTelemetryAPI
99

1010
/// Typealias for backward compatibility.
11-
/// The actual implementation is now in SmithyTelemetry.
12-
public typealias TelemetryContext = SmithyTelemetry.TelemetryContext
11+
/// The actual implementation is now in SmithyTelemetryAPI.
12+
public typealias TelemetryContext = SmithyTelemetryAPI.TelemetryContext

Sources/ClientRuntime/Telemetry/Context/TelemetryContextManager.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
// SPDX-License-Identifier: Apache-2.0
66
//
77

8-
import SmithyTelemetry
8+
import SmithyTelemetryAPI
99

1010
/// Typealias for backward compatibility.
11-
/// The actual implementation is now in SmithyTelemetry.
12-
public typealias TelemetryContextManager = SmithyTelemetry.TelemetryContextManager
11+
/// The actual implementation is now in SmithyTelemetryAPI.
12+
public typealias TelemetryContextManager = SmithyTelemetryAPI.TelemetryContextManager

Sources/ClientRuntime/Telemetry/Context/TelemetryScope.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
// SPDX-License-Identifier: Apache-2.0
66
//
77

8-
import SmithyTelemetry
8+
import SmithyTelemetryAPI
99

1010
/// Typealias for backward compatibility.
11-
/// The actual implementation is now in SmithyTelemetry.
12-
public typealias TelemetryScope = SmithyTelemetry.TelemetryScope
11+
/// The actual implementation is now in SmithyTelemetryAPI.
12+
public typealias TelemetryScope = SmithyTelemetryAPI.TelemetryScope
Lines changed: 0 additions & 171 deletions
Original file line numberDiff line numberDiff line change
@@ -1,171 +0,0 @@
1-
//
2-
// Copyright Amazon.com Inc. or its affiliates.
3-
// All Rights Reserved.
4-
//
5-
// SPDX-License-Identifier: Apache-2.0
6-
//
7-
8-
import struct Smithy.AttributeKey
9-
import struct Smithy.Attributes
10-
import protocol Smithy.LogAgent
11-
import struct Smithy.SwiftLogger
12-
import SmithyTelemetry
13-
14-
/// Namespace for the Default SDK Telemetry implementations.
15-
public enum DefaultTelemetry: Sendable {
16-
/// The Default SDK Telemetry Provider Implementation.
17-
///
18-
/// - contextManager: no-op
19-
/// - loggerProvider: provides SwiftLoggers
20-
/// - meterProvider: no-op
21-
/// - tracerProvider: no-op
22-
public static let provider: TelemetryProvider = _DefaultTelemetryProvider()
23-
24-
fileprivate final class _DefaultTelemetryProvider: TelemetryProvider {
25-
let contextManager: TelemetryContextManager = defaultContextManager
26-
let loggerProvider: LoggerProvider = defaultLoggerProvider
27-
let meterProvider: MeterProvider = defaultMeterProvider
28-
let tracerProvider: TracerProvider = defaultTracerProvider
29-
}
30-
}
31-
32-
// Context
33-
extension DefaultTelemetry {
34-
public static let defaultContextManager: TelemetryContextManager = NoOpTelemetryContextManager()
35-
fileprivate static let defaultTelemetryContext: TelemetryContext = NoOpTelemetryContext()
36-
fileprivate static let defaultTelemetryScope: TelemetryScope = NoOpTelemetryScope()
37-
38-
fileprivate final class NoOpTelemetryContextManager: TelemetryContextManager {
39-
func current() -> TelemetryContext { defaultTelemetryContext }
40-
}
41-
42-
fileprivate final class NoOpTelemetryContext: TelemetryContext {
43-
func makeCurrent() -> TelemetryScope { defaultTelemetryScope }
44-
}
45-
46-
fileprivate final class NoOpTelemetryScope: TelemetryScope {
47-
func end() {}
48-
}
49-
}
50-
51-
// Logging
52-
extension DefaultTelemetry {
53-
public static let defaultLoggerProvider: LoggerProvider = _DefaultLoggerProvider()
54-
55-
fileprivate final class _DefaultLoggerProvider: LoggerProvider {
56-
func getLogger(name: String) -> LogAgent { SwiftLogger(label: name) }
57-
}
58-
}
59-
60-
// Metrics
61-
extension DefaultTelemetry {
62-
public static let defaultMeterProvider: MeterProvider = NoOpMeterProvider()
63-
fileprivate static let defaultMeter: Meter = NoOpMeter()
64-
fileprivate static let defaultAsyncMeasurementHandle: AsyncMeasurementHandle = NoOpAsyncMeasurementHandle()
65-
fileprivate static let defaultUpDownCounter: UpDownCounter = NoOpUpDownCounter()
66-
fileprivate static let defaultMonotonicCounter: MonotonicCounter = NoOpMonotonicCounter()
67-
fileprivate static let defaultHistogram: Histogram = NoOpHistogram()
68-
69-
fileprivate final class NoOpMeterProvider: MeterProvider {
70-
func getMeter(scope: String, attributes: Attributes?) -> Meter { defaultMeter }
71-
}
72-
73-
fileprivate final class NoOpMeter: Meter {
74-
func createGauge(
75-
name: String,
76-
callback: @escaping (any DoubleAsyncMeasurement) -> Void,
77-
units: String?,
78-
description: String?
79-
) -> AsyncMeasurementHandle {
80-
defaultAsyncMeasurementHandle
81-
}
82-
83-
func createUpDownCounter(
84-
name: String,
85-
units: String?,
86-
description: String?
87-
) -> UpDownCounter {
88-
defaultUpDownCounter
89-
}
90-
91-
func createAsyncUpDownCounter(
92-
name: String,
93-
callback: @escaping (any LongAsyncMeasurement) -> Void,
94-
units: String?,
95-
description: String?
96-
) -> AsyncMeasurementHandle {
97-
defaultAsyncMeasurementHandle
98-
}
99-
100-
func createCounter(
101-
name: String,
102-
units: String?,
103-
description: String?
104-
) -> MonotonicCounter {
105-
defaultMonotonicCounter
106-
}
107-
108-
func createAsyncMonotonicCounter(
109-
name: String,
110-
callback: @escaping (any LongAsyncMeasurement) -> Void,
111-
units: String?,
112-
description: String?
113-
) -> AsyncMeasurementHandle {
114-
defaultAsyncMeasurementHandle
115-
}
116-
117-
func createHistogram(
118-
name: String,
119-
units: String?,
120-
description: String?
121-
) -> Histogram {
122-
defaultHistogram
123-
}
124-
}
125-
126-
fileprivate final class NoOpAsyncMeasurementHandle: AsyncMeasurementHandle {
127-
func stop() {}
128-
}
129-
130-
fileprivate final class NoOpUpDownCounter: UpDownCounter {
131-
func add(value: Int, attributes: Attributes?, context: TelemetryContext?) {}
132-
}
133-
134-
fileprivate final class NoOpMonotonicCounter: MonotonicCounter {
135-
func add(value: Int, attributes: Attributes?, context: TelemetryContext?) {}
136-
}
137-
138-
fileprivate final class NoOpHistogram: Histogram {
139-
func record(value: Double, attributes: Attributes?, context: TelemetryContext?) {}
140-
}
141-
}
142-
143-
// Trace
144-
extension DefaultTelemetry {
145-
public static let defaultTracerProvider: TracerProvider = NoOpTracerProvider()
146-
fileprivate static let defaultTracer: Tracer = NoOpTracer()
147-
fileprivate static let defaultTraceSpan: TraceSpan = NoOpTraceSpan()
148-
149-
fileprivate final class NoOpTracerProvider: TracerProvider {
150-
func getTracer(scope: String) -> Tracer { defaultTracer }
151-
}
152-
153-
fileprivate final class NoOpTracer: Tracer {
154-
func createSpan(
155-
name: String,
156-
initialAttributes: Attributes?,
157-
spanKind: SpanKind,
158-
parentContext: TelemetryContext?
159-
) -> TraceSpan {
160-
defaultTraceSpan
161-
}
162-
}
163-
164-
fileprivate final class NoOpTraceSpan: TraceSpan {
165-
let name: String = ""
166-
func emitEvent(name: String, attributes: Attributes?) {}
167-
func setAttribute<T>(key: AttributeKey<T>, value: T) {}
168-
func setStatus(status: TraceSpanStatus) {}
169-
func end() {}
170-
}
171-
}

0 commit comments

Comments
 (0)