Skip to content

Commit 9b4a6f2

Browse files
feat!: Removes Instrumentation
The intent is to replace it with swift-distributed-tracing integration.
1 parent 9ec313a commit 9b4a6f2

File tree

11 files changed

+7
-559
lines changed

11 files changed

+7
-559
lines changed

MIGRATION.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ This was changed to `ConcurrentFieldExecutionStrategy`, and takes no parameters.
2020

2121
The `EventStream` abstraction used to provide pre-concurrency subscription support has been removed. This means that `graphqlSubscribe(...).stream` will now be an `AsyncThrowingStream<GraphQLResult, Error>` type, instead of an `EventStream` type, and that downcasting to `ConcurrentEventStream` is no longer necessary.
2222

23+
### Instrumentation removal
24+
25+
The `Instrumentation` type has been removed, with anticipated support for tracing using [`swift-distributed-tracing`](https://github.com/apple/swift-distributed-tracing). `instrumentation` arguments must be removed from `graphql` and `graphqlSubscribe` calls.
26+
2327
## 2 to 3
2428

2529
### TypeReference removal

Sources/GraphQL/Execution/Execute.swift

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ public final class ExecutionContext {
3131
let queryStrategy: QueryFieldExecutionStrategy
3232
let mutationStrategy: MutationFieldExecutionStrategy
3333
let subscriptionStrategy: SubscriptionFieldExecutionStrategy
34-
let instrumentation: Instrumentation
3534
public let schema: GraphQLSchema
3635
public let fragments: [String: FragmentDefinition]
3736
public let rootValue: Any
@@ -54,7 +53,6 @@ public final class ExecutionContext {
5453
queryStrategy: QueryFieldExecutionStrategy,
5554
mutationStrategy: MutationFieldExecutionStrategy,
5655
subscriptionStrategy: SubscriptionFieldExecutionStrategy,
57-
instrumentation: Instrumentation,
5856
schema: GraphQLSchema,
5957
fragments: [String: FragmentDefinition],
6058
rootValue: Any,
@@ -66,7 +64,6 @@ public final class ExecutionContext {
6664
self.queryStrategy = queryStrategy
6765
self.mutationStrategy = mutationStrategy
6866
self.subscriptionStrategy = subscriptionStrategy
69-
self.instrumentation = instrumentation
7067
self.schema = schema
7168
self.fragments = fragments
7269
self.rootValue = rootValue
@@ -180,15 +177,13 @@ func execute(
180177
queryStrategy: QueryFieldExecutionStrategy,
181178
mutationStrategy: MutationFieldExecutionStrategy,
182179
subscriptionStrategy: SubscriptionFieldExecutionStrategy,
183-
instrumentation: Instrumentation,
184180
schema: GraphQLSchema,
185181
documentAST: Document,
186182
rootValue: Any,
187183
context: Any,
188184
variableValues: [String: Map] = [:],
189185
operationName: String? = nil
190186
) async throws -> GraphQLResult {
191-
let executeStarted = instrumentation.now
192187
let buildContext: ExecutionContext
193188

194189
do {
@@ -198,7 +193,6 @@ func execute(
198193
queryStrategy: queryStrategy,
199194
mutationStrategy: mutationStrategy,
200195
subscriptionStrategy: subscriptionStrategy,
201-
instrumentation: instrumentation,
202196
schema: schema,
203197
documentAST: documentAST,
204198
rootValue: rootValue,
@@ -207,20 +201,6 @@ func execute(
207201
operationName: operationName
208202
)
209203
} catch let error as GraphQLError {
210-
instrumentation.operationExecution(
211-
processId: processId(),
212-
threadId: threadId(),
213-
started: executeStarted,
214-
finished: instrumentation.now,
215-
schema: schema,
216-
document: documentAST,
217-
rootValue: rootValue,
218-
variableValues: variableValues,
219-
operation: nil,
220-
errors: [error],
221-
result: nil
222-
)
223-
224204
return GraphQLResult(errors: [error])
225205
} catch {
226206
return GraphQLResult(errors: [GraphQLError(error)])
@@ -264,7 +244,6 @@ func buildExecutionContext(
264244
queryStrategy: QueryFieldExecutionStrategy,
265245
mutationStrategy: MutationFieldExecutionStrategy,
266246
subscriptionStrategy: SubscriptionFieldExecutionStrategy,
267-
instrumentation: Instrumentation,
268247
schema: GraphQLSchema,
269248
documentAST: Document,
270249
rootValue: Any,
@@ -318,7 +297,6 @@ func buildExecutionContext(
318297
queryStrategy: queryStrategy,
319298
mutationStrategy: mutationStrategy,
320299
subscriptionStrategy: subscriptionStrategy,
321-
instrumentation: instrumentation,
322300
schema: schema,
323301
fragments: fragments,
324302
rootValue: rootValue,
@@ -641,8 +619,6 @@ public func resolveField(
641619
variableValues: exeContext.variableValues
642620
)
643621

644-
// let resolveFieldStarted = exeContext.instrumentation.now
645-
646622
// Get the resolve func, regardless of if its result is normal
647623
// or abrupt (error).
648624
let result = await resolveOrError(
@@ -653,17 +629,6 @@ public func resolveField(
653629
info: info
654630
)
655631

656-
// exeContext.instrumentation.fieldResolution(
657-
// processId: processId(),
658-
// threadId: threadId(),
659-
// started: resolveFieldStarted,
660-
// finished: exeContext.instrumentation.now,
661-
// source: source,
662-
// args: args,
663-
// info: info,
664-
// result: result
665-
// )
666-
667632
return try await completeValueCatchingError(
668633
exeContext: exeContext,
669634
returnType: returnType,

Sources/GraphQL/GraphQL.swift

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ public struct SubscriptionResult {
6767
/// - parameter queryStrategy: The field execution strategy to use for query requests
6868
/// - parameter mutationStrategy: The field execution strategy to use for mutation requests
6969
/// - parameter subscriptionStrategy: The field execution strategy to use for subscription requests
70-
/// - parameter instrumentation: The instrumentation implementation to call during the parsing,
71-
/// validating, execution, and field resolution stages.
7270
/// - parameter schema: The GraphQL type system to use when validating and executing a
7371
/// query.
7472
/// - parameter request: A GraphQL language formatted string representing the requested
@@ -93,7 +91,6 @@ public func graphql(
9391
queryStrategy: QueryFieldExecutionStrategy = SerialFieldExecutionStrategy(),
9492
mutationStrategy: MutationFieldExecutionStrategy = SerialFieldExecutionStrategy(),
9593
subscriptionStrategy: SubscriptionFieldExecutionStrategy = SerialFieldExecutionStrategy(),
96-
instrumentation: Instrumentation = NoOpInstrumentation,
9794
validationRules: [(ValidationContext) -> Visitor] = [],
9895
schema: GraphQLSchema,
9996
request: String,
@@ -103,9 +100,8 @@ public func graphql(
103100
operationName: String? = nil
104101
) async throws -> GraphQLResult {
105102
let source = Source(body: request, name: "GraphQL request")
106-
let documentAST = try parse(instrumentation: instrumentation, source: source)
103+
let documentAST = try parse(source: source)
107104
let validationErrors = validate(
108-
instrumentation: instrumentation,
109105
schema: schema,
110106
ast: documentAST,
111107
rules: validationRules
@@ -119,7 +115,6 @@ public func graphql(
119115
queryStrategy: queryStrategy,
120116
mutationStrategy: mutationStrategy,
121117
subscriptionStrategy: subscriptionStrategy,
122-
instrumentation: instrumentation,
123118
schema: schema,
124119
documentAST: documentAST,
125120
rootValue: rootValue,
@@ -135,8 +130,6 @@ public func graphql(
135130
/// - parameter queryStrategy: The field execution strategy to use for query requests
136131
/// - parameter mutationStrategy: The field execution strategy to use for mutation requests
137132
/// - parameter subscriptionStrategy: The field execution strategy to use for subscription requests
138-
/// - parameter instrumentation: The instrumentation implementation to call during the parsing,
139-
/// validating, execution, and field resolution stages.
140133
/// - parameter queryRetrieval: The PersistedQueryRetrieval instance to use for looking up
141134
/// queries
142135
/// - parameter queryId: The id of the query to execute
@@ -160,7 +153,6 @@ public func graphql<Retrieval: PersistedQueryRetrieval>(
160153
queryStrategy: QueryFieldExecutionStrategy = SerialFieldExecutionStrategy(),
161154
mutationStrategy: MutationFieldExecutionStrategy = SerialFieldExecutionStrategy(),
162155
subscriptionStrategy: SubscriptionFieldExecutionStrategy = SerialFieldExecutionStrategy(),
163-
instrumentation: Instrumentation = NoOpInstrumentation,
164156
queryRetrieval: Retrieval,
165157
queryId: Retrieval.Id,
166158
rootValue: Any = (),
@@ -180,7 +172,6 @@ public func graphql<Retrieval: PersistedQueryRetrieval>(
180172
queryStrategy: queryStrategy,
181173
mutationStrategy: mutationStrategy,
182174
subscriptionStrategy: subscriptionStrategy,
183-
instrumentation: instrumentation,
184175
schema: schema,
185176
documentAST: documentAST,
186177
rootValue: rootValue,
@@ -202,8 +193,6 @@ public func graphql<Retrieval: PersistedQueryRetrieval>(
202193
/// - parameter queryStrategy: The field execution strategy to use for query requests
203194
/// - parameter mutationStrategy: The field execution strategy to use for mutation requests
204195
/// - parameter subscriptionStrategy: The field execution strategy to use for subscription requests
205-
/// - parameter instrumentation: The instrumentation implementation to call during the parsing,
206-
/// validating, execution, and field resolution stages.
207196
/// - parameter schema: The GraphQL type system to use when validating and executing a
208197
/// query.
209198
/// - parameter request: A GraphQL language formatted string representing the requested
@@ -232,7 +221,6 @@ public func graphqlSubscribe(
232221
queryStrategy: QueryFieldExecutionStrategy = SerialFieldExecutionStrategy(),
233222
mutationStrategy: MutationFieldExecutionStrategy = SerialFieldExecutionStrategy(),
234223
subscriptionStrategy: SubscriptionFieldExecutionStrategy = SerialFieldExecutionStrategy(),
235-
instrumentation: Instrumentation = NoOpInstrumentation,
236224
validationRules: [(ValidationContext) -> Visitor] = [],
237225
schema: GraphQLSchema,
238226
request: String,
@@ -242,9 +230,8 @@ public func graphqlSubscribe(
242230
operationName: String? = nil
243231
) async throws -> SubscriptionResult {
244232
let source = Source(body: request, name: "GraphQL Subscription request")
245-
let documentAST = try parse(instrumentation: instrumentation, source: source)
233+
let documentAST = try parse(source: source)
246234
let validationErrors = validate(
247-
instrumentation: instrumentation,
248235
schema: schema,
249236
ast: documentAST,
250237
rules: validationRules
@@ -258,7 +245,6 @@ public func graphqlSubscribe(
258245
queryStrategy: queryStrategy,
259246
mutationStrategy: mutationStrategy,
260247
subscriptionStrategy: subscriptionStrategy,
261-
instrumentation: instrumentation,
262248
schema: schema,
263249
documentAST: documentAST,
264250
rootValue: rootValue,

Sources/GraphQL/GraphQLRequest.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public struct GraphQLRequest: Equatable, Codable {
3737
/// - Returns: The operation type performed by the request
3838
public func operationType() throws -> OperationType {
3939
let documentAST = try GraphQL.parse(
40-
instrumentation: NoOpInstrumentation,
4140
source: Source(body: query, name: "GraphQL request")
4241
)
4342
let firstOperation = documentAST.definitions.compactMap { $0 as? OperationDefinition }.first

Sources/GraphQL/Instrumentation/DispatchQueueInstrumentationWrapper.swift

Lines changed: 0 additions & 136 deletions
This file was deleted.

0 commit comments

Comments
 (0)