From 47c37caf5db79af86f5f85161f393a547ec302eb Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Thu, 3 Nov 2022 14:46:42 +0900 Subject: [PATCH 01/14] WIP: revamp docs and final type renames --- README.md | 571 +----------------- Sources/Instrumentation/Instrument.swift | 2 +- .../InstrumentationSystem.swift | 10 +- .../Instrumentation/MultiplexInstrument.swift | 8 +- Sources/Instrumentation/NoOpInstrument.swift | 2 +- .../Docs.docc/Guides/ImplementATracer.md | 186 ++++++ .../Docs.docc/Guides/InstrumentYourLibrary.md | 98 +++ .../TraceYourApplication.md} | 204 ++----- Sources/Tracing/Docs.docc/TracerProtocol.md | 14 + Sources/Tracing/Docs.docc/index.md | 199 +----- .../InstrumentationSystem+Tracing.swift | 4 +- Sources/Tracing/NoOpTracer.swift | 2 +- Sources/Tracing/Tracer.swift | 8 +- .../InstrumentTests.swift | 4 +- .../InstrumentationSystemTests.swift | 6 +- Tests/TracingTests/TestTracer.swift | 2 +- Tests/TracingTests/TracedLockTests.swift | 2 +- .../TracingInstrumentationSystemTests.swift | 4 +- 18 files changed, 414 insertions(+), 912 deletions(-) create mode 100644 Sources/Tracing/Docs.docc/Guides/ImplementATracer.md create mode 100644 Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md rename Sources/Tracing/Docs.docc/{InDepthGuide.md => Guides/TraceYourApplication.md} (67%) create mode 100644 Sources/Tracing/Docs.docc/TracerProtocol.md diff --git a/README.md b/README.md index af37f765..87fcc398 100644 --- a/README.md +++ b/README.md @@ -4,54 +4,21 @@ A Distributed Tracing API for Swift. This is a collection of Swift libraries enabling the instrumentation of server side applications using tools such as tracers. Our goal is to provide a common foundation that allows to freely choose how to instrument systems with minimal changes to your actual code. -While Swift Distributed Tracing allows building all kinds of _instruments_, which can co-exist in applications transparently, its primary use is instrumenting multi-threaded and distributed systems with Distributed Traces. +While Swift Distributed Tracing allows building all kinds of _instruments_, which can co-exist in applications transparently, its primary use is instrumenting multi-threaded and distributed systems with "traces". +## Documentation ---- +Please refer to the docc generated [Reference Guide and API Documentation](TODO). -This project uses the context progagation type defined independently in: +## Dependencies -- 🧳 [swift-distributed-tracing-baggage](https://github.com/apple/swift-distributed-tracing-baggage) -- [`Baggage`](https://apple.github.io/swift-distributed-tracing-baggage/docs/current/InstrumentationBaggage/Structs/Baggage.html) (zero dependencies) - ---- - -## Table of Contents - -* [Compatibility](#compatibility) - + [Tracing Backends](#tracing-backends) - + [Libraries & Frameworks](#libraries--frameworks) -* [Getting Started](#getting-started) - + [Dependencies & Tracer backend](#dependencies--tracer-backend) - + [Benefiting from instrumented libraries/frameworks](#benefiting-from-instrumented-libraries-frameworks) - + [Instrumenting your code](#instrumenting-your-code) - + [More examples](#more-examples) -* [In-Depth Guide](#in-depth-guide) -* In-Depth Guide for **Application Developers** - + [Setting up instruments & tracers](#setting-up-instruments--tracers) - + [Bootstrapping the InstrumentationSystem](#bootstrapping-the-instrumentationsystem) - + [Context propagation](#passing-context-objects) - + [Creating context objects](#creating-context-objects--and-when-not-to-do-so-) - + [Working with `Span`s](#spans) -* In-Depth Guide for: **Library/Framework developers** - + [Instrumenting your software](#library-framework-developers--instrumenting-your-software) - + [Extracting & injecting Baggage](#extracting--injecting-baggage) - + [Tracing your library](#tracing-your-library) -* In-Depth Guide for: **Instrument developers** - + [Creating an `Instrument`](#instrument-developers--creating-an-instrument) - + [Creating a `Tracer`](#creating-a--tracer-) -* [Contributing](#contributing) - ---- - -## Compatibility +This project uses the context propagation type defined independently in: -This project is designed in a very open and extensible manner, such that various instrumentation and tracing systems can be built on top of it. - -The purpose of the tracing package is to serve as common API for all tracer and instrumentation implementations. Thanks to this, libraries may only need to be instrumented once, and then be used with any tracer which conforms to this API. +- 🧳 [swift-distributed-tracing-baggage](https://github.com/apple/swift-distributed-tracing-baggage) -- [`Baggage`](https://apple.github.io/swift-distributed-tracing-baggage/docs/current/InstrumentationBaggage/Structs/Baggage.html) (zero dependencies) -### Tracing Backends - +## Implementations + Compatible `Tracer` implementations: | Library | Status | Description | @@ -62,9 +29,22 @@ Compatible `Tracer` implementations: If you know of any other library please send in a [pull request](https://github.com/apple/swift-distributed-tracing/compare) to add it to the list, thank you! -### Libraries & Frameworks +## Libraries & Frameworks + +For distributed tracing to be most useful, it needs to be integrated in libraries, especially those serving to inter-connect different processes such as HTTP, or other RPC clients/servers. This then enables end users to reap the benefits of automatic trace propagation across nodes in a system, as well as restoring baggage when incoming messages are received by such library/framework. + +The table below illustrates the + +| Library | Status | Baggage propagation | Automatic spans (e.g. "request" span) | +|--------------------------------------------------|-------------------------------------------------------------|-------------------|-----------------------------------------------------------| +| [Swift gRPC](https://github.com/grpc/grpc-swift) | [PR - in progress](https://github.com/grpc/grpc-swift/pull/1510) | WIP | Pending | | +| _Your library?_ | ... | ... |[Get in touch!](https://forums.swift.org/c/server/43) | -As this API package was just released, no projects have yet fully adopted it, the following table for not serves as reference to prior work in adopting tracing work. As projects move to adopt tracing completely, the table will be used to track adoption phases of the various libraries. + +### Legacy PoC integrations + +Previously, before Swift shipped Task Local Values, a number of proof of concept integrations was implemented. +You can refer to them below, and potentially orchestrate efforts to mature those integrations to use the 1.0 version of distributed tracing, at which point those projects **may** adopt it in their primary releases: | Library | Integrates | Status | | ------- | ---------- | ------ | @@ -82,507 +62,6 @@ As this API package was just released, no projects have yet fully adopted it, th If you know of any other library please send in a [pull request](https://github.com/apple/swift-distributed-tracing/compare) to add it to the list, thank you! ---- - -## Getting Started - -In this short getting started example, we'll go through bootstrapping, immediately benefiting from tracing, and instrumenting our own synchronous and asynchronous APIs. The following sections will explain all the pieces of the API in more depth. When in doubt, you may want to refer to the [OpenTelemetry](https://opentelemetry.io), [Zipkin](https://zipkin.io), or [Jaeger](https://www.jaegertracing.io) documentations because all the concepts for different tracers are quite similar. - -### Dependencies & Tracer backend - -In order to use tracing you will need to bootstrap a tracing backend ([available backends](#backends)). - -When developing an *application* locate the specific tracer library you would like to use and add it as an dependency directly: - -```swift -.package(url: "", // the specific tracer - ] -), -``` - -Then (in an application, libraries should _never_ invoke `bootstrap`), you will want to bootstrap the specific tracer you want to use in your application. A `Tracer` is a type of `Instrument` and can be offered used to globally bootstrap the tracing system, like this: - - -```swift -import Tracing // the tracing API -import AwesomeTracing // the specific tracer - -InstrumentationSystem.bootstrap(AwesomeTracing()) -``` - -If you don't bootstrap (or other instrument) the default no-op tracer is used, which will result in no trace data being collected. - -### Benefiting from instrumented libraries/frameworks - -**Automatically reported spans**: When using an already instrumented library, e.g. an HTTP Server which automatically emits spans internally, this is all you have to do to enable tracing. It should now automatically record and emit spans using your configured backend. - -**Using baggage and logging context**: The primary transport type for tracing metadata is called `Baggage`, and the primary type used to pass around baggage context and loggers is `LoggingContext`. Logging context combines baggage context values with a smart `Logger` that automatically includes any baggage values ("trace metadata") when it is used for logging. For example, when using an instrumented HTTP server, the API could look like this: - -```swift -SomeHTTPLibrary.handle { (request, context) in - context.logger.info("Wow, tracing!") // automatically includes tracing metadata such as "trace-id" - return try doSomething(request context: context) -} -``` - -In this snippet, we use the context logger to log a very useful message. However it is even more useful than it seems at first sight: if a tracer was installed and extracted tracing information from the incoming request, it would automatically log our message _with_ the trace information, allowing us to co-relate all log statements made during handling of this specific request: - -``` -05:46:38 example-trace-id=1111-23-1234556 info: Wow tracing! -05:46:38 example-trace-id=9999-22-9879797 info: Wow tracing! -05:46:38 example-trace-id=9999-22-9879797 user=Alice info: doSomething() for user Alice -05:46:38 example-trace-id=1111-23-1234556 user=Charlie info: doSomething() for user Charlie -05:46:38 example-trace-id=1111-23-1234556 user=Charlie error: doSomething() could not complete request! -05:46:38 example-trace-id=9999-22-9879797 user=alice info: doSomething() completed -``` - -Thanks to tracing, and trace identifiers, even if not using tracing visualization libraries, we can immediately co-relate log statements and know that the request `1111-23-1234556` has failed. Since our application can also _add_ values to the context, we can quickly notice that the error seems to occur for the user `Charlie` and not for user `Alice`. Perhaps the user Charlie has exceeded some quotas, does not have permissions or we have a bug in parsing names that include the letter `h`? We don't know _yet_, but thanks to tracing we can much quicker begin our investigation. - -**Passing context to client libraries**: When using client libraries that support distributed tracing, they will accept a `Baggage.LoggingContext` type as their _last_ parameter in many calls. - -When using client libraries that support distributed tracing, they will accept a `Baggage.LoggingContext` type as their _last_ parameter in many calls. Please refer to [Context argument naming/positioning](#context-propagation-by-explicit-loggingcontext-passing) in the [Context propagation](#context-propagation-by-explicit-loggingcontext-passing) section of this readme to learn more about how to properly pass context values around. - -### Instrumenting your code - -Adding a span to synchronous functions can be achieved like this: - -```swift -func handleRequest(_ op: String, context: LoggingContext) -> String { - let tracer = InstrumentationSystem.tracer - let span = tracer.startSpan(operationName: "handleRequest(\(name))", context: context) - defer { span.end() } - - return "done:\(op)" -} -``` - -Throwing can be handled by either recording errors manually into a span by calling `span.recordError(error:)`, or by wrapping a potentially throwing operation using the `withSpan(operation:context:body:)` function, which automatically records any thrown error and ends the span at the end of the body closure scope: - -```swift -func handleRequest(_ op: String, context: LoggingContext) -> String { - return try InstrumentationSystem.tracer - .withSpan(operationName: "handleRequest(\(name))", context: context) { - return try dangerousOperation() - } -} -``` - -If this function were asynchronous, and returning a [Swift NIO](https://github.com/apple/swift-nio) `EventLoopFuture`, -we need to end the span when the future completes. We can do so in its `onComplete`: - -```swift -func handleRequest(_ op: String, context: LoggingContext) -> EventLoopFuture { - let tracer = InstrumentationSystem.tracer - let span = tracer.startSpan(operationName: "handleRequest(\(name))", context: context) - - let future: EventLoopFuture = someOperation(op) - future.whenComplete { _ in - span.end() // oh no, ignored errors! - } - - return future -} -``` - -This is better, however we ignored the possibility that the future perhaps has failed. If this happens, we would like to report the span as _errored_ because then it will show up as such in tracing backends and we can then easily search for failed operations etc. - -To do this within the future we could manually invoke the `span.recordError` API before ending the span like this: - -```swift -func handleRequest(_ op: String, context: LoggingContext) -> EventLoopFuture { - let tracer = InstrumentationSystem.tracer - let span = tracer.startSpan(operationName: "handleRequest(\(name))", context: context) - - let future: EventLoopFuture = someOperation(op) - future.whenComplete { result in - switch result { - case .failure(let error): span.recordError(error) - case .success(let value): // ... record additional *attributes* into the span - } - span.end() - } - - return future -} -``` - -While this is verbose, this is only the low-level building blocks that this library provides, higher level helper utilities can be - -> Eventually convenience wrappers will be provided, automatically wrapping future types etc. We welcome such contributions, but likely they should live in `swift-distributed-tracing-extras`. - -Once a system, or multiple systems have been instrumented, a Tracer has been selected and your application runs and emits some trace information, you will be able to inspect how your application is behaving by looking at one of the various trace UIs, such as e.g. Zipkin: - -![Simple example trace in Zipkin Web UI](Sources/Tracing/Docs.docc/Resources/zipkin_trace.png) - -### More examples - -It sometimes is easier to grasp the usage of tracing by looking at a "real" application - which is why we have implemented an example application, spanning multiple nodes and using various databases - tracing through all of them. You can view the example application here: [slashmo/swift-tracing-examples](https://github.com/slashmo/swift-tracing-examples/tree/main/hotrod). - -### Future work: Tracing asynchronous functions - -> ⚠️ This section refers to in-development upcoming Swift Concurrency features and can be tried out using nightly snapshots of the Swift toolchain. - -With Swift's ongoing work towards asynchronous functions, actors, and tasks, tracing in Swift will become more pleasant than it is today. - -Firstly, a lot of the callback heavy code will be folded into normal control flow, which is easy and correct to integrate with tracing like this: - -```swift -func perform(context: LoggingContext) async -> String { - let span = InstrumentationSystem.tracer.startSpan(operationName: #function, context: context) - defer { span.end() } - - return await someWork() -} -``` - - -## In-Depth Guide - -When instrumenting server applications there are typically three parties involved: - -1. [Application developers](#application-developers-setting-up-instruments) creating server-side applications -2. [Library/Framework developers](#libraryframework-developers-instrumenting-your-software) providing building blocks to create these applications -3. [Instrument developers](#instrument-developers-creating-an-instrument) providing tools to collect distributed metadata about your application - -For applications to be instrumented correctly these three parts have to play along nicely. - -## Application Developers - -### Setting up instruments & tracers - -As an end-user building server applications you get to choose what instruments to use to instrument your system. Here's -all the steps you need to take to get up and running: - -Add a package dependency for this repository in your `Package.swift` file, and one for the specific instrument you want -to use, in this case `FancyInstrument`: - -```swift -.package(url: "https://github.com/apple/swift-distributed-tracing.git", .branch("main")), -.package(url: "", from: "<4.2.0>"), -``` - -To your main target, add a dependency on the `Instrumentation library` and the instrument you want to use: - -```swift -.target( - name: "MyApplication", - dependencies: [ - "FancyInstrument" - ] -), -``` - -### Bootstrapping the `InstrumentationSystem` - -Instead of providing each instrumented library with a specific instrument explicitly, you *bootstrap* the -`InstrumentationSystem` which acts as a singleton that libraries/frameworks access when calling out to the configured -`Instrument`: - -```swift -InstrumentationSystem.bootstrap(FancyInstrument()) -``` - -#### Recommended bootstrap order - -Swift offers developers a suite of observability libraries: logging, metrics and tracing. Each of those systems offers a `bootstrap` function. It is useful to stick to a recommended boot order in order to achieve predictable initialization of applications and sub-systems. - -Specifically, it is recommended to bootstrap systems in the following order: - -1. [Swift Log](https://github.com/apple/swift-log#default-logger-behavior)'s `LoggingSystem` -2. [Swift Metrics](https://github.com/apple/swift-metrics#selecting-a-metrics-backend-implementation-applications-only)' `MetricsSystem` -3. Swift Tracing's `InstrumentationSystem` -4. Finally, any other parts of your application - -This is because tracing systems may attempt to emit metrics about their status etc. - -#### Bootstrapping multiple instruments using MultiplexInstrument - -It is important to note that `InstrumentationSystem.bootstrap(_: Instrument)` must only be called once. In case you -want to bootstrap the system to use multiple instruments, you group them in a `MultiplexInstrument` first, which you -then pass along to the `bootstrap` method like this: - -```swift -InstrumentationSystem.bootstrap(MultiplexInstrument([FancyInstrument(), OtherFancyInstrument()])) -``` - -`MultiplexInstrument` will then call out to each instrument it has been initialized with. - - - -### Context propagation, by explicit `LoggingContext` passing - -> `LoggingContext` naming has been carefully selected and it reflects the type's purpose and utility: It binds a [Swift Log `Logger`](https://github.com/apple/swift-log) with an associated distributed tracing [Baggage](https://github.com/apple/swift-distributed-tracing-baggage). -> -> It _also_ is used for tracing, by tracers reaching in to read or modify the carried baggage. - -For instrumentation and tracing to work, certain pieces of metadata (usually in the form of identifiers), must be -carried throughout the entire system–including across process and service boundaries. Because of that, it's essential -for a context object to be passed around your application and the libraries/frameworks you depend on, but also carried -over asynchronous boundaries like an HTTP call to another service of your app. - -`LoggingContext` should always be passed around explicitly. - -Libraries which support tracing are expected to accept a `LoggingContext` parameter, which can be passed through the entire application. Make sure to always pass along the context that's previously handed to you. E.g., when making an HTTP request using `AsyncHTTPClient` in a `NIO` handler, you can use the `ChannelHandlerContext`s `baggage` property to access the `LoggingContext`. - -#### Context argument naming/positioning - -> 💡 This general style recommendation has been ironed out together with the Swift standard library, core team, the SSWG as well as members of the community. Please respect these recommendations when designing APIs such that all APIs are able to "feel the same" yielding a great user experience for our end users ❤️ -> -> It is possible that the ongoing Swift Concurrency efforts, and "Task Local" values will resolve this explicit context passing problem, however until these arrive in the language, please adopt the "context is the last parameter" style as outlined here. - -Propagating baggage context through your system is to be done explicitly, meaning as a parameter in function calls, following the "flow" of execution. - -When passing baggage context explicitly we strongly suggest sticking to the following style guideline: - -- Assuming the general parameter ordering of Swift function is as follows (except DSL exceptions): - 1. Required non-function parameters (e.g. `(url: String)`), - 2. Defaulted non-function parameters (e.g. `(mode: Mode = .default)`), - 3. Required function parameters, including required trailing closures (e.g. `(onNext elementHandler: (Value) -> ())`), - 4. Defaulted function parameters, including optional trailing closures (e.g. `(onComplete completionHandler: (Reason) -> ()) = { _ in }`). -- Logging Context should be passed as **the last parameter in the required non-function parameters group in a function declaration**. - -This way when reading the call side, users of these APIs can learn to "ignore" or "skim over" the context parameter and the method signature remains human-readable and “Swifty”. - -Examples: - -- `func request(_ url: URL,` **`context: LoggingContext`** `)`, which may be called as `httpClient.request(url, context: context)` -- `func handle(_ request: RequestObject,` **`context: LoggingContext`** `)` - - if a "framework context" exists and _carries_ the baggage context already, it is permitted to pass that context - together with the baggage; - - it is _strongly recommended_ to store the baggage context as `baggage` property of `FrameworkContext`, and conform `FrameworkContext` to `LoggingContext` in such cases, in order to avoid the confusing spelling of `context.context`, and favoring the self-explanatory `context.baggage` spelling when the baggage is contained in a framework context object. -- `func receiveMessage(_ message: Message, context: FrameworkContext)` -- `func handle(element: Element,` **`context: LoggingContext`** `, settings: Settings? = nil)` - - before any defaulted non-function parameters -- `func handle(element: Element,` **`context: LoggingContext`** `, settings: Settings? = nil, onComplete: () -> ())` - - before defaulted parameters, which themselfes are before required function parameters -- `func handle(element: Element,` **`context: LoggingContext`** `, onError: (Error) -> (), onComplete: (() -> ())? = nil)` - -In case there are _multiple_ "framework-ish" parameters, such as passing a NIO `EventLoop` or similar, we suggest: - -- `func perform(_ work: Work, for user: User,` _`frameworkThing: Thing, eventLoop: NIO.EventLoop,`_ **`context: LoggingContext`** `)` - - pass the baggage as **last** of such non-domain specific parameters as it will be _by far more_ omnipresent than any - specific framework parameter - as it is expected that any framework should be accepting a context if it can do so. - While not all libraries are necessarily going to be implemented using the same frameworks. - -We feel it is important to preserve Swift's human-readable nature of function definitions. In other words, we intend to -keep the read-out-loud phrasing of methods to remain _"request that URL (ignore reading out loud the context parameter)"_ -rather than _"request (ignore this context parameter when reading) that URL"_. - -#### When to use what context type? - -Generally libraries should favor accepting the general `LoggingContext` type, and **not** attempt to wrap it, as it will result in difficult to compose APIs between multiple libraries. Because end users are likely going to be combining various libraries in a single application, it is important that they can "just pass along" the same context object through all APIs, regardless which other library they are calling into. - -Frameworks may need to be more opinionated here, and e.g. already have some form of "per request context" contextual object which they will conform to `LoggingContext`. _Within_ such framework it is fine and expected to accept and pass the explicit `SomeFrameworkContext`, however when designing APIs which may be called _by_ other libraries, such framework should be able to accept a generic `LoggingContext` rather than its own specific type. - -#### Existing context argument - -When adapting an existing library/framework to support `LoggingContext` and it already has a "framework context" which is expected to be passed through "everywhere", we suggest to follow these guidelines for adopting LoggingContext: - -1. Add a `Baggage` as a property called `baggage` to your own `context` type, so that the call side for your - users becomes `context.baggage` (rather than the confusing `context.context`) -2. If you cannot or it would not make sense to carry baggage inside your framework's context object, pass (and accept (!)) the `LoggingContext` in your framework functions like follows: -- if they take no framework context, accept a `context: LoggingContext` which is the same guideline as for all other cases -- if they already _must_ take a context object and you are out of words (or your API already accepts your framework context as "context"), pass the baggage as **last** parameter (see above) yet call the parameter `baggage` to disambiguate your `context` object from the `baggage` context object. - -Examples: - -- `Lambda.Context` may contain `baggage` and a `logger` and should be able to conform to `LoggingContext` - - passing context to a `Lambda.Context` unaware library becomes: `http.request(url: "...", context: context)`. -- `ChannelHandlerContext` offers a way to set/get baggage on the underlying channel via `context.baggage = ...` - - this context is not passed outside a handler, but within it may be passed as is, and the baggage may be accessed on it directly through it. - - Example: https://github.com/apple/swift-nio/pull/1574 - -### Creating context objects (and when not to do so) - -Generally application developers _should not_ create new context objects, but rather keep passing on a context value that they were given by e.g. the web framework invoking the their code. - -If really necessary, or for the purposes of testing, one can create a baggage or context using one of the two factory functions: - -- [`DefaultLoggingContext.topLevel(logger:)`](https://github.com/apple/swift-distributed-tracing-baggage/blob/main/Sources/Baggage/LoggingContext.swift) or [`Baggage.topLevel`](https://github.com/apple/swift-distributed-tracing-baggage-core/blob/main/Sources/CoreBaggage/Baggage.swift) - which creates an empty context/baggage, without any values. It should _not_ be used too frequently, and as the name implies in applications it only should be used on the "top level" of the application, or at the beginning of a contextless (e.g. timer triggered) event processing. -- [`DefaultLoggingContext.TODO(logger:reason:)`](https://github.com/apple/swift-distributed-tracing-baggage/blob/main/Sources/Baggage/LoggingContext.swift) or [`Baggage.TODO`](https://github.com/apple/swift-distributed-tracing-baggage-core/blob/main/Sources/CoreBaggage/Baggage.swift) - which should be used to mark a parameter where "before this code goes into production, a real context should be passed instead." An application can be run with `-DBAGGAGE_CRASH_TODOS` to cause the application to crash whenever a TODO context is still in use somewhere, making it easy to diagnose and avoid breaking context propagation by accidentally leaving in a `TODO` context in production. - -Please refer to the respective functions documentation for details. - -If using a framework which itself has a "`...Context`" object you may want to inspect it for similar factory functions, as `LoggingContext` is a protocol, that may be conformed to by frameworks to provide a smoother user experience. - - -### Working with `Span`s - -The primary purpose of this API is to start and end so-called `Span` types. - -Spans form hierarchies with their parent spans, and end up being visualized using various tools, usually in a format similar to gant charts. So for example, if we had multiple operations that compose making dinner, they would be modelled as child spans of a main `makeDinner` span. Any sub tasks are again modelled as child spans of any given operation, and so on, resulting in a trace view similar to: - -``` ->-o-o-o----- makeDinner ----------------o---------------x [15s] - \-|-|- chopVegetables--------x | [2s] - | | \- chop -x | | [1s] - | | \--- chop -x | [1s] - \-|- marinateMeat -----------x | [3s] - \- preheatOven -----------------x | [10s] - \--cook---------x [5s] -``` - -The above trace is achieved by starting and ending spans in all the mentioned functions, for example, like this: - -```swift -let tracer: Tracer - -func makeDinner(context: LoggingContext) async throws -> Meal { - tracer.withSpan(operationName: "makeDinner", context) { - let veggiesFuture = try chopVegetables(context: span.context) - let meatFuture = marinateMeat(context: span.context) - let ovenFuture = try preheatOven(temperature: 350, context: span.context) - ... - return cook(veggies, meat, oven) - } -} -``` - -> ❗️ It is tremendously important to **always `end()` a started `Span`**! make sure to end any started span on _every_ code path, including error paths -> -> Failing to do so is an error, and a tracer *may* decide to either crash the application or log warnings when an not-ended span is deinitialized. - - -## Library/Framework developers: Instrumenting your software - -### Extracting & injecting Baggage - -When hitting boundaries like an outgoing HTTP request you call out to the [configured instrument(s)](#Bootstrapping-the-Instrumentation-System): - -An HTTP client e.g. should inject the given `LoggingContext` into the HTTP headers of its outbound request: - -```swift -func get(url: String, context: LoggingContext) { - var request = HTTPRequest(url: url) - InstrumentationSystem.instrument.inject( - context.baggage, - into: &request.headers, - using: HTTPHeadersInjector() - ) -} -``` - -On the receiving side, an HTTP server should use the following `Instrument` API to extract the HTTP headers of the given -`HTTPRequest` into: - -```swift -func handler(request: HTTPRequest, context: LoggingContext) { - InstrumentationSystem.instrument.extract( - request.headers, - into: &context.baggage, - using: HTTPHeadersExtractor() - ) - // ... -} -``` - -> In case your library makes use of the `NIOHTTP1.HTTPHeaders` type we already have an `HTTPHeadersInjector` & -`HTTPHeadersExtractor` available as part of the `NIOInstrumentation` library. - -For your library/framework to be able to carry `LoggingContext` across asynchronous boundaries, it's crucial that you carry the context throughout your entire call chain in order to avoid dropping metadata. - -### Tracing your library - -When your library/framework can benefit from tracing, you should make use of it by integrating the `Tracing` library. - -In order to work with the tracer [configured by the end-user](#Bootstrapping-the-Instrumentation-System), it adds a property to `InstrumentationSystem` that gives you back a `Tracer`. You can then use that tracer to start `Span`s. In an HTTP client you e.g. -should start a `Span` when sending the outgoing HTTP request: - -```swift -func get(url: String, context: LoggingContext) { - var request = HTTPRequest(url: url) - - // inject the request headers into the baggage as explained above - - // start a span for the outgoing request - let tracer = InstrumentationSystem.tracer - var span = tracer.startSpan(named: "HTTP GET", context: context, ofKind: .client) - - // set attributes on the span - span.attributes.http.method = "GET" - // ... - - self.execute(request).always { _ in - // set some more attributes & potentially record an error - - // end the span - span.end() - } -} -``` - -> ⚠️ Make sure to ALWAYS end spans. Ensure that all paths taken by the code will result in ending the span. -> Make sure that error cases also set the error attribute and end the span. - -> In the above example we used the semantic `http.method` attribute that gets exposed via the -`TracingOpenTelemetrySupport` library. - -## Instrument developers: Creating an instrument - -Creating an instrument means adopting the `Instrument` protocol (or `Tracer` in case you develop a tracer). -`Instrument` is part of the `Instrumentation` library & `Tracing` contains the `Tracer` protocol. - -`Instrument` has two requirements: - -1. A method to inject values inside a `LoggingContext` into a generic carrier (e.g. HTTP headers) -2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `LoggingContext` - -The two methods will be called by instrumented libraries/frameworks at asynchronous boundaries, giving you a chance to -act on the provided information or to add additional information to be carried across these boundaries. - -> Check out the [`Baggage` documentation](https://github.com/apple/swift-distributed-tracing-baggage) for more information on -how to retrieve values from the `LoggingContext` and how to set values on it. - -### Creating a `Tracer` - -When creating a tracer you need to create two types: - -1. Your tracer conforming to `Tracer` -2. A span class conforming to `Span` - -> The `Span` conforms to the standard rules defined in [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/v0.7.0/specification/trace/api.md#span), so if unsure about usage patterns, you can refer to this specification and examples referring to it. - -### Defining, injecting and extracting Baggage - -```swift -import Tracing - -private enum TraceIDKey: BaggageKey { - typealias Value = String -} - -extension Baggage { - var traceID: String? { - get { - return self[TraceIDKey.self] - } - set { - self[TraceIDKey.self] = newValue - } - } -} - -var context = DefaultLoggingContext.topLevel(logger: ...) -context.baggage.traceID = "4bf92f3577b34da6a3ce929d0e0e4736" -print(context.baggage.traceID ?? "new trace id") -``` - ## Contributing Please make sure to run the `./scripts/soundness.sh` script when contributing, it checks formatting and similar things. @@ -598,3 +77,7 @@ echo './scripts/soundness.sh' > .git/hooks/pre-push We use a specific version of [`nicklockwood/swiftformat`](https://github.com/nicklockwood/swiftformat). Please take a look at our [`Dockerfile`](docker/Dockerfile) to see which version is currently being used and install it on your machine before running the script. + +### License + +Apache 2.0 \ No newline at end of file diff --git a/Sources/Instrumentation/Instrument.swift b/Sources/Instrumentation/Instrument.swift index 924f0044..f3c63c58 100644 --- a/Sources/Instrumentation/Instrument.swift +++ b/Sources/Instrumentation/Instrument.swift @@ -43,7 +43,7 @@ public protocol Injector { /// Conforming types are usually cross-cutting tools like tracers. They are agnostic of what specific `Carrier` is used /// to propagate metadata across boundaries, but instead just specify what values to use for which keys. -public protocol Instrument { +public protocol InstrumentProtocol { /// Extract values from a `Carrier` by using the given extractor and inject them into the given `Baggage`. /// It's quite common for `Instrument`s to come up with new values if they weren't passed along in the given `Carrier`. /// diff --git a/Sources/Instrumentation/InstrumentationSystem.swift b/Sources/Instrumentation/InstrumentationSystem.swift index 9c512a87..7d3b6a49 100644 --- a/Sources/Instrumentation/InstrumentationSystem.swift +++ b/Sources/Instrumentation/InstrumentationSystem.swift @@ -24,14 +24,14 @@ import InstrumentationBaggage /// ``instrument``: Returns whatever you passed to ``bootstrap(_:)`` as an ``Instrument``. public enum InstrumentationSystem { private static let lock = ReadWriteLock() - private static var _instrument: Instrument = NoOpInstrument() + private static var _instrument: InstrumentProtocol = NoOpInstrument() private static var isInitialized = false /// Globally select the desired ``Instrument`` implementation. /// /// - Parameter instrument: The ``Instrument`` you want to share globally within your system. /// - Warning: Do not call this method more than once. This will lead to a crash. - public static func bootstrap(_ instrument: Instrument) { + public static func bootstrap(_ instrument: InstrumentProtocol) { self.lock.withWriterLock { precondition( !self.isInitialized, """ @@ -47,7 +47,7 @@ public enum InstrumentationSystem { /// For testing scenarios one may want to set instruments multiple times, rather than the set-once semantics enforced by ``bootstrap(_:)``. /// /// - Parameter instrument: the instrument to boostrap the system with, if `nil` the ``NoOpInstrument`` is bootstrapped. - internal static func bootstrapInternal(_ instrument: Instrument?) { + internal static func bootstrapInternal(_ instrument: InstrumentProtocol?) { self.lock.withWriterLock { self._instrument = instrument ?? NoOpInstrument() } @@ -56,14 +56,14 @@ public enum InstrumentationSystem { /// Returns the globally configured ``Instrument``. /// /// Defaults to a no-op ``Instrument`` if ``bootstrap(_:)`` wasn't called before. - public static var instrument: Instrument { + public static var instrument: InstrumentProtocol { self.lock.withReaderLock { self._instrument } } } extension InstrumentationSystem { /// :nodoc: INTERNAL API: Do Not Use - public static func _findInstrument(where predicate: (Instrument) -> Bool) -> Instrument? { + public static func _findInstrument(where predicate: (InstrumentProtocol) -> Bool) -> InstrumentProtocol? { self.lock.withReaderLock { if let multiplex = self._instrument as? MultiplexInstrument { return multiplex.firstInstrument(where: predicate) diff --git a/Sources/Instrumentation/MultiplexInstrument.swift b/Sources/Instrumentation/MultiplexInstrument.swift index 66793578..e5506503 100644 --- a/Sources/Instrumentation/MultiplexInstrument.swift +++ b/Sources/Instrumentation/MultiplexInstrument.swift @@ -17,24 +17,24 @@ import InstrumentationBaggage /// A pseudo-``Instrument`` that may be used to instrument using multiple other ``Instrument``s across a /// common `Baggage`. public struct MultiplexInstrument { - private var instruments: [Instrument] + private var instruments: [InstrumentProtocol] /// Create a ``MultiplexInstrument``. /// /// - Parameter instruments: An array of ``Instrument``s, each of which will be used to ``Instrument/inject(_:into:using:)`` or ``Instrument/extract(_:into:using:)`` /// through the same `Baggage`. - public init(_ instruments: [Instrument]) { + public init(_ instruments: [InstrumentProtocol]) { self.instruments = instruments } } extension MultiplexInstrument { - func firstInstrument(where predicate: (Instrument) -> Bool) -> Instrument? { + func firstInstrument(where predicate: (InstrumentProtocol) -> Bool) -> InstrumentProtocol? { self.instruments.first(where: predicate) } } -extension MultiplexInstrument: Instrument { +extension MultiplexInstrument: InstrumentProtocol { public func inject(_ baggage: Baggage, into carrier: inout Carrier, using injector: Inject) where Inject: Injector, Carrier == Inject.Carrier { diff --git a/Sources/Instrumentation/NoOpInstrument.swift b/Sources/Instrumentation/NoOpInstrument.swift index 437b31b7..d8f096d9 100644 --- a/Sources/Instrumentation/NoOpInstrument.swift +++ b/Sources/Instrumentation/NoOpInstrument.swift @@ -15,7 +15,7 @@ import InstrumentationBaggage /// A "no op" implementation of an ``Instrument``. -public struct NoOpInstrument: Instrument { +public struct NoOpInstrument: InstrumentProtocol { public init() {} public func inject(_ baggage: Baggage, into carrier: inout Carrier, using injector: Inject) diff --git a/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md b/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md new file mode 100644 index 00000000..fc2ebe6d --- /dev/null +++ b/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md @@ -0,0 +1,186 @@ +# Implement a Tracer + +## Overview + +This guide is aimed at ``TracerProtocol`` and ``InstrumentProtocol`` implementation authors. + +This guide is for you, if you find yourself in need of implementing your own tracing client such as Zipkin, Jaeger, X-Trace, OpenTelemetry or something similar that is custom to your company or distributed system. + +## Do you need an Instrument or a Tracer? + +Distributed tracing offers two types of instrumentation protocols: an instrument, and a tracer. + +A tracer is-an instrument as well, and further refines it with the ability to start a trace ``Span``. + +## Creating an instrument + +Creating an instrument means adopting the ``Instrument`` protocol (or ``Tracer`` in case you develop a tracer). +`Instrument` is part of the `Instrumentation` library & `Tracing` contains the ``Tracer`` protocol. + +`Instrument` has two requirements: + +1. A method to inject values inside a `LoggingContext` into a generic carrier (e.g. HTTP headers) +2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `LoggingContext` + +The two methods will be called by instrumented libraries/frameworks at asynchronous boundaries, giving you a chance to +act on the provided information or to add additional information to be carried across these boundaries. + +> Check out the [`Baggage` documentation](https://github.com/apple/swift-distributed-tracing-baggage) for more information on +how to retrieve values from the `LoggingContext` and how to set values on it. + +### Creating a `Tracer` + +When creating a tracer you need to create two types: + +1. Your tracer conforming to ``Tracer`` +2. A span class conforming to ``Span`` + +> ``Span`` conforms to the standard rules defined in [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/v0.7.0/specification/trace/api.md#span), so if unsure about usage patterns, you can refer to this specification and examples referring to it. + +### Defining, injecting and extracting Baggage + +```swift +import Tracing + +private enum TraceIDKey: BaggageKey { + typealias Value = String +} + +extension Baggage { + var traceID: String? { + get { + return self[TraceIDKey.self] + } + set { + self[TraceIDKey.self] = newValue + } + } +} + +var context = DefaultLoggingContext.topLevel(logger: ...) +context.baggage.traceID = "4bf92f3577b34da6a3ce929d0e0e4736" +print(context.baggage.traceID ?? "new trace id") +``` + + +### Extracting & injecting Baggage + +When hitting boundaries like an outgoing HTTP request you call out to the [configured instrument(s)](#Bootstrapping-the-Instrumentation-System): + +An HTTP client e.g. should inject the given `LoggingContext` into the HTTP headers of its outbound request: + +```swift +func get(url: String, context: LoggingContext) { + var request = HTTPRequest(url: url) + InstrumentationSystem.instrument.inject( + context.baggage, + into: &request.headers, + using: HTTPHeadersInjector() + ) +} +``` + +On the receiving side, an HTTP server should use the following `Instrument` API to extract the HTTP headers of the given +`HTTPRequest` into: + +```swift +func handler(request: HTTPRequest, context: LoggingContext) { + InstrumentationSystem.instrument.extract( + request.headers, + into: &context.baggage, + using: HTTPHeadersExtractor() + ) + // ... +} +``` + +> In case your library makes use of the `NIOHTTP1.HTTPHeaders` type we already have an `HTTPHeadersInjector` & +`HTTPHeadersExtractor` available as part of the `NIOInstrumentation` library. + +For your library/framework to be able to carry `LoggingContext` across asynchronous boundaries, it's crucial that you carry the context throughout your entire call chain in order to avoid dropping metadata. + +### Tracing your library + +When your library/framework can benefit from tracing, you should make use of it by integrating the `Tracing` library. + +In order to work with the tracer [configured by the end-user](#Bootstrapping-the-Instrumentation-System), it adds a property to `InstrumentationSystem` that gives you back a `Tracer`. You can then use that tracer to start `Span`s. In an HTTP client you e.g. +should start a `Span` when sending the outgoing HTTP request: + +```swift +func get(url: String, context: LoggingContext) { + var request = HTTPRequest(url: url) + + // inject the request headers into the baggage as explained above + + // start a span for the outgoing request + let tracer = InstrumentationSystem.tracer + var span = tracer.startSpan(named: "HTTP GET", context: context, ofKind: .client) + + // set attributes on the span + span.attributes.http.method = "GET" + // ... + + self.execute(request).always { _ in + // set some more attributes & potentially record an error + + // end the span + span.end() + } +} +``` + +> ⚠️ Make sure to ALWAYS end spans. Ensure that all paths taken by the code will result in ending the span. +> Make sure that error cases also set the error attribute and end the span. + +> In the above example we used the semantic `http.method` attribute that gets exposed via the +`TracingOpenTelemetrySupport` library. + +## Instrument developers: Creating an instrument + +Creating an instrument means adopting the `Instrument` protocol (or `Tracer` in case you develop a tracer). +`Instrument` is part of the `Instrumentation` library & `Tracing` contains the `Tracer` protocol. + +`Instrument` has two requirements: + +1. A method to inject values inside a `LoggingContext` into a generic carrier (e.g. HTTP headers) +2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `LoggingContext` + +The two methods will be called by instrumented libraries/frameworks at asynchronous boundaries, giving you a chance to +act on the provided information or to add additional information to be carried across these boundaries. + +> Check out the [`Baggage` documentation](https://github.com/apple/swift-distributed-tracing-baggage) for more information on +how to retrieve values from the `LoggingContext` and how to set values on it. + +### Creating a `Tracer` + +When creating a tracer you need to create two types: + +1. Your tracer conforming to `Tracer` +2. A span class conforming to `Span` + +> The `Span` conforms to the standard rules defined in [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/v0.7.0/specification/trace/api.md#span), so if unsure about usage patterns, you can refer to this specification and examples referring to it. + +### Defining, injecting and extracting Baggage + +```swift +import Tracing + +private enum TraceIDKey: BaggageKey { + typealias Value = String +} + +extension Baggage { + var traceID: String? { + get { + return self[TraceIDKey.self] + } + set { + self[TraceIDKey.self] = newValue + } + } +} + +var context = DefaultLoggingContext.topLevel(logger: ...) +context.baggage.traceID = "4bf92f3577b34da6a3ce929d0e0e4736" +print(context.baggage.traceID ?? "new trace id") +``` \ No newline at end of file diff --git a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md new file mode 100644 index 00000000..d488f938 --- /dev/null +++ b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md @@ -0,0 +1,98 @@ +# Instrument Your Library or Framework + +## Overview + +This guide is aimed at library and framework developers who wish to instrument their code using distributed tracing. + +Doing so within a library may enable automatic trace propagation and is key to propagating trace information across +distributed nodes, e.g. by instrumenting the HTTP client used by such system. + +Other examples of libraries which benefit _the most_ from being instrumented using distributed tracing include: + +- HTTP Clients (e.g. AsyncHTTPClient), +- HTTP Servers (e.g. Vapor or Smoke), +- RPC systems (Swift gRPC or Swift's `DistributedActorSystem` implementations), +- database drivers (e.g. SQL or MongoDB clients), +- any other library which can emit meaningful span information about tasks it is performing. + +The most important libraries to instrument are "edge" libraries, which serve to connect between systems, because +it is them who must inject and extract contextual baggage metadata to enable distributed trace ``Span`` propagation. + +Following those, any database or other complex library which may be able to emit useful information about its internals are +also good candidates to being instrumented. Note that libraries may do so optionally, or hide the "verboseness" of such traces +behind options, or only attach information if a Span is already active etc. Please review your library's documentation to learn +more about it has integrated tracing support. + +### Extracting & injecting Baggage + +When hitting boundaries like an outgoing HTTP request you call out to the configured instrument(s) (see ): + +An HTTP client e.g. should inject the given `LoggingContext` into the HTTP headers of its outbound request: + +```swift +func get(url: String, context: LoggingContext) { + var request = HTTPRequest(url: url) + InstrumentationSystem.instrument.inject( + context.baggage, + into: &request.headers, + using: HTTPHeadersInjector() + ) +} +``` + +On the receiving side, an HTTP server should use the following `Instrument` API to extract the HTTP headers of the given +`HTTPRequest` into: + +```swift +func handler(request: HTTPRequest, context: LoggingContext) { + InstrumentationSystem.instrument.extract( + request.headers, + into: &context.baggage, + using: HTTPHeadersExtractor() + ) + // ... +} +``` + +> In case your library makes use of the `NIOHTTP1.HTTPHeaders` type we already have an `HTTPHeadersInjector` & +`HTTPHeadersExtractor` available as part of the `NIOInstrumentation` library. + +For your library/framework to be able to carry `LoggingContext` across asynchronous boundaries, it's crucial that you carry the context throughout your entire call chain in order to avoid dropping metadata. + +### Tracing your library + +When your library/framework can benefit from tracing, you should make use of it by integrating the `Tracing` library. + +In order to work with the tracer configured by the end-user (see ), it adds a property to `InstrumentationSystem` that gives you back a ``Tracer``. You can then use that tracer to start ``Span``s. In an HTTP client you e.g. +should start a ``Span`` when sending the outgoing HTTP request: + +```swift +func get(url: String, context: LoggingContext) { + var request = HTTPRequest(url: url) + + // inject the request headers into the baggage as explained above + + // start a span for the outgoing request + let tracer = InstrumentationSystem.tracer + var span = tracer.startSpan(named: "HTTP GET", context: context, ofKind: .client) + + // set attributes on the span + span.attributes.http.method = "GET" + // ... + + self.execute(request).always { _ in + // set some more attributes & potentially record an error + + // end the span + span.end() + } +} +``` + +> ⚠️ Make sure to ALWAYS end spans. Ensure that all paths taken by the code will result in ending the span. +> Make sure that error cases also set the error attribute and end the span. + +> In the above example we used the semantic `http.method` attribute that gets exposed via the +`TracingOpenTelemetrySupport` library. + + diff --git a/Sources/Tracing/Docs.docc/InDepthGuide.md b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md similarity index 67% rename from Sources/Tracing/Docs.docc/InDepthGuide.md rename to Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md index 052f9f27..2f72fc5b 100644 --- a/Sources/Tracing/Docs.docc/InDepthGuide.md +++ b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md @@ -1,18 +1,14 @@ -# In-Depth Guide - -An in-depth guide on using the Distributed Tracing API. +# Trace Your Application ## Overview -When instrumenting server applications there are typically three parties involved: - -1. **Application developers** create server-side applications -2. **Library/Framework developers** provide building blocks to create these applications -3. **Instrument developers** provide tools to collect distributed metadata about your application +This guide is aimed at **application developers** who have some server-side system and with to make use of distributed tracing +in order to improve their experience understanding, and performance tuning and debugging their services in production or development. -For applications to be instrumented correctly these three parts have to play along nicely. - -## Application Developers +Distributed tracing offers a way to gain additional insight into your application is performing in production, +without having to reconstruct the "big picture" from manually piecing together log lines and figuring out what happened +after what else and _why_. Distributed traces, as the name implies, also span multiple nodes in a micro-service architecture +or clustered system, and provide a profiler like experience to debugging the handling of a "request" or otherwise defined span. ### Setting up instruments & tracers @@ -23,8 +19,12 @@ Add a package dependency for this repository in your `Package.swift` file, and o to use, in this case `FancyInstrument`: ```swift -.package(url: "https://github.com/apple/swift-distributed-tracing.git", .branch("main")), -.package(url: "", from: "<4.2.0>"), +// depend on some instrumentation library: +.package(url: "", from: "<1.2.3>"), + +// which generally will already depend on the tracing API, +// however you can depend on it explicitly as well: +.package(url: "https://github.com/apple/swift-distributed-tracing.git", from: 1.0.0), ``` To your main target, add a dependency on the `Instrumentation library` and the instrument you want to use: @@ -33,7 +33,7 @@ To your main target, add a dependency on the `Instrumentation library` and the i .target( name: "MyApplication", dependencies: [ - "FancyInstrument" + .product(name: "FancyInstrument", package: "example-fancy-instrument"), ] ), ``` @@ -63,7 +63,7 @@ This is because tracing systems may attempt to emit metrics about their status e #### Bootstrapping multiple instruments using MultiplexInstrument -It is important to note that `InstrumentationSystem.bootstrap(_: Instrument)` must only be called once. In case you +It is important to note that `InstrumentationSystem.bootstrap(_: InstrumentProtocol)` must only be called once. In case you want to bootstrap the system to use multiple instruments, you group them in a `MultiplexInstrument` first, which you then pass along to the `bootstrap` method like this: @@ -171,162 +171,58 @@ If using a framework which itself has a "`...Context`" object you may want to in ### Working with `Span`s -The primary purpose of this API is to start and end so-called ``Span`` types. +The primary way you interact with distributed tracing is by starting ``Span``s. Spans form hierarchies with their parent spans, and end up being visualized using various tools, usually in a format similar to gant charts. So for example, if we had multiple operations that compose making dinner, they would be modelled as child spans of a main `makeDinner` span. Any sub tasks are again modelled as child spans of any given operation, and so on, resulting in a trace view similar to: ``` ->-o-o-o----- makeDinner ----------------o---------------x [15s] - \-|-|- chopVegetables--------x | [2s] - | | \- chop -x | | [1s] - | | \--- chop -x | [1s] - \-|- marinateMeat -----------x | [3s] - \- preheatOven -----------------x | [10s] - \--cook---------x [5s] +>-v-v-v----- makeDinner ------------------------v---------------x [15s] + \-|-|- chopVegetables------v---x | [2s] + | | \- chop-carrot ---x | | [1s] + | | \--- chop-potato-x | [1s] + \-|- marinateMeat -----------x | [3s] + \- preheatOven ------------x | [10s] + \--cook---------x [5s] ``` -The above trace is achieved by starting and ending spans in all the mentioned functions, for example, like this: +The above trace is achieved by starting and ending spans in all the mentioned functions. ```swift -let tracer: Tracer - -func makeDinner(context: LoggingContext) async throws -> Meal { - tracer.withSpan(operationName: "makeDinner", context) { - let veggiesFuture = try chopVegetables(context: span.context) - let meatFuture = marinateMeat(context: span.context) - let ovenFuture = try preheatOven(temperature: 350, context: span.context) - ... - return cook(veggies, meat, oven) +let tracer: any TracerProtocol + +func makeDinner() async throws -> Meal { + tracer.withSpan("makeDinner", context) { + async let veggiesFuture = try chopVegetables() + async let meatFuture = marinateMeat() + async let ovenFuture = try preheatOven(temperature: 350) + // ... + return try await cook(veggies, meat, oven) } } -``` - -> ❗️ It is tremendously important to **always `end()` a started ``Span``**! make sure to end any started span on _every_ code path, including error paths -> -> Failing to do so is an error, and a tracer *may* decide to either crash the application or log warnings when an not-ended span is deinitialized. - - -## Library/Framework developers: Instrumenting your software - -### Extracting & injecting Baggage - -When hitting boundaries like an outgoing HTTP request you call out to the configured instrument(s) (see ): - -An HTTP client e.g. should inject the given `LoggingContext` into the HTTP headers of its outbound request: - -```swift -func get(url: String, context: LoggingContext) { - var request = HTTPRequest(url: url) - InstrumentationSystem.instrument.inject( - context.baggage, - into: &request.headers, - using: HTTPHeadersInjector() - ) -} -``` - -On the receiving side, an HTTP server should use the following `Instrument` API to extract the HTTP headers of the given -`HTTPRequest` into: - -```swift -func handler(request: HTTPRequest, context: LoggingContext) { - InstrumentationSystem.instrument.extract( - request.headers, - into: &context.baggage, - using: HTTPHeadersExtractor() - ) - // ... -} -``` - -> In case your library makes use of the `NIOHTTP1.HTTPHeaders` type we already have an `HTTPHeadersInjector` & -`HTTPHeadersExtractor` available as part of the `NIOInstrumentation` library. - -For your library/framework to be able to carry `LoggingContext` across asynchronous boundaries, it's crucial that you carry the context throughout your entire call chain in order to avoid dropping metadata. - -### Tracing your library - -When your library/framework can benefit from tracing, you should make use of it by integrating the `Tracing` library. - -In order to work with the tracer configured by the end-user (see ), it adds a property to `InstrumentationSystem` that gives you back a ``Tracer``. You can then use that tracer to start ``Span``s. In an HTTP client you e.g. -should start a ``Span`` when sending the outgoing HTTP request: -```swift -func get(url: String, context: LoggingContext) { - var request = HTTPRequest(url: url) - - // inject the request headers into the baggage as explained above - - // start a span for the outgoing request - let tracer = InstrumentationSystem.tracer - var span = tracer.startSpan(named: "HTTP GET", context: context, ofKind: .client) - - // set attributes on the span - span.attributes.http.method = "GET" - // ... - - self.execute(request).always { _ in - // set some more attributes & potentially record an error - - // end the span - span.end() +func chopVegetables() async throws { + await tracer.withSpan("chopVegetables", context) { + try await chop(.carrot) + try await chop(.potato) } } -``` - -> ⚠️ Make sure to ALWAYS end spans. Ensure that all paths taken by the code will result in ending the span. -> Make sure that error cases also set the error attribute and end the span. - -> In the above example we used the semantic `http.method` attribute that gets exposed via the -`TracingOpenTelemetrySupport` library. - -## Instrument developers: Creating an instrument - -Creating an instrument means adopting the `Instrument` protocol (or ``Tracer`` in case you develop a tracer). -`Instrument` is part of the `Instrumentation` library & `Tracing` contains the ``Tracer`` protocol. - -`Instrument` has two requirements: - -1. A method to inject values inside a `LoggingContext` into a generic carrier (e.g. HTTP headers) -2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `LoggingContext` - -The two methods will be called by instrumented libraries/frameworks at asynchronous boundaries, giving you a chance to -act on the provided information or to add additional information to be carried across these boundaries. - -> Check out the [`Baggage` documentation](https://github.com/apple/swift-distributed-tracing-baggage) for more information on -how to retrieve values from the `LoggingContext` and how to set values on it. - -### Creating a `Tracer` - -When creating a tracer you need to create two types: - -1. Your tracer conforming to ``Tracer`` -2. A span class conforming to ``Span`` - -> ``Span`` conforms to the standard rules defined in [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/v0.7.0/specification/trace/api.md#span), so if unsure about usage patterns, you can refer to this specification and examples referring to it. - -### Defining, injecting and extracting Baggage - -```swift -import Tracing - -private enum TraceIDKey: BaggageKey { - typealias Value = String +func chop(_ vegetable: Vegetable) async { + await tracer.withSpan("chop-\(vegetable)", context) { + // ... + } } -extension Baggage { - var traceID: String? { - get { - return self[TraceIDKey.self] - } - set { - self[TraceIDKey.self] = newValue - } +func marinateMeat() { + tracer.withSpan("marinateMeat", context) { + // ... } } -var context = DefaultLoggingContext.topLevel(logger: ...) -context.baggage.traceID = "4bf92f3577b34da6a3ce929d0e0e4736" -print(context.baggage.traceID ?? "new trace id") +// ... ``` +The preferr + +> ❗️ It is tremendously important to **always `end()` a started ``Span``**! make sure to end any started span on _every_ code path, including error paths +> +> Failing to do so is an error, and a tracer *may* decide to either crash the application or log warnings when an not-ended span is deinitialized. diff --git a/Sources/Tracing/Docs.docc/TracerProtocol.md b/Sources/Tracing/Docs.docc/TracerProtocol.md new file mode 100644 index 00000000..9d223002 --- /dev/null +++ b/Sources/Tracing/Docs.docc/TracerProtocol.md @@ -0,0 +1,14 @@ +# ``Tracing/TracerProtocol`` + +## Topics + + + +### Working with Spans + +- ``withSpan(_:ofKind:_:)-11n3y`` +- ``withSpan(_:baggage:ofKind:_:)-1w7i6`` + +### Manual Span management + +- ``startSpan(_:baggage:ofKind:)`` diff --git a/Sources/Tracing/Docs.docc/index.md b/Sources/Tracing/Docs.docc/index.md index f541c062..8e8f3a46 100644 --- a/Sources/Tracing/Docs.docc/index.md +++ b/Sources/Tracing/Docs.docc/index.md @@ -8,197 +8,22 @@ This is a collection of Swift libraries enabling the instrumentation of server s While Swift Distributed Tracing allows building all kinds of _instruments_, which can co-exist in applications transparently, its primary use is instrumenting multi-threaded and distributed systems with Distributed Traces. +### Quickstart Guides ---- +We provide a number of guides, aimed at getting your started with tracing your systems and have prepared them from three "angles": -This project uses the context progagation type defined independently in: +1. **Application developers** who create server-side applications + * please refer to the guide. +2. **Library/Framework developers** who provide building blocks to create these applications + * please refer to the guide. +3. **Instrument developers** who provide tools to collect distributed metadata about your application + * please refer to the guide. -- 🧳 [swift-distributed-tracing-baggage](https://github.com/apple/swift-distributed-tracing-baggage) -- [`Baggage`](https://apple.github.io/swift-distributed-tracing-baggage/docs/current/InstrumentationBaggage/Structs/Baggage.html) (zero dependencies) - -## Compatibility - -This project is designed in a very open and extensible manner, such that various instrumentation and tracing systems can be built on top of it. - -The purpose of the tracing package is to serve as common API for all tracer and instrumentation implementations. Thanks to this, libraries may only need to be instrumented once, and then be used with any tracer which conforms to this API. - -### Tracing Backends - -Compatible `Tracer` implementations: - -| Library | Status | Description | -| ------- | ------ | ----------- | -| [@slashmo](https://github.com/slashmo) / [**OpenTelemetry** Swift](https://github.com/slashmo/opentelemetry-swift) | Complete | Exports spans to OpenTelemetry Collector; **X-Ray** & **Jaeger** propagation available via extensions. | -| [@pokrywka](https://github.com/pokryfka) / [AWS **xRay** SDK Swift](https://github.com/pokryfka/aws-xray-sdk-swift) | Complete (?) | ... | - -## Getting Started - -In this short getting started example, we'll go through bootstrapping, immediately benefiting from tracing, and instrumenting our own synchronous and asynchronous APIs. The explain all the pieces of the API in more depth. When in doubt, you may want to refer to the [OpenTelemetry](https://opentelemetry.io), [Zipkin](https://zipkin.io), or [Jaeger](https://www.jaegertracing.io) documentations because all the concepts for different tracers are quite similar. - -### Dependencies & Tracer backend - -In order to use tracing you will need to bootstrap a tracing backend (). - -When developing an *application* locate the specific tracer library you would like to use and add it as an dependency directly: - -```swift -.package(url: "", // the specific tracer - ] -), -``` - -Then (in an application, libraries should _never_ invoke `bootstrap`), you will want to bootstrap the specific tracer you want to use in your application. A ``Tracer`` is a type of `Instrument` and can be offered used to globally bootstrap the tracing system, like this: - - -```swift -import Tracing // the tracing API -import AwesomeTracing // the specific tracer - -InstrumentationSystem.bootstrap(AwesomeTracing()) -``` - -If you don't bootstrap (or other instrument) the default no-op tracer is used, which will result in no trace data being collected. - -### Benefiting from instrumented libraries/frameworks - -**Automatically reported spans**: When using an already instrumented library, e.g. an HTTP Server which automatically emits spans internally, this is all you have to do to enable tracing. It should now automatically record and emit spans using your configured backend. - -**Using baggage and logging context**: The primary transport type for tracing metadata is called `Baggage`, and the primary type used to pass around baggage context and loggers is `LoggingContext`. Logging context combines baggage context values with a smart `Logger` that automatically includes any baggage values ("trace metadata") when it is used for logging. For example, when using an instrumented HTTP server, the API could look like this: - -```swift -SomeHTTPLibrary.handle { (request, context) in - context.logger.info("Wow, tracing!") // automatically includes tracing metadata such as "trace-id" - return try doSomething(request context: context) -} -``` - -In this snippet, we use the context logger to log a very useful message. However it is even more useful than it seems at first sight: if a tracer was installed and extracted tracing information from the incoming request, it would automatically log our message _with_ the trace information, allowing us to co-relate all log statements made during handling of this specific request: - -``` -05:46:38 example-trace-id=1111-23-1234556 info: Wow tracing! -05:46:38 example-trace-id=9999-22-9879797 info: Wow tracing! -05:46:38 example-trace-id=9999-22-9879797 user=Alice info: doSomething() for user Alice -05:46:38 example-trace-id=1111-23-1234556 user=Charlie info: doSomething() for user Charlie -05:46:38 example-trace-id=1111-23-1234556 user=Charlie error: doSomething() could not complete request! -05:46:38 example-trace-id=9999-22-9879797 user=alice info: doSomething() completed -``` - -Thanks to tracing, and trace identifiers, even if not using tracing visualization libraries, we can immediately co-relate log statements and know that the request `1111-23-1234556` has failed. Since our application can also _add_ values to the context, we can quickly notice that the error seems to occur for the user `Charlie` and not for user `Alice`. Perhaps the user Charlie has exceeded some quotas, does not have permissions or we have a bug in parsing names that include the letter `h`? We don't know _yet_, but thanks to tracing we can much quicker begin our investigation. - -**Passing context to client libraries**: When using client libraries that support distributed tracing, they will accept a `Baggage.LoggingContext` type as their _last_ parameter in many calls. - -When using client libraries that support distributed tracing, they will accept a `Baggage.LoggingContext` type as their _last_ parameter in many calls. Please refer to the section of the to learn more about how to properly pass context values around. - -### Instrumenting your code - -Adding a span to synchronous functions can be achieved like this: - -```swift -func handleRequest(_ op: String, context: LoggingContext) -> String { - let tracer = InstrumentationSystem.tracer - let span = tracer.startSpan(operationName: "handleRequest(\(name))", context: context) - defer { span.end() } - - return "done:\(op)" -} -``` - -Throwing can be handled by either recording errors manually into a span by calling ``Span/recordError(_:)``, or by wrapping a potentially throwing operation using the `withSpan(operation:context:body:)` function, which automatically records any thrown error and ends the span at the end of the body closure scope: - -```swift -func handleRequest(_ op: String, context: LoggingContext) -> String { - return try InstrumentationSystem.tracer - .withSpan(operationName: "handleRequest(\(name))", context: context) { - return try dangerousOperation() - } -} -``` - -If this function were asynchronous, and returning a [Swift NIO](https://github.com/apple/swift-nio) `EventLoopFuture`, -we need to end the span when the future completes. We can do so in its `onComplete`: - -```swift -func handleRequest(_ op: String, context: LoggingContext) -> EventLoopFuture { - let tracer = InstrumentationSystem.tracer - let span = tracer.startSpan(operationName: "handleRequest(\(name))", context: context) - - let future: EventLoopFuture = someOperation(op) - future.whenComplete { _ in - span.end() // oh no, ignored errors! - } - - return future -} -``` - -This is better, however we ignored the possibility that the future perhaps has failed. If this happens, we would like to report the span as _errored_ because then it will show up as such in tracing backends and we can then easily search for failed operations etc. - -To do this within the future we could manually invoke the ``Span/recordError(_:)`` API before ending the span like this: - -```swift -func handleRequest(_ op: String, context: LoggingContext) -> EventLoopFuture { - let tracer = InstrumentationSystem.tracer - let span = tracer.startSpan(operationName: "handleRequest(\(name))", context: context) - - let future: EventLoopFuture = someOperation(op) - future.whenComplete { result in - switch result { - case .failure(let error): span.recordError(error) - case .success(let value): // ... record additional *attributes* into the span - } - span.end() - } - - return future -} -``` - -While this is verbose, this is only the low-level building blocks that this library provides, higher level helper utilities can be - -> Eventually convenience wrappers will be provided, automatically wrapping future types etc. We welcome such contributions, but likely they should live in `swift-distributed-tracing-extras`. - -Once a system, or multiple systems have been instrumented, a ``Tracer`` has been selected and your application runs and emits some trace information, you will be able to inspect how your application is behaving by looking at one of the various trace UIs, such as e.g. Zipkin: - -![Simple example trace in Zipkin Web UI](zipkin_trace.png) - -### More examples - -It sometimes is easier to grasp the usage of tracing by looking at a "real" application - which is why we have implemented an example application, spanning multiple nodes and using various databases - tracing through all of them. You can view the example application here: [slashmo/swift-tracing-examples](https://github.com/slashmo/swift-tracing-examples/tree/main/hotrod). - -### Future work: Tracing asynchronous functions - -> ⚠️ This section refers to in-development upcoming Swift Concurrency features and can be tried out using nightly snapshots of the Swift toolchain. - -With Swift's ongoing work towards asynchronous functions, actors, and tasks, tracing in Swift will become more pleasant than it is today. - -Firstly, a lot of the callback heavy code will be folded into normal control flow, which is easy and correct to integrate with tracing like this: - -```swift -func perform(context: LoggingContext) async -> String { - let span = InstrumentationSystem.tracer.startSpan(operationName: #function, context: context) - defer { span.end() } - - return await someWork() -} -``` ## Topics -### Articles +### Guides -- +- +- +- diff --git a/Sources/Tracing/InstrumentationSystem+Tracing.swift b/Sources/Tracing/InstrumentationSystem+Tracing.swift index 1be4949c..5866f0ca 100644 --- a/Sources/Tracing/InstrumentationSystem+Tracing.swift +++ b/Sources/Tracing/InstrumentationSystem+Tracing.swift @@ -21,7 +21,7 @@ extension InstrumentationSystem { /// tracing instrument as passed to the multiplex instrument. If none is found, a ``NoOpTracer`` is returned. /// /// - Returns: A ``Tracer`` if the system was bootstrapped with one, and ``NoOpTracer`` otherwise. - public static var tracer: Tracer { - (self._findInstrument(where: { $0 is Tracer }) as? Tracer) ?? NoOpTracer() + public static var tracer: TracerProtocol { + (self._findInstrument(where: { $0 is TracerProtocol }) as? TracerProtocol) ?? NoOpTracer() } } diff --git a/Sources/Tracing/NoOpTracer.swift b/Sources/Tracing/NoOpTracer.swift index a8510943..ccfd66bf 100644 --- a/Sources/Tracing/NoOpTracer.swift +++ b/Sources/Tracing/NoOpTracer.swift @@ -17,7 +17,7 @@ import Dispatch @_exported import InstrumentationBaggage /// No operation ``Tracer``, used when no tracing is required. -public struct NoOpTracer: Tracer { +public struct NoOpTracer: TracerProtocol { public init() {} public func startSpan( diff --git a/Sources/Tracing/Tracer.swift b/Sources/Tracing/Tracer.swift index 91857d79..5c4f2ccd 100644 --- a/Sources/Tracing/Tracer.swift +++ b/Sources/Tracing/Tracer.swift @@ -18,7 +18,7 @@ import Dispatch /// An `Instrument` with added functionality for distributed tracing. It uses the span-based tracing model and is /// based on the OpenTracing/OpenTelemetry spec. -public protocol Tracer: Instrument { +public protocol TracerProtocol: InstrumentProtocol { /// Start a new ``Span`` with the given `Baggage` at a given time. /// /// - Note: Prefer to use `withSpan` to start a span as it automatically takes care of ending the span, @@ -46,7 +46,7 @@ public protocol Tracer: Instrument { func forceFlush() } -extension Tracer { +extension TracerProtocol { /// Start a new ``Span`` with the given `Baggage` starting at `DispatchWallTime.now()`. /// /// - Parameters: @@ -65,7 +65,7 @@ extension Tracer { // ==== ---------------------------------------------------------------------------------------------------------------- // MARK: Starting spans: `withSpan` -extension Tracer { +extension TracerProtocol { /// Execute a specific task within a newly created ``Span``. /// /// DO NOT `end()` the passed in span manually. It will be ended automatically when the `operation` returns. @@ -99,7 +99,7 @@ extension Tracer { #if swift(>=5.5) && canImport(_Concurrency) @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) -extension Tracer { +extension TracerProtocol { /// Execute the given operation within a newly created ``Span``, /// started as a child of the currently stored task local `Baggage.current` or as a root span if `nil`. /// diff --git a/Tests/InstrumentationTests/InstrumentTests.swift b/Tests/InstrumentationTests/InstrumentTests.swift index aaea30ad..cada7ed7 100644 --- a/Tests/InstrumentationTests/InstrumentTests.swift +++ b/Tests/InstrumentationTests/InstrumentTests.swift @@ -52,7 +52,7 @@ private struct DictionaryExtractor: Extractor { } } -private final class FirstFakeTracer: Instrument { +private final class FirstFakeTracer: InstrumentProtocol { enum TraceIDKey: BaggageKey { typealias Value = String @@ -77,7 +77,7 @@ private final class FirstFakeTracer: Instrument { } } -private final class SecondFakeTracer: Instrument { +private final class SecondFakeTracer: InstrumentProtocol { enum TraceIDKey: BaggageKey { typealias Value = String diff --git a/Tests/InstrumentationTests/InstrumentationSystemTests.swift b/Tests/InstrumentationTests/InstrumentationSystemTests.swift index 87a7be5c..5f0a2c86 100644 --- a/Tests/InstrumentationTests/InstrumentationSystemTests.swift +++ b/Tests/InstrumentationTests/InstrumentationSystemTests.swift @@ -17,7 +17,7 @@ import InstrumentationBaggage import XCTest extension InstrumentationSystem { - public static func _instrument(of instrumentType: I.Type) -> I? where I: Instrument { + public static func _instrument(of instrumentType: I.Type) -> I? where I: InstrumentProtocol { self._findInstrument(where: { $0 is I }) as? I } } @@ -48,7 +48,7 @@ final class InstrumentationSystemTests: XCTestCase { } } -private final class FakeTracer: Instrument { +private final class FakeTracer: InstrumentProtocol { func inject( _ baggage: Baggage, into carrier: inout Carrier, @@ -68,7 +68,7 @@ private final class FakeTracer: Instrument { Carrier == Extract.Carrier {} } -private final class FakeInstrument: Instrument { +private final class FakeInstrument: InstrumentProtocol { func inject( _ baggage: Baggage, into carrier: inout Carrier, diff --git a/Tests/TracingTests/TestTracer.swift b/Tests/TracingTests/TestTracer.swift index ba7a8bb7..99bc1bf3 100644 --- a/Tests/TracingTests/TestTracer.swift +++ b/Tests/TracingTests/TestTracer.swift @@ -18,7 +18,7 @@ import Instrumentation import InstrumentationBaggage import Tracing -final class TestTracer: Tracer { +final class TestTracer: TracerProtocol { private(set) var spans = [TestSpan]() var onEndSpan: (Span) -> Void = { _ in } diff --git a/Tests/TracingTests/TracedLockTests.swift b/Tests/TracingTests/TracedLockTests.swift index 07e1f075..2581b35a 100644 --- a/Tests/TracingTests/TracedLockTests.swift +++ b/Tests/TracingTests/TracedLockTests.swift @@ -58,7 +58,7 @@ enum TaskIDKey: BaggageKey { // ==== ------------------------------------------------------------------------ // MARK: PrintLn Tracer -private final class TracedLockPrintlnTracer: Tracer { +private final class TracedLockPrintlnTracer: TracerProtocol { func startSpan( _ operationName: String, baggage: Baggage, diff --git a/Tests/TracingTests/TracingInstrumentationSystemTests.swift b/Tests/TracingTests/TracingInstrumentationSystemTests.swift index 5e68ea5b..0c9650aa 100644 --- a/Tests/TracingTests/TracingInstrumentationSystemTests.swift +++ b/Tests/TracingTests/TracingInstrumentationSystemTests.swift @@ -17,11 +17,11 @@ import Tracing import XCTest extension InstrumentationSystem { - public static func _tracer(of tracerType: T.Type) -> T? where T: Tracer { + public static func _tracer(of tracerType: T.Type) -> T? where T: TracerProtocol { self._findInstrument(where: { $0 is T }) as? T } - public static func _instrument(of instrumentType: I.Type) -> I? where I: Instrument { + public static func _instrument(of instrumentType: I.Type) -> I? where I: InstrumentProtocol { self._findInstrument(where: { $0 is I }) as? I } } From 9fdfcb16746a7c8fb181e3fe288319d8a5204fd6 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Fri, 4 Nov 2022 21:57:41 +0900 Subject: [PATCH 02/14] rewrite the "instrument your library" guide --- .../Docs.docc/Guides/ImplementATracer.md | 26 +- .../Docs.docc/Guides/InstrumentYourLibrary.md | 274 +++++++++++++++--- .../Docs.docc/Guides/TraceYourApplication.md | 40 +-- Sources/Tracing/Docs.docc/TracerProtocol.md | 1 + Sources/Tracing/Span.swift | 6 +- 5 files changed, 271 insertions(+), 76 deletions(-) diff --git a/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md b/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md index fc2ebe6d..5018fb02 100644 --- a/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md +++ b/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md @@ -19,14 +19,14 @@ Creating an instrument means adopting the ``Instrument`` protocol (or ``Tracer`` `Instrument` has two requirements: -1. A method to inject values inside a `LoggingContext` into a generic carrier (e.g. HTTP headers) -2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `LoggingContext` +1. A method to inject values inside a `FIXME!!!` into a generic carrier (e.g. HTTP headers) +2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `FIXME!!!` The two methods will be called by instrumented libraries/frameworks at asynchronous boundaries, giving you a chance to act on the provided information or to add additional information to be carried across these boundaries. > Check out the [`Baggage` documentation](https://github.com/apple/swift-distributed-tracing-baggage) for more information on -how to retrieve values from the `LoggingContext` and how to set values on it. +how to retrieve values from the `FIXME!!!` and how to set values on it. ### Creating a `Tracer` @@ -57,7 +57,7 @@ extension Baggage { } } -var context = DefaultLoggingContext.topLevel(logger: ...) +var context = DefaultFIXME!!!.topLevel(logger: ...) context.baggage.traceID = "4bf92f3577b34da6a3ce929d0e0e4736" print(context.baggage.traceID ?? "new trace id") ``` @@ -67,10 +67,10 @@ print(context.baggage.traceID ?? "new trace id") When hitting boundaries like an outgoing HTTP request you call out to the [configured instrument(s)](#Bootstrapping-the-Instrumentation-System): -An HTTP client e.g. should inject the given `LoggingContext` into the HTTP headers of its outbound request: +An HTTP client e.g. should inject the given `FIXME!!!` into the HTTP headers of its outbound request: ```swift -func get(url: String, context: LoggingContext) { +func get(url: String, context: FIXME!!!) { var request = HTTPRequest(url: url) InstrumentationSystem.instrument.inject( context.baggage, @@ -84,7 +84,7 @@ On the receiving side, an HTTP server should use the following `Instrument` API `HTTPRequest` into: ```swift -func handler(request: HTTPRequest, context: LoggingContext) { +func handler(request: HTTPRequest, context: FIXME!!!) { InstrumentationSystem.instrument.extract( request.headers, into: &context.baggage, @@ -97,7 +97,7 @@ func handler(request: HTTPRequest, context: LoggingContext) { > In case your library makes use of the `NIOHTTP1.HTTPHeaders` type we already have an `HTTPHeadersInjector` & `HTTPHeadersExtractor` available as part of the `NIOInstrumentation` library. -For your library/framework to be able to carry `LoggingContext` across asynchronous boundaries, it's crucial that you carry the context throughout your entire call chain in order to avoid dropping metadata. +For your library/framework to be able to carry `FIXME!!!` across asynchronous boundaries, it's crucial that you carry the context throughout your entire call chain in order to avoid dropping metadata. ### Tracing your library @@ -107,7 +107,7 @@ In order to work with the tracer [configured by the end-user](#Bootstrapping-the should start a `Span` when sending the outgoing HTTP request: ```swift -func get(url: String, context: LoggingContext) { +func get(url: String, context: FIXME!!!) { var request = HTTPRequest(url: url) // inject the request headers into the baggage as explained above @@ -142,14 +142,14 @@ Creating an instrument means adopting the `Instrument` protocol (or `Tracer` in `Instrument` has two requirements: -1. A method to inject values inside a `LoggingContext` into a generic carrier (e.g. HTTP headers) -2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `LoggingContext` +1. A method to inject values inside a `FIXME!!!` into a generic carrier (e.g. HTTP headers) +2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `FIXME!!!` The two methods will be called by instrumented libraries/frameworks at asynchronous boundaries, giving you a chance to act on the provided information or to add additional information to be carried across these boundaries. > Check out the [`Baggage` documentation](https://github.com/apple/swift-distributed-tracing-baggage) for more information on -how to retrieve values from the `LoggingContext` and how to set values on it. +how to retrieve values from the `FIXME!!!` and how to set values on it. ### Creating a `Tracer` @@ -180,7 +180,7 @@ extension Baggage { } } -var context = DefaultLoggingContext.topLevel(logger: ...) +var context = DefaultFIXME!!!.topLevel(logger: ...) context.baggage.traceID = "4bf92f3577b34da6a3ce929d0e0e4736" print(context.baggage.traceID ?? "new trace id") ``` \ No newline at end of file diff --git a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md index d488f938..e8169e4d 100644 --- a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md +++ b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md @@ -23,76 +23,272 @@ also good candidates to being instrumented. Note that libraries may do so option behind options, or only attach information if a Span is already active etc. Please review your library's documentation to learn more about it has integrated tracing support. -### Extracting & injecting Baggage +### Propagating baggage metadata -When hitting boundaries like an outgoing HTTP request you call out to the configured instrument(s) (see ): +When crossing boundaries between processes, such as making or receiving an HTTP request, the library responsible for doing so, should invoke instrumentation in order to inject or extract the contextual baggage metadata into/from the "carrier" type (such as the `HTTPResponse`) type. -An HTTP client e.g. should inject the given `LoggingContext` into the HTTP headers of its outbound request: +#### Handling outbound requests + +When a library makes an "outgoing" request or message interaction, it should invoke the method of a configured instrument. This will invoke whichever instrument the end-user has configured and allow them to customize what metadata gets to be propagated. This can be by the following diagram: + +``` + ┌──────────────────────────────────┐ + │ Specific Tracer / Instrument │ + └──────────────────────────────────┘ + │ + instrument.inject(baggage: baggage, into: request, using: httpInjector) + │ + ┌────────▼──────┐ + ┌───────────────┤ Tracing API ├────────────┐ ┌────┐ + │HTTPClient └────────▲──────┘ │ │ N │ + │ │ │ │ e │ + │ ┌───────────────┐ ┌──▼──────────────┐ │ │ t │ +┌───────────┐ │ | make │ │ add metadata to │ │ │ w │ +│ User code |────▶│ │ HTTPRequest │──▶│ HTTPRequest │────┼─────▶│ o │ +└───────────┘ │ └───────────────┘ └─────────────────┘ │ │ r │ + │ │ │ k │ + └────────────────────────────────────────────┘ └────┘ +``` + +> Note: A library _itself_ cannot really know what information to propagate, since that depends on the used tracing or instrumentation system. The library does however understand its carrier type, and thus can implement the ``Injector`` protocol. + +For example, an HTTP client e.g. should inject the current baggage (which could be carrying trace ``Span`` information) into the HTTP headers as follows: ```swift -func get(url: String, context: LoggingContext) { +func get(url: String) -> HTTPResponse { var request = HTTPRequest(url: url) - InstrumentationSystem.instrument.inject( - context.baggage, - into: &request.headers, - using: HTTPHeadersInjector() - ) + + if let baggage = Baggage.current { + InstrumentationSystem.instrument.inject( + baggage, + into: &request, + using: HTTPRequestInjector() + ) + } + + try await _send(request) } ``` -On the receiving side, an HTTP server should use the following `Instrument` API to extract the HTTP headers of the given -`HTTPRequest` into: +As you can see, the library does not know anything about what tracing system or instrumentation is installed, because it cannot know that ahead of time. + +All it has to do is query for the current [task-local](https://developer.apple.com/documentation/swift/tasklocal) `Baggage` value, and if one is present, call on the instrumentation system to inject it into the request. + +Since neither, the tracing API, or the specific tracer backend are aware of this library's specific `HTTPRequest` type, we also need to implement an ``Injector`` which takes on the responsibility of adding the metadata into the carrier type (which in our case is the `HTTPRequest`). An injector could for example be implemented like this: ```swift -func handler(request: HTTPRequest, context: LoggingContext) { +struct HTTPRequestInjector: Injector { + func inject(_ value: String, forKey key: String, into request: inout HTTPRequest) { + request.headers.append((key, value)) + } +} +``` + +Once the metadat has been injected, the request–including all the additional metadata–is sent over the network. + +> Note: The actual logic of deciding what baggage values to inject depend on the tracer implementation, and thus we are not covering it in this _end-user_ focused guide. Refer to if you'd like to learn about implementing a ``TracerProtocol``. + +#### Handling inbound requests + +On the receiving side, an HTTP server needs to perform the inverse operation, as it receives the request from the network and forms an `HTTPRequest` object, and before it passed it to user-code, it must extract any trace metadata from the request headers into the `Baggage`. + +``` + ┌──────────────────────────────────┐ + │ Specific Tracer / Instrument │ + └──────────────────────────────────┘ + ▲ + │ + instrument.extract(request, into: &baggage, using: httpExtractor) + │ + ┌──────▼──────┐ +┌────┐ ┌──────────────┤ Tracing API ├────────────┐ +│ N │ │HTTPServerLib └──────▲──────┘ │ +│ e │ │ │ │ +│ t │ │┌───────────────┐ ┌─▼───────────────┐ │ +│ w │ ││ parse │ │extract metadata │ │ ┌───────────┐ +│ o │─────────▶││ HTTPRequest ├──▶from HTTPRequest │───┼────▶│ User code │ +│ r │ │└───────────────┘ └─────────────────┘ │ └───────────┘ +│ k │ │ │ +│ │ └─────────────────────────────────────────┘ +└──── +``` + +This is very similar to what we were doing on the outbound side, but the roles of baggage and request are somewhat inversed: we're extracting values from the carrier into the baggage. The code performing this task could look something like this: + +```swift +func handler(request: HTTPRequest) async { + // we are beginning a new "top level" context - the beginning of a request - + // and thus start from a fresh, empty, top-level baggage: + var baggage = Baggage.topLevel + + // populate the baggage by extracting interesting metadata from the incoming request: InstrumentationSystem.instrument.extract( - request.headers, - into: &context.baggage, - using: HTTPHeadersExtractor() + request, + into: &baggage, + using: HTTPRequestExtractor() ) - // ... + + // ... invoke user code ... +} +``` + +Similarily to the outbound side, we need to implement an ``Extractor`` because the tracing libraries don't know about our specific HTTP types, yet we need to have them decide for which values to extract keys. + +```swift +struct HTTPRequestExtract: Instrumentation.Extractor { + func extract(key: String, from request: HTTPRequest) -> String? { + request.headers.first(where: { $0.0 == key })?.1 + } } ``` -> In case your library makes use of the `NIOHTTP1.HTTPHeaders` type we already have an `HTTPHeadersInjector` & -`HTTPHeadersExtractor` available as part of the `NIOInstrumentation` library. +Which exact keys will be asked for depends on the tracer implementation, thus we don't present this part of the implementation in part of the guide. For example, a tracer most likely would look for, and extract, values for keys such as `trace-id` and `span-id`. Note though that the exact semantics and keys used by various tracers differ, which is why we have to leave the decision of what to extract up to tracer implementations. -For your library/framework to be able to carry `LoggingContext` across asynchronous boundaries, it's crucial that you carry the context throughout your entire call chain in order to avoid dropping metadata. +Next, your library should "*restore*" the contextual baggage, this is performed by setting the baggage task-local value around calling into user code, like this: -### Tracing your library +```swift +func handler(request: HTTPRequest) async { + // ... + InstrumentationSystem.instrument.extract(..., into: &baggage, ...) + // ... -When your library/framework can benefit from tracing, you should make use of it by integrating the `Tracing` library. + await Baggage.withValue(baggage) { + await userCode(request) + } +} +``` + +This sets the task-local value `Baggage.current` which is used by [swift-log](https://github.com/apple/swift-log), as well as ``TracerProtocol`` APIs in order to later "*pick up*" the baggage and and e.g. include it in log statements, or start new trace spans using the information stored in the baggage. -In order to work with the tracer configured by the end-user (see ), it adds a property to `InstrumentationSystem` that gives you back a ``Tracer``. You can then use that tracer to start ``Span``s. In an HTTP client you e.g. -should start a ``Span`` when sending the outgoing HTTP request: +> Note: The end goal here being that when end-users of your library write `log.info("Hello")` the logger is able to pick up the contextual baggage information and include the e.g. the `trace-id` in such log statement automatically! This way, every log made during the handling of this request would include the trade-id automatically, e.g. like this: +> +> `12:43:32 info [trace-id=463a...13ad] Logging during handling of a request!` + +If your library makes multiple calls to user-code as part of handling the same request, you may consider if restoring the baggage around all of these callbacks is beneficial. For example, if a library had callbacks such as: ```swift -func get(url: String, context: LoggingContext) { - var request = HTTPRequest(url: url) +/// Example library protocol, offering multiple callbacks, all semantically part of the same request handling. +protocol SampleHTTPHandler { + // called immediately when an incoming HTTPRequests headers are available, + // even before the request body has been processed. + func requestHeaders(headers: HTTPHeaders) async + + // Called multiple (or zero) times, for each "part" of the incoming HTTPRequest body. + func requestBodyPart(ByteBuffer) async +} +``` + +You may want to restore the baggage once around both those calls, or if that is not possible, restore it every time when calling back into user code, e.g. like this: + +```swift +actor MySampleServer { + + var baggage: Baggage = .topLevel + var userCode: SampleHTTPHandler + + func onHeaders(headers: HTTPHeaders) async { + await Baggage.withValue(self.baggage) { + await userHandler.requestHeaders(headers) + } + } + + func onBodyPart(part: ByteBuffer) async { + await Baggage.withValue(self.baggage) { + await userHandler.requestHeaders(headers) + } + } +} +``` + +While this code is very simple for illustration purposes, and it may seem suprising why there are those two separate places where we need to call into user-code separately. But in practice such situations can happen when using asynchronous network or database libraries which offer their API in terms of such callbacks. Always consider if and when to restore baggage such that it makes sense for the end user. + +### Starting Trace Spans in Your Library - // inject the request headers into the baggage as explained above +The above steps are enough if you wanted to provide contextual baggage propagation, and already enables techniques such as *correlation ids* which can be set once, in one system, and then carried through to any downstream services the code makes calls from while the baggage is set. - // start a span for the outgoing request - let tracer = InstrumentationSystem.tracer - var span = tracer.startSpan(named: "HTTP GET", context: context, ofKind: .client) +Many libraries also have the opportunity to start trace spans themselfes, on behalf of users, in pieces of the library that can provide useful insight in the behavior or the library in production. For example, the HTTPServer can start spans as soon as it begins handling HTTP requests, and this way provide a parent span to any spans the user-code would be creating itself. - // set attributes on the span - span.attributes.http.method = "GET" +Let us revisit the previous sample HTTPServer which restored baggage around invoking the user-code, and further extend it to start a span including basic information about the HTTPRequest being handled: + +```swift +// SUB-OPTIMAL EXAMPLE: +func handler(request: HTTPRequest) async { + // 1) extract trace information into baggage... + InstrumentationSystem.instrument.extract(..., into: &baggage, ...) // ... + + // 2) restore baggage, using a task-local: + await Baggage.withValue(baggage) { + // 3) start span, using contextual baggage (which may contain trace-ids already): + await InstrumentationSystem.tracer.withSpan("\(request.path)") { span in + // 3.1) Set useful attributes:on the span: + span.attributes["http.method"] = request.method + // ... + // See also: Open Telemetry typed attributes in swift-distributed-tracing-extras + + // 4) user code will have the apropriate Span baggage restored: + await userCode(request) + } + } +} +``` + +This is introducing multiple layers of nesting, and we have un-necessarily restored, picked-up, and restored the baggage again. In order to avoid this duplicate work, it is beneficial to use the ``TracerProtocol/withSpan(_:baggage:ofKind:_:)-1w7i6`` overload, which also accepts a `Baggage` as parameter, rather than picking it up from the task-local value: - self.execute(request).always { _ in - // set some more attributes & potentially record an error +```swift +// BETTER +func handler(request: HTTPRequest) async { + // 1) extract trace information into baggage: + InstrumentationSystem.instrument.extract(..., into: &baggage, ...) - // end the span - span.end() + // 2) start span, passing the freshly extracted baggage explicitly: + await InstrumentationSystem.tracer.withSpan("\(request.path)", baggage: baggage) { span in + // ... } } ``` -> ⚠️ Make sure to ALWAYS end spans. Ensure that all paths taken by the code will result in ending the span. -> Make sure that error cases also set the error attribute and end the span. +This method will only restore the baggage once, after the tracer has had a chance to decide if this execution will be traced, and if so, setting its own trace and span identifiers. This way only one task-local access (set) is performed in this version of the code, which is preferable to the set/read/set that was performed previously. + +#### Manual Span Lifetime Management + +While the ``TracerProtocol/withSpan(_:ofKind:_:)-11n3y`` API is preferable in most situations, it may not be possible to use when the lifetime of a span only terminates in yet another callback API. In such situations, it may be impossible to "wrap" the entire piece of code that would logically represent "the span" using a `withSpan(...) { ... }` call. + +In such situations you can resort to using the ``TracerProtocol/startSpan(_:baggage:ofKind:)`` and ``Span/end()`` APIs explicitly. Those APIs can then be used like this: + +```swift +// Callback heavy APIs may need to store and manage spans manually: +var span: Span? + +func startHandline(request: HTTPRequest) { + self.span = InstrumentationSystem.tracer.startSpan("\(request.path)") + + userCode.handle(request) +} + +func finishHandling(request: HTTPRequest, response: HTTPResponse) { + // always end spans (!) + span?.end() // ends and flushes the span +} +``` + +It is very important to _always_ end spans that are started, as otherwise resources they use may keep accumulating and lead to memory leaks, or worse issues in tracing backends dependin on their implementation. + +The manual way of managing spans also means that error paths need to be treated with increased attention. This is something the `withSpan` APIs handle automatically, but we cannot rely on the `withSpan` detecting an error thrown out of its body closure anymore when using the `startSpan`/`end` APIs. + +When an error is thrown, or if the span should for some reason be considered errored, you should invoke the ``Span/recordError(_:)`` method and pass an ``Error`` that should be recorded on the span. Since failed spans usually show up in very visually distinct ways, and are most often the first thing a developer inspecting an application using tracing is looking for, it is important to get error reporting right in your library. Here is a simple example how this might look like: -> In the above example we used the semantic `http.method` attribute that gets exposed via the -`TracingOpenTelemetrySupport` library. +```swift +var span: Span + +func onError(error: Error) { + span.recordError(error) // record the error + span.end() // and end the span +} +``` +It is worth noting that double-ending a span should be considered a programmer error, and tracer implementations are free to crash or otherwise report such problem. +> Note: The problem with finding a span that was ended in two places is that its lifecycle seems to be incorrectly managed, and therefore the span timing information is at risk of being incorrect. +> +> Please also take care to never `end()` a span that was created using `withSpan()` APIs, because `withSpan` will automatically end the span when the closure returns. diff --git a/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md index 2f72fc5b..3687d2a0 100644 --- a/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md +++ b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md @@ -73,9 +73,9 @@ InstrumentationSystem.bootstrap(MultiplexInstrument([FancyInstrument(), OtherFan `MultiplexInstrument` will then call out to each instrument it has been initialized with. -### Context propagation, by explicit `LoggingContext` passing +### Context propagation, by explicit `FIXME!!!` passing -> `LoggingContext` naming has been carefully selected and it reflects the type's purpose and utility: It binds a [Swift Log `Logger`](https://github.com/apple/swift-log) with an associated distributed tracing [Baggage](https://github.com/apple/swift-distributed-tracing-baggage). +> `FIXME!!!` naming has been carefully selected and it reflects the type's purpose and utility: It binds a [Swift Log `Logger`](https://github.com/apple/swift-log) with an associated distributed tracing [Baggage](https://github.com/apple/swift-distributed-tracing-baggage). > > It _also_ is used for tracing, by tracers reaching in to read or modify the carried baggage. @@ -84,9 +84,9 @@ carried throughout the entire system–including across process and service boun for a context object to be passed around your application and the libraries/frameworks you depend on, but also carried over asynchronous boundaries like an HTTP call to another service of your app. -`LoggingContext` should always be passed around explicitly. +`FIXME!!!` should always be passed around explicitly. -Libraries which support tracing are expected to accept a `LoggingContext` parameter, which can be passed through the entire application. Make sure to always pass along the context that's previously handed to you. E.g., when making an HTTP request using `AsyncHTTPClient` in a `NIO` handler, you can use the `ChannelHandlerContext`s `baggage` property to access the `LoggingContext`. +Libraries which support tracing are expected to accept a `FIXME!!!` parameter, which can be passed through the entire application. Make sure to always pass along the context that's previously handed to you. E.g., when making an HTTP request using `AsyncHTTPClient` in a `NIO` handler, you can use the `ChannelHandlerContext`s `baggage` property to access the `FIXME!!!`. #### Context argument naming/positioning @@ -109,21 +109,21 @@ This way when reading the call side, users of these APIs can learn to "ignore" o Examples: -- `func request(_ url: URL,` **`context: LoggingContext`** `)`, which may be called as `httpClient.request(url, context: context)` -- `func handle(_ request: RequestObject,` **`context: LoggingContext`**`)` +- `func request(_ url: URL,` **`context: FIXME!!!`** `)`, which may be called as `httpClient.request(url, context: context)` +- `func handle(_ request: RequestObject,` **`context: FIXME!!!`**`)` - if a "framework context" exists and _carries_ the baggage context already, it is permitted to pass that context together with the baggage; - - it is _strongly recommended_ to store the baggage context as `baggage` property of `FrameworkContext`, and conform `FrameworkContext` to `LoggingContext` in such cases, in order to avoid the confusing spelling of `context.context`, and favoring the self-explanatory `context.baggage` spelling when the baggage is contained in a framework context object. + - it is _strongly recommended_ to store the baggage context as `baggage` property of `FrameworkContext`, and conform `FrameworkContext` to `FIXME!!!` in such cases, in order to avoid the confusing spelling of `context.context`, and favoring the self-explanatory `context.baggage` spelling when the baggage is contained in a framework context object. - `func receiveMessage(_ message: Message, context: FrameworkContext)` -- `func handle(element: Element,` **`context: LoggingContext`** `, settings: Settings? = nil)` +- `func handle(element: Element,` **`context: FIXME!!!`** `, settings: Settings? = nil)` - before any defaulted non-function parameters -- `func handle(element: Element,` **`context: LoggingContext`** `, settings: Settings? = nil, onComplete: () -> ())` +- `func handle(element: Element,` **`context: FIXME!!!`** `, settings: Settings? = nil, onComplete: () -> ())` - before defaulted parameters, which themselfes are before required function parameters -- `func handle(element: Element,` **`context: LoggingContext`** `, onError: (Error) -> (), onComplete: (() -> ())? = nil)` +- `func handle(element: Element,` **`context: FIXME!!!`** `, onError: (Error) -> (), onComplete: (() -> ())? = nil)` In case there are _multiple_ "framework-ish" parameters, such as passing a NIO `EventLoop` or similar, we suggest: -- `func perform(_ work: Work, for user: User,` _`frameworkThing: Thing, eventLoop: NIO.EventLoop,`_ **`context: LoggingContext`**`)` +- `func perform(_ work: Work, for user: User,` _`frameworkThing: Thing, eventLoop: NIO.EventLoop,`_ **`context: FIXME!!!`**`)` - pass the baggage as **last** of such non-domain specific parameters as it will be _by far more_ omnipresent than any specific framework parameter - as it is expected that any framework should be accepting a context if it can do so. While not all libraries are necessarily going to be implemented using the same frameworks. @@ -134,23 +134,23 @@ rather than _"request (ignore this context parameter when reading) that URL"_. #### When to use what context type? -Generally libraries should favor accepting the general `LoggingContext` type, and **not** attempt to wrap it, as it will result in difficult to compose APIs between multiple libraries. Because end users are likely going to be combining various libraries in a single application, it is important that they can "just pass along" the same context object through all APIs, regardless which other library they are calling into. +Generally libraries should favor accepting the general `FIXME!!!` type, and **not** attempt to wrap it, as it will result in difficult to compose APIs between multiple libraries. Because end users are likely going to be combining various libraries in a single application, it is important that they can "just pass along" the same context object through all APIs, regardless which other library they are calling into. -Frameworks may need to be more opinionated here, and e.g. already have some form of "per request context" contextual object which they will conform to `LoggingContext`. _Within_ such framework it is fine and expected to accept and pass the explicit `SomeFrameworkContext`, however when designing APIs which may be called _by_ other libraries, such framework should be able to accept a generic `LoggingContext` rather than its own specific type. +Frameworks may need to be more opinionated here, and e.g. already have some form of "per request context" contextual object which they will conform to `FIXME!!!`. _Within_ such framework it is fine and expected to accept and pass the explicit `SomeFrameworkContext`, however when designing APIs which may be called _by_ other libraries, such framework should be able to accept a generic `FIXME!!!` rather than its own specific type. #### Existing context argument -When adapting an existing library/framework to support `LoggingContext` and it already has a "framework context" which is expected to be passed through "everywhere", we suggest to follow these guidelines for adopting LoggingContext: +When adapting an existing library/framework to support `FIXME!!!` and it already has a "framework context" which is expected to be passed through "everywhere", we suggest to follow these guidelines for adopting FIXME!!!: 1. Add a `Baggage` as a property called `baggage` to your own `context` type, so that the call side for your users becomes `context.baggage` (rather than the confusing `context.context`) -2. If you cannot or it would not make sense to carry baggage inside your framework's context object, pass (and accept (!)) the `LoggingContext` in your framework functions like follows: -- if they take no framework context, accept a `context: LoggingContext` which is the same guideline as for all other cases +2. If you cannot or it would not make sense to carry baggage inside your framework's context object, pass (and accept (!)) the `FIXME!!!` in your framework functions like follows: +- if they take no framework context, accept a `context: FIXME!!!` which is the same guideline as for all other cases - if they already _must_ take a context object and you are out of words (or your API already accepts your framework context as "context"), pass the baggage as **last** parameter (see above) yet call the parameter `baggage` to disambiguate your `context` object from the `baggage` context object. Examples: -- `Lambda.Context` may contain `baggage` and a `logger` and should be able to conform to `LoggingContext` +- `Lambda.Context` may contain `baggage` and a `logger` and should be able to conform to `FIXME!!!` - passing context to a `Lambda.Context` unaware library becomes: `http.request(url: "...", context: context)`. - `ChannelHandlerContext` offers a way to set/get baggage on the underlying channel via `context.baggage = ...` - this context is not passed outside a handler, but within it may be passed as is, and the baggage may be accessed on it directly through it. @@ -162,12 +162,12 @@ Generally application developers _should not_ create new context objects, but ra If really necessary, or for the purposes of testing, one can create a baggage or context using one of the two factory functions: -- [`DefaultLoggingContext.topLevel(logger:)`](https://github.com/apple/swift-distributed-tracing-baggage/blob/main/Sources/Baggage/LoggingContext.swift) or [`Baggage.topLevel`](https://github.com/apple/swift-distributed-tracing-baggage-core/blob/main/Sources/CoreBaggage/Baggage.swift) - which creates an empty context/baggage, without any values. It should _not_ be used too frequently, and as the name implies in applications it only should be used on the "top level" of the application, or at the beginning of a contextless (e.g. timer triggered) event processing. -- [`DefaultLoggingContext.TODO(logger:reason:)`](https://github.com/apple/swift-distributed-tracing-baggage/blob/main/Sources/Baggage/LoggingContext.swift) or [`Baggage.TODO`](https://github.com/apple/swift-distributed-tracing-baggage-core/blob/main/Sources/CoreBaggage/Baggage.swift) - which should be used to mark a parameter where "before this code goes into production, a real context should be passed instead." An application can be run with `-DBAGGAGE_CRASH_TODOS` to cause the application to crash whenever a TODO context is still in use somewhere, making it easy to diagnose and avoid breaking context propagation by accidentally leaving in a `TODO` context in production. +- [`DefaultFIXME!!!.topLevel(logger:)`](https://github.com/apple/swift-distributed-tracing-baggage/blob/main/Sources/Baggage/FIXME!!!.swift) or [`Baggage.topLevel`](https://github.com/apple/swift-distributed-tracing-baggage-core/blob/main/Sources/CoreBaggage/Baggage.swift) - which creates an empty context/baggage, without any values. It should _not_ be used too frequently, and as the name implies in applications it only should be used on the "top level" of the application, or at the beginning of a contextless (e.g. timer triggered) event processing. +- [`DefaultFIXME!!!.TODO(logger:reason:)`](https://github.com/apple/swift-distributed-tracing-baggage/blob/main/Sources/Baggage/FIXME!!!.swift) or [`Baggage.TODO`](https://github.com/apple/swift-distributed-tracing-baggage-core/blob/main/Sources/CoreBaggage/Baggage.swift) - which should be used to mark a parameter where "before this code goes into production, a real context should be passed instead." An application can be run with `-DBAGGAGE_CRASH_TODOS` to cause the application to crash whenever a TODO context is still in use somewhere, making it easy to diagnose and avoid breaking context propagation by accidentally leaving in a `TODO` context in production. Please refer to the respective functions documentation for details. -If using a framework which itself has a "`...Context`" object you may want to inspect it for similar factory functions, as `LoggingContext` is a protocol, that may be conformed to by frameworks to provide a smoother user experience. +If using a framework which itself has a "`...Context`" object you may want to inspect it for similar factory functions, as `FIXME!!!` is a protocol, that may be conformed to by frameworks to provide a smoother user experience. ### Working with `Span`s diff --git a/Sources/Tracing/Docs.docc/TracerProtocol.md b/Sources/Tracing/Docs.docc/TracerProtocol.md index 9d223002..2f2be87c 100644 --- a/Sources/Tracing/Docs.docc/TracerProtocol.md +++ b/Sources/Tracing/Docs.docc/TracerProtocol.md @@ -12,3 +12,4 @@ ### Manual Span management - ``startSpan(_:baggage:ofKind:)`` +- ``startSpan(_:baggage:ofKind:at:)`` diff --git a/Sources/Tracing/Span.swift b/Sources/Tracing/Span.swift index 5316b224..96f41735 100644 --- a/Sources/Tracing/Span.swift +++ b/Sources/Tracing/Span.swift @@ -16,8 +16,8 @@ import Dispatch @_exported import InstrumentationBaggage /// A `Span` represents an interval from the start of an operation to its end, along with additional metadata included -/// with it. A `Span` can be created from a `Baggage` or `LoggingContext` which MAY contain existing span identifiers, -/// in which case this span should be considered as "child" of the previous span. +/// with it. A `Span` can be created from a `Baggage` which contains span information, in which case this span should +/// be considered as "child" of the previous span. /// /// Creating a `Span` is delegated to a ``Tracer`` and end users should never create them directly. /// @@ -77,8 +77,6 @@ extension Span { /// Implementations SHOULD prevent double-emitting by marking a span as ended internally, however it still is a /// programming mistake to rely on this behavior. /// - /// - Parameter time: The `DispatchWallTime` at which the span ended. - /// /// - SeeAlso: ``end(at:)`` which allows passing in a specific time, e.g. if the operation was ended and recorded somewhere and we need to post-factum record it. /// Generally though prefer using the ``end()`` version of this API in user code and structure your system such that it can be called in the right place and time. public func end() { From 8fee747394be34b8852f2d5faabe31939c7aafd2 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Fri, 4 Nov 2022 22:25:33 +0900 Subject: [PATCH 03/14] warn against ignoring the global tracer --- Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md index e8169e4d..c9c011c4 100644 --- a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md +++ b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md @@ -292,3 +292,11 @@ It is worth noting that double-ending a span should be considered a programmer e > Note: The problem with finding a span that was ended in two places is that its lifecycle seems to be incorrectly managed, and therefore the span timing information is at risk of being incorrect. > > Please also take care to never `end()` a span that was created using `withSpan()` APIs, because `withSpan` will automatically end the span when the closure returns. + +### Global vs. "Stored" Tracers and Instruments + +Tracing functions similarily to swift-log and swift-metrics, in the sense that there is a global "backend" configured at application start, by end-users (developers) of an application. And this is how using ``InstrumentationSystem/tracer`` gets the "right" tracer at runtime. + +You may be tempted to allow users _configuring_ a tracer as part of your applications intialization. Generally we advice against that pattern, because it makes it confusing which library needs to be configured, how, and where -- and if libraries are composed, perhaps the setting is not available to the actual "end-user" anymore. + +On the other hand, it may be valuable for testing scenarios to be able to set a tracer on a specific instance of your library. Therefore, if you really want to offer a configurable `Instrument` or `Tracer` then we suggest defaulting this setting to `nil`, and if it is `nil`, reaching to the global `InstrumentationSystem/instrument` or `InstrumentationSystem/tracer` - this way it is possible to override a tracer for testing on a per-instance basis, but the default mode of operation that end-users expect from libraries remains working. From 80b2db6c3a9fb5416110073a785269f7576e6069 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Sat, 5 Nov 2022 09:45:31 +0900 Subject: [PATCH 04/14] Apply suggestions from code review Co-authored-by: Yim Lee --- .../Docs.docc/Guides/ImplementATracer.md | 14 +++++----- .../Docs.docc/Guides/InstrumentYourLibrary.md | 28 +++++++++---------- .../Docs.docc/Guides/TraceYourApplication.md | 11 ++++---- Sources/Tracing/Docs.docc/index.md | 2 +- 4 files changed, 27 insertions(+), 28 deletions(-) diff --git a/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md b/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md index 5018fb02..dc8d40f2 100644 --- a/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md +++ b/Sources/Tracing/Docs.docc/Guides/ImplementATracer.md @@ -4,7 +4,7 @@ This guide is aimed at ``TracerProtocol`` and ``InstrumentProtocol`` implementation authors. -This guide is for you, if you find yourself in need of implementing your own tracing client such as Zipkin, Jaeger, X-Trace, OpenTelemetry or something similar that is custom to your company or distributed system. +This guide is for you if you find yourself in need of implementing your own tracing client such as Zipkin, Jaeger, X-Trace, OpenTelemetry or something similar that is custom to your company or distributed system. ## Do you need an Instrument or a Tracer? @@ -14,12 +14,12 @@ A tracer is-an instrument as well, and further refines it with the ability to st ## Creating an instrument -Creating an instrument means adopting the ``Instrument`` protocol (or ``Tracer`` in case you develop a tracer). -`Instrument` is part of the `Instrumentation` library & `Tracing` contains the ``Tracer`` protocol. +Creating an instrument means adopting the ``InstrumentProtocol`` protocol (or ``TracerProtocol`` in case you develop a tracer). +``InstrumentProtocol`` is part of the `Instrumentation` library and `Tracing` contains the ``TracerProtocol`` protocol. `Instrument` has two requirements: -1. A method to inject values inside a `FIXME!!!` into a generic carrier (e.g. HTTP headers) +1. A method to inject values into a `FIXME!!!` a generic carrier (e.g. HTTP headers) 2. A method to extract values from a generic carrier (e.g. HTTP headers) and store them in a `FIXME!!!` The two methods will be called by instrumented libraries/frameworks at asynchronous boundaries, giving you a chance to @@ -81,7 +81,7 @@ func get(url: String, context: FIXME!!!) { ``` On the receiving side, an HTTP server should use the following `Instrument` API to extract the HTTP headers of the given -`HTTPRequest` into: +`HTTPRequest`: ```swift func handler(request: HTTPRequest, context: FIXME!!!) { @@ -94,7 +94,7 @@ func handler(request: HTTPRequest, context: FIXME!!!) { } ``` -> In case your library makes use of the `NIOHTTP1.HTTPHeaders` type we already have an `HTTPHeadersInjector` & +> In case your library makes use of the `NIOHTTP1.HTTPHeaders` type we already have an `HTTPHeadersInjector` and `HTTPHeadersExtractor` available as part of the `NIOInstrumentation` library. For your library/framework to be able to carry `FIXME!!!` across asynchronous boundaries, it's crucial that you carry the context throughout your entire call chain in order to avoid dropping metadata. @@ -129,7 +129,7 @@ func get(url: String, context: FIXME!!!) { } ``` -> ⚠️ Make sure to ALWAYS end spans. Ensure that all paths taken by the code will result in ending the span. +> ⚠️ Make sure to ALWAYS end spans to ensure that all paths taken by the code will result in ending the span. > Make sure that error cases also set the error attribute and end the span. > In the above example we used the semantic `http.method` attribute that gets exposed via the diff --git a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md index e8169e4d..919299a7 100644 --- a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md +++ b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md @@ -7,7 +7,7 @@ This guide is aimed at library and framework developers who wish to instrument t Doing so within a library may enable automatic trace propagation and is key to propagating trace information across distributed nodes, e.g. by instrumenting the HTTP client used by such system. -Other examples of libraries which benefit _the most_ from being instrumented using distributed tracing include: +Other examples of libraries which would benefit _the most_ from being instrumented using distributed tracing include: - HTTP Clients (e.g. AsyncHTTPClient), - HTTP Servers (e.g. Vapor or Smoke), @@ -20,16 +20,16 @@ it is them who must inject and extract contextual baggage metadata to enable dis Following those, any database or other complex library which may be able to emit useful information about its internals are also good candidates to being instrumented. Note that libraries may do so optionally, or hide the "verboseness" of such traces -behind options, or only attach information if a Span is already active etc. Please review your library's documentation to learn +behind options, or only attach information if a ``Span`` is already active etc. Please review your library's documentation to learn more about it has integrated tracing support. ### Propagating baggage metadata -When crossing boundaries between processes, such as making or receiving an HTTP request, the library responsible for doing so, should invoke instrumentation in order to inject or extract the contextual baggage metadata into/from the "carrier" type (such as the `HTTPResponse`) type. +When crossing boundaries between processes, such as making or receiving an HTTP request, the library responsible for doing so should invoke instrumentation in order to inject or extract the contextual baggage metadata into/from the "carrier" type (such as the `HTTPResponse`) type. #### Handling outbound requests -When a library makes an "outgoing" request or message interaction, it should invoke the method of a configured instrument. This will invoke whichever instrument the end-user has configured and allow them to customize what metadata gets to be propagated. This can be by the following diagram: +When a library makes an "outgoing" request or message interaction, it should invoke the method of a configured instrument. This will invoke whichever instrument the end-user has configured and allow them to customize what metadata gets to be propagated. This can be depicted by the following diagram: ``` ┌──────────────────────────────────┐ @@ -74,7 +74,7 @@ As you can see, the library does not know anything about what tracing system or All it has to do is query for the current [task-local](https://developer.apple.com/documentation/swift/tasklocal) `Baggage` value, and if one is present, call on the instrumentation system to inject it into the request. -Since neither, the tracing API, or the specific tracer backend are aware of this library's specific `HTTPRequest` type, we also need to implement an ``Injector`` which takes on the responsibility of adding the metadata into the carrier type (which in our case is the `HTTPRequest`). An injector could for example be implemented like this: +Since neither the tracing API nor the specific tracer backend is aware of this library's specific `HTTPRequest` type, we also need to implement an ``Injector`` which takes on the responsibility of adding the metadata into the carrier type (which in our case is the `HTTPRequest`). An injector could for example be implemented like this: ```swift struct HTTPRequestInjector: Injector { @@ -84,13 +84,13 @@ struct HTTPRequestInjector: Injector { } ``` -Once the metadat has been injected, the request–including all the additional metadata–is sent over the network. +Once the metadata has been injected, the request–including all the additional metadata is sent over the network. > Note: The actual logic of deciding what baggage values to inject depend on the tracer implementation, and thus we are not covering it in this _end-user_ focused guide. Refer to if you'd like to learn about implementing a ``TracerProtocol``. #### Handling inbound requests -On the receiving side, an HTTP server needs to perform the inverse operation, as it receives the request from the network and forms an `HTTPRequest` object, and before it passed it to user-code, it must extract any trace metadata from the request headers into the `Baggage`. +On the receiving side, an HTTP server needs to perform the inverse operation, as it receives the request from the network and forms an `HTTPRequest` object, and before it passes it to user-code, it must extract any trace metadata from the request headers into the `Baggage`: ``` ┌──────────────────────────────────┐ @@ -113,7 +113,7 @@ On the receiving side, an HTTP server needs to perform the inverse operation, as └──── ``` -This is very similar to what we were doing on the outbound side, but the roles of baggage and request are somewhat inversed: we're extracting values from the carrier into the baggage. The code performing this task could look something like this: +This is very similar to what we were doing on the outbound side, but the roles of baggage and request are somewhat reversed: we're extracting values from the carrier into the baggage. The code performing this task could look something like this: ```swift func handler(request: HTTPRequest) async { @@ -132,7 +132,7 @@ func handler(request: HTTPRequest) async { } ``` -Similarily to the outbound side, we need to implement an ``Extractor`` because the tracing libraries don't know about our specific HTTP types, yet we need to have them decide for which values to extract keys. +Similarly to the outbound side, we need to implement an ``Extractor`` because the tracing libraries don't know about our specific HTTP types, yet we need to have them decide for which values to extract keys. ```swift struct HTTPRequestExtract: Instrumentation.Extractor { @@ -158,7 +158,7 @@ func handler(request: HTTPRequest) async { } ``` -This sets the task-local value `Baggage.current` which is used by [swift-log](https://github.com/apple/swift-log), as well as ``TracerProtocol`` APIs in order to later "*pick up*" the baggage and and e.g. include it in log statements, or start new trace spans using the information stored in the baggage. +This sets the task-local value `Baggage.current` which is used by [swift-log](https://github.com/apple/swift-log), as well as ``TracerProtocol`` APIs in order to later "*pick up*" the baggage and e.g. include it in log statements, or start new trace spans using the information stored in the baggage. > Note: The end goal here being that when end-users of your library write `log.info("Hello")` the logger is able to pick up the contextual baggage information and include the e.g. the `trace-id` in such log statement automatically! This way, every log made during the handling of this request would include the trade-id automatically, e.g. like this: > @@ -200,15 +200,15 @@ actor MySampleServer { } ``` -While this code is very simple for illustration purposes, and it may seem suprising why there are those two separate places where we need to call into user-code separately. But in practice such situations can happen when using asynchronous network or database libraries which offer their API in terms of such callbacks. Always consider if and when to restore baggage such that it makes sense for the end user. +While this code is very simple for illustration purposes, and it may seem surprising why there are two separate places where we need to call into user-code separately, in practice such situations can happen when using asynchronous network or database libraries which offer their API in terms of callbacks. Always consider if and when to restore baggage such that it makes sense for the end user. ### Starting Trace Spans in Your Library The above steps are enough if you wanted to provide contextual baggage propagation, and already enables techniques such as *correlation ids* which can be set once, in one system, and then carried through to any downstream services the code makes calls from while the baggage is set. -Many libraries also have the opportunity to start trace spans themselfes, on behalf of users, in pieces of the library that can provide useful insight in the behavior or the library in production. For example, the HTTPServer can start spans as soon as it begins handling HTTP requests, and this way provide a parent span to any spans the user-code would be creating itself. +Many libraries also have the opportunity to start trace spans themselves, on behalf of users, in pieces of the library that can provide useful insight in the behavior or the library in production. For example, the HTTPServer can start spans as soon as it begins handling HTTP requests, and this way provide a parent span to any spans the user-code would be creating itself. -Let us revisit the previous sample HTTPServer which restored baggage around invoking the user-code, and further extend it to start a span including basic information about the HTTPRequest being handled: +Let us revisit the previous sample HTTPServer which restores baggage around invoking the user-code, and further extend it to start a span including basic information about the HTTPRequest being handled: ```swift // SUB-OPTIMAL EXAMPLE: @@ -272,7 +272,7 @@ func finishHandling(request: HTTPRequest, response: HTTPResponse) { } ``` -It is very important to _always_ end spans that are started, as otherwise resources they use may keep accumulating and lead to memory leaks, or worse issues in tracing backends dependin on their implementation. +It is very important to _always_ end spans that have been started, as otherwise resources they use may keep accumulating and lead to memory leaks, or worse issues in tracing backends depending on their implementation. The manual way of managing spans also means that error paths need to be treated with increased attention. This is something the `withSpan` APIs handle automatically, but we cannot rely on the `withSpan` detecting an error thrown out of its body closure anymore when using the `startSpan`/`end` APIs. diff --git a/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md index 3687d2a0..79b8dbac 100644 --- a/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md +++ b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md @@ -2,13 +2,12 @@ ## Overview -This guide is aimed at **application developers** who have some server-side system and with to make use of distributed tracing -in order to improve their experience understanding, and performance tuning and debugging their services in production or development. +This guide is aimed at **application developers** who have some server-side system and want to make use of distributed tracing +in order to improve their understanding and facilitate performance tuning and debugging their services in production or development. -Distributed tracing offers a way to gain additional insight into your application is performing in production, -without having to reconstruct the "big picture" from manually piecing together log lines and figuring out what happened +Distributed tracing offers a way to gain additional insight into how your application is performing in production, without having to reconstruct the "big picture" from manually piecing together log lines and figuring out what happened after what else and _why_. Distributed traces, as the name implies, also span multiple nodes in a micro-service architecture -or clustered system, and provide a profiler like experience to debugging the handling of a "request" or otherwise defined span. +or clustered system, and provide a profiler-like experience to debugging the handling of a "request" or otherwise defined span. ### Setting up instruments & tracers @@ -92,7 +91,7 @@ Libraries which support tracing are expected to accept a `FIXME!!!` parameter, w > 💡 This general style recommendation has been ironed out together with the Swift standard library, core team, the SSWG as well as members of the community. Please respect these recommendations when designing APIs such that all APIs are able to "feel the same" yielding a great user experience for our end users ❤️ > -> It is possible that the ongoing Swift Concurrency efforts, and "Task Local" values will resolve this explicit context passing problem, however until these arrive in the language, please adopt the "context is the last parameter" style as outlined here. +> It is possible that the ongoing Swift Concurrency efforts and "Task Local" values will resolve this explicit context passing problem, however until these arrive in the language, please adopt the "context is the last parameter" style as outlined here. Propagating baggage context through your system is to be done explicitly, meaning as a parameter in function calls, following the "flow" of execution. diff --git a/Sources/Tracing/Docs.docc/index.md b/Sources/Tracing/Docs.docc/index.md index 8e8f3a46..b7a8a066 100644 --- a/Sources/Tracing/Docs.docc/index.md +++ b/Sources/Tracing/Docs.docc/index.md @@ -10,7 +10,7 @@ While Swift Distributed Tracing allows building all kinds of _instruments_, whic ### Quickstart Guides -We provide a number of guides, aimed at getting your started with tracing your systems and have prepared them from three "angles": +We provide a number of guides aimed at getting your started with tracing your systems and have prepared them from three "angles": 1. **Application developers** who create server-side applications * please refer to the guide. From 00c354e6de79ad8ac7c56cff5505232b7a3b93a9 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Sat, 5 Nov 2022 12:08:19 +0900 Subject: [PATCH 05/14] Update README.md Co-authored-by: Yim Lee --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 87fcc398..06407c6c 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ The table below illustrates the | Library | Status | Baggage propagation | Automatic spans (e.g. "request" span) | |--------------------------------------------------|-------------------------------------------------------------|-------------------|-----------------------------------------------------------| -| [Swift gRPC](https://github.com/grpc/grpc-swift) | [PR - in progress](https://github.com/grpc/grpc-swift/pull/1510) | WIP | Pending | | +| [gRPC Swift](https://github.com/grpc/grpc-swift) | [PR - in progress](https://github.com/grpc/grpc-swift/pull/1510) | WIP | Pending | | | _Your library?_ | ... | ... |[Get in touch!](https://forums.swift.org/c/server/43) | From b8021de16d5a7011ecadceaa5716293f47d3873e Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Sun, 6 Nov 2022 19:20:54 +0900 Subject: [PATCH 06/14] +API introduce Tracer and Instrument convenience APIs --- Sources/Instrumentation/Instrument.swift | 52 +++++----- .../Docs.docc/Guides/InstrumentYourLibrary.md | 2 +- Sources/Tracing/Docs.docc/TracerProtocol.md | 2 - Sources/Tracing/Tracer.swift | 98 ++++++++++++++++--- Tests/TracingTests/TracerTests.swift | 32 +++++- 5 files changed, 143 insertions(+), 43 deletions(-) diff --git a/Sources/Instrumentation/Instrument.swift b/Sources/Instrumentation/Instrument.swift index f3c63c58..9e65418c 100644 --- a/Sources/Instrumentation/Instrument.swift +++ b/Sources/Instrumentation/Instrument.swift @@ -14,6 +14,35 @@ import InstrumentationBaggage +public enum Instrument { + static var current: InstrumentProtocol { + InstrumentationSystem.instrument + } +} + +/// Conforming types are usually cross-cutting tools like tracers. They are agnostic of what specific `Carrier` is used +/// to propagate metadata across boundaries, but instead just specify what values to use for which keys. +public protocol InstrumentProtocol { + /// Extract values from a `Carrier` by using the given extractor and inject them into the given `Baggage`. + /// It's quite common for `Instrument`s to come up with new values if they weren't passed along in the given `Carrier`. + /// + /// - Parameters: + /// - carrier: The `Carrier` that was used to propagate values across boundaries. + /// - baggage: The `Baggage` into which these values should be injected. + /// - extractor: The ``Extractor`` that extracts values from the given `Carrier`. + func extract(_ carrier: Carrier, into baggage: inout Baggage, using extractor: Extract) + where Extract: Extractor, Extract.Carrier == Carrier + + /// Extract values from a `Baggage` and inject them into the given `Carrier` using the given ``Injector``. + /// + /// - Parameters: + /// - baggage: The `Baggage` from which relevant information will be extracted. + /// - carrier: The `Carrier` into which this information will be injected. + /// - injector: The ``Injector`` used to inject extracted `Baggage` into the given `Carrier`. + func inject(_ baggage: Baggage, into carrier: inout Carrier, using injector: Inject) + where Inject: Injector, Inject.Carrier == Carrier +} + /// Conforming types are used to extract values from a specific `Carrier`. public protocol Extractor { /// The carrier to extract values from. @@ -40,26 +69,3 @@ public protocol Injector { /// - carrier: The `Carrier` to inject into. func inject(_ value: String, forKey key: String, into carrier: inout Carrier) } - -/// Conforming types are usually cross-cutting tools like tracers. They are agnostic of what specific `Carrier` is used -/// to propagate metadata across boundaries, but instead just specify what values to use for which keys. -public protocol InstrumentProtocol { - /// Extract values from a `Carrier` by using the given extractor and inject them into the given `Baggage`. - /// It's quite common for `Instrument`s to come up with new values if they weren't passed along in the given `Carrier`. - /// - /// - Parameters: - /// - carrier: The `Carrier` that was used to propagate values across boundaries. - /// - baggage: The `Baggage` into which these values should be injected. - /// - extractor: The ``Extractor`` that extracts values from the given `Carrier`. - func extract(_ carrier: Carrier, into baggage: inout Baggage, using extractor: Extract) - where Extract: Extractor, Extract.Carrier == Carrier - - /// Extract values from a `Baggage` and inject them into the given `Carrier` using the given ``Injector``. - /// - /// - Parameters: - /// - baggage: The `Baggage` from which relevant information will be extracted. - /// - carrier: The `Carrier` into which this information will be injected. - /// - injector: The ``Injector`` used to inject extracted `Baggage` into the given `Carrier`. - func inject(_ baggage: Baggage, into carrier: inout Carrier, using injector: Inject) - where Inject: Injector, Inject.Carrier == Carrier -} diff --git a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md index 38b317e0..02637e66 100644 --- a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md +++ b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md @@ -260,7 +260,7 @@ In such situations you can resort to using the ``TracerProtocol/startSpan(_:bagg // Callback heavy APIs may need to store and manage spans manually: var span: Span? -func startHandline(request: HTTPRequest) { +func startHandling(request: HTTPRequest) { self.span = InstrumentationSystem.tracer.startSpan("\(request.path)") userCode.handle(request) diff --git a/Sources/Tracing/Docs.docc/TracerProtocol.md b/Sources/Tracing/Docs.docc/TracerProtocol.md index 2f2be87c..fab417f9 100644 --- a/Sources/Tracing/Docs.docc/TracerProtocol.md +++ b/Sources/Tracing/Docs.docc/TracerProtocol.md @@ -2,8 +2,6 @@ ## Topics - - ### Working with Spans - ``withSpan(_:ofKind:_:)-11n3y`` diff --git a/Sources/Tracing/Tracer.swift b/Sources/Tracing/Tracer.swift index 5c4f2ccd..09e309fc 100644 --- a/Sources/Tracing/Tracer.swift +++ b/Sources/Tracing/Tracer.swift @@ -16,9 +16,19 @@ import Dispatch @_exported import Instrumentation @_exported import InstrumentationBaggage -/// An `Instrument` with added functionality for distributed tracing. It uses the span-based tracing model and is -/// based on the OpenTracing/OpenTelemetry spec. -public protocol TracerProtocol: InstrumentProtocol { +/// Convenience entry point to operations on the tracer configured +/// on the global ``InstrumentationSystem`` using the `InstrumentationSystem/bootstrap(_:)` method. +/// +/// If no tracer was bootstrapped, these operations will default to a no-op tracer (creating no spans). +/// +/// For implementing a new tracer, see ``TracerProtocol``. +enum Tracer: TracerStartSpanOps { + func startSpan(_ operationName: String, baggage: Baggage, ofKind kind: SpanKind, at time: DispatchWallTime) -> Span { + InstrumentationSystem.tracer.startSpan(operationName, baggage: baggage, ofKind: kind, at: time) + } +} + +public protocol TracerStartSpanOps { /// Start a new ``Span`` with the given `Baggage` at a given time. /// /// - Note: Prefer to use `withSpan` to start a span as it automatically takes care of ending the span, @@ -36,17 +46,9 @@ public protocol TracerProtocol: InstrumentProtocol { ofKind kind: SpanKind, at time: DispatchWallTime ) -> Span - - /// Export all ended spans to the configured backend that have not yet been exported. - /// - /// This function should only be called in cases where it is absolutely necessary, - /// such as when using some FaaS providers that may suspend the process after an invocation, but before the backend exports the completed spans. - /// - /// This function should not block indefinitely, implementations should offer a configurable timeout for flush operations. - func forceFlush() } -extension TracerProtocol { +extension TracerStartSpanOps { /// Start a new ``Span`` with the given `Baggage` starting at `DispatchWallTime.now()`. /// /// - Parameters: @@ -65,7 +67,7 @@ extension TracerProtocol { // ==== ---------------------------------------------------------------------------------------------------------------- // MARK: Starting spans: `withSpan` -extension TracerProtocol { +extension TracerStartSpanOps { /// Execute a specific task within a newly created ``Span``. /// /// DO NOT `end()` the passed in span manually. It will be ended automatically when the `operation` returns. @@ -92,6 +94,33 @@ extension TracerProtocol { throw error // rethrow } } + + /// Execute a specific task within a newly created ``Span``. + /// + /// DO NOT `end()` the passed in span manually. It will be ended automatically when the `operation` returns. + /// + /// - Parameters: + /// - operationName: The name of the operation being traced. This may be a handler function, database call, ... + /// - baggage: Baggage potentially containing trace identifiers of a parent ``Span``. + /// - kind: The ``SpanKind`` of the ``Span`` to be created. Defaults to ``SpanKind/internal``. + /// - operation: operation to wrap in a span start/end and execute immediately + /// - Returns: the value returned by `operation` + /// - Throws: the error the `operation` has thrown (if any) + public func withSpan( + _ operationName: String, + baggage: Baggage, + ofKind kind: SpanKind = .internal, + _ operation: () throws -> T + ) rethrows -> T { + let span = self.startSpan(operationName, baggage: baggage, ofKind: kind) + defer { span.end() } + do { + return try operation() + } catch { + span.recordError(error) + throw error // rethrow + } + } } // ==== ---------------------------------------------------------------------------------------------------------------- @@ -99,7 +128,7 @@ extension TracerProtocol { #if swift(>=5.5) && canImport(_Concurrency) @available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) -extension TracerProtocol { +extension TracerStartSpanOps { /// Execute the given operation within a newly created ``Span``, /// started as a child of the currently stored task local `Baggage.current` or as a root span if `nil`. /// @@ -123,6 +152,32 @@ extension TracerProtocol { } } + /// Execute the given operation within a newly created ``Span``, + /// started as a child of the currently stored task local `Baggage.current` or as a root span if `nil`. + /// + /// DO NOT `end()` the passed in span manually. It will be ended automatically when the `operation` returns. + /// + /// - Parameters: + /// - operationName: The name of the operation being traced. This may be a handler function, database call, ... + /// - kind: The ``SpanKind`` of the ``Span`` to be created. Defaults to ``SpanKind/internal``. + /// - operation: operation to wrap in a span start/end and execute immediately + /// - Returns: the value returned by `operation` + /// - Throws: the error the `operation` has thrown (if any) + public func withSpan( + _ operationName: String, + ofKind kind: SpanKind = .internal, + _ operation: () throws -> T + ) rethrows -> T { + try self.withSpan(operationName, baggage: .current ?? .topLevel, ofKind: kind) { span in + try Baggage.$current.withValue(span.baggage) { + try operation() + } + } + } +} + +@available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) +extension TracerStartSpanOps { /// Execute the given async operation within a newly created ``Span``, /// started as a child of the currently stored task local `Baggage.current` or as a root span if `nil`. /// @@ -183,3 +238,18 @@ extension TracerProtocol { } } #endif + +// ==== ---------------------------------------------------------------------------------------------------------------- +// MARK: TracerProtocol + +/// An `Instrument` with added functionality for distributed tracing. It uses the span-based tracing model and is +/// based on the OpenTracing/OpenTelemetry spec. +public protocol TracerProtocol: TracerStartSpanOps, InstrumentProtocol { + /// Export all ended spans to the configured backend that have not yet been exported. + /// + /// This function should only be called in cases where it is absolutely necessary, + /// such as when using some FaaS providers that may suspend the process after an invocation, but before the backend exports the completed spans. + /// + /// This function should not block indefinitely, implementations should offer a configurable timeout for flush operations. + func forceFlush() +} \ No newline at end of file diff --git a/Tests/TracingTests/TracerTests.swift b/Tests/TracingTests/TracerTests.swift index 987f3e76..bb5638e2 100644 --- a/Tests/TracingTests/TracerTests.swift +++ b/Tests/TracingTests/TracerTests.swift @@ -116,7 +116,7 @@ final class TracerTests: XCTestCase { "world" } - let value = tracer.withSpan("hello") { (span: Span) -> String in + let value = tracer.withSpan("hello") { span -> String in XCTAssertEqual(span.baggage.traceID, Baggage.current?.traceID) return operation(span: span) } @@ -156,6 +156,32 @@ final class TracerTests: XCTestCase { #endif } + func testWithSpan_operation_withoutSpanPassed() throws { + #if swift(>=5.5) && canImport(_Concurrency) + guard #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) else { + throw XCTSkip("Task locals are not supported on this platform.") + } + + let tracer = TestTracer() + InstrumentationSystem.bootstrapInternal(tracer) + defer { + InstrumentationSystem.bootstrapInternal(nil) + } + + var spansEnded = 0 + tracer.onEndSpan = { _ in spansEnded += 1 } + + tracer.withSpan("hello") { + // ... + } + tracer.withSpan("hello-again", baggage: .topLevel) { + // ... + } + + XCTAssertEqual(spansEnded, 2) + #endif + } + func testWithSpan_automaticBaggagePropagation_async() throws { #if swift(>=5.5) && canImport(_Concurrency) guard #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) else { @@ -176,7 +202,7 @@ final class TracerTests: XCTestCase { } try self.testAsync { - let value = try await tracer.withSpan("hello") { (span: Span) -> String in + let value = try await tracer.withSpan("hello") { span -> String in XCTAssertEqual(span.baggage.traceID, Baggage.current?.traceID) return try await operation(span: span) } @@ -209,7 +235,7 @@ final class TracerTests: XCTestCase { self.testAsync { var fromNonAsyncWorld = Baggage.topLevel fromNonAsyncWorld.traceID = "1234-5678" - let value = await tracer.withSpan("hello", baggage: fromNonAsyncWorld) { (span: Span) -> String in + let value = await tracer.withSpan("hello", baggage: fromNonAsyncWorld) { span -> String in XCTAssertEqual(span.baggage.traceID, Baggage.current?.traceID) XCTAssertEqual(span.baggage.traceID, fromNonAsyncWorld.traceID) return await operation(span: span) From 1785645149c50d1d277492bd1e9b11ac2ba545a1 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Sun, 6 Nov 2022 22:17:51 +0900 Subject: [PATCH 07/14] +docs,sample Include Sample Dinner system and document with images --- Samples/Dinner/.gitignore | 2 + Samples/Dinner/Package.swift | 23 + Samples/Dinner/README.md | 18 + .../Sources/Onboarding/Clock+Extensions.swift | 16 + .../Dinner/Sources/Onboarding/Dinner.swift | 76 +++ Samples/Dinner/Sources/Onboarding/Model.swift | 21 + Samples/Dinner/Sources/Onboarding/main.swift | 63 +++ Samples/Dinner/docker/collector-config.yaml | 24 + Samples/Dinner/docker/docker-compose.yaml | 26 + .../Docs.docc/Guides/TraceYourApplication.md | 468 +++++++++++++----- .../Docs.docc/Images/jaeger-attribute.png | Bin 0 -> 126900 bytes .../Docs.docc/Images/makeDinner-jaeger-01.png | Bin 0 -> 83723 bytes .../Docs.docc/Images/makeDinner-jaeger-02.png | Bin 0 -> 144924 bytes .../Docs.docc/Images/makeDinner-jaeger-03.png | Bin 0 -> 85728 bytes .../Images/makeDinner-jaeger-040-before.png | Bin 0 -> 74283 bytes .../Images/makeDinner-jaeger-041-after.png | Bin 0 -> 81429 bytes .../Images/makeDinner-jaeger-event.png | Bin 0 -> 49768 bytes .../Docs.docc/Images/makeDinner-zipkin-01.png | Bin 0 -> 82333 bytes .../Docs.docc/Images/makeDinner-zipkin-02.png | Bin 0 -> 85413 bytes .../Images/makeDinner-zipkin-event.png | Bin 0 -> 119109 bytes Sources/Tracing/Docs.docc/TracerProtocol.md | 2 +- 21 files changed, 612 insertions(+), 127 deletions(-) create mode 100644 Samples/Dinner/.gitignore create mode 100644 Samples/Dinner/Package.swift create mode 100644 Samples/Dinner/README.md create mode 100644 Samples/Dinner/Sources/Onboarding/Clock+Extensions.swift create mode 100644 Samples/Dinner/Sources/Onboarding/Dinner.swift create mode 100644 Samples/Dinner/Sources/Onboarding/Model.swift create mode 100644 Samples/Dinner/Sources/Onboarding/main.swift create mode 100644 Samples/Dinner/docker/collector-config.yaml create mode 100644 Samples/Dinner/docker/docker-compose.yaml create mode 100644 Sources/Tracing/Docs.docc/Images/jaeger-attribute.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-01.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-02.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-03.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-040-before.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-041-after.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-event.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-zipkin-01.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-zipkin-02.png create mode 100644 Sources/Tracing/Docs.docc/Images/makeDinner-zipkin-event.png diff --git a/Samples/Dinner/.gitignore b/Samples/Dinner/.gitignore new file mode 100644 index 00000000..0a4509a3 --- /dev/null +++ b/Samples/Dinner/.gitignore @@ -0,0 +1,2 @@ +.build +Package.resolved diff --git a/Samples/Dinner/Package.swift b/Samples/Dinner/Package.swift new file mode 100644 index 00000000..37f565c7 --- /dev/null +++ b/Samples/Dinner/Package.swift @@ -0,0 +1,23 @@ +// swift-tools-version:5.3 +import PackageDescription + +let package = Package( + name: "onboarding", + platforms: [ + .macOS("14.0.0"), + ], + products: [ + .executable(name: "onboarding", targets: ["Onboarding"]), + ], + dependencies: [ + // This example uses the following tracer implementation: + .package(url: "https://github.com/slashmo/opentelemetry-swift", .branch("main")), + .package(url: "https://github.com/apple/swift-log.git", from: "1.0.0"), + ], + targets: [ + .target(name: "Onboarding", dependencies: [ + .product(name: "OpenTelemetry", package: "opentelemetry-swift"), + .product(name: "OtlpGRPCSpanExporting", package: "opentelemetry-swift"), + ]), + ] +) diff --git a/Samples/Dinner/README.md b/Samples/Dinner/README.md new file mode 100644 index 00000000..ac0cae56 --- /dev/null +++ b/Samples/Dinner/README.md @@ -0,0 +1,18 @@ +## Tracing Dinner Sample App + +In order to try this sample app, and visualize traces it produces, you should first run docker-compose in order +to launch a docker containers which host a Zipkin UI and collector: + +``` +# cd Samples/Dinner + +docker-compose -f docker/docker-compose.yaml up --build +``` + +and then run the sample app which will produce a number of traces: + +``` +swift run -c release +``` + +Refer to the "Trace Your Application" guide in the documentation to learn more about how to interpret this sample. \ No newline at end of file diff --git a/Samples/Dinner/Sources/Onboarding/Clock+Extensions.swift b/Samples/Dinner/Sources/Onboarding/Clock+Extensions.swift new file mode 100644 index 00000000..3d00f64b --- /dev/null +++ b/Samples/Dinner/Sources/Onboarding/Clock+Extensions.swift @@ -0,0 +1,16 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift OpenTelemetry open source project +// +// Copyright (c) 2021 Moritz Lang and the Swift OpenTelemetry project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +func sleep(for duration: ContinuousClock.Duration) async { + try? await Task.sleep(until: ContinuousClock.now + duration, clock: .continuous) +} \ No newline at end of file diff --git a/Samples/Dinner/Sources/Onboarding/Dinner.swift b/Samples/Dinner/Sources/Onboarding/Dinner.swift new file mode 100644 index 00000000..b88293e9 --- /dev/null +++ b/Samples/Dinner/Sources/Onboarding/Dinner.swift @@ -0,0 +1,76 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift OpenTelemetry open source project +// +// Copyright (c) 2021 Moritz Lang and the Swift OpenTelemetry project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +import Tracing + +func makeDinner() async throws -> Meal { + try await InstrumentationSystem.tracer.withSpan("makeDinner") { _ in + await sleep(for: .milliseconds(200)) + + async let veggies = try chopVegetables() + async let meat = marinateMeat() + async let oven = preheatOven(temperature: 350) + // ... + return try await cook(veggies, meat, oven) + } +} + +func chopVegetables() async throws -> [Vegetable] { + try await otelChopping1.tracer().withSpan("chopVegetables") { _ in + // Chop the vegetables...! + // + // However, since chopping is a very difficult operation, + // one chopping task can be performed at the same time on a single service! + // (Imagine that... we cannot parallelize these two tasks, and need to involve another service). + async let carrot = try chop(.carrot, tracer: otelChopping1.tracer()) + async let potato = try chop(.potato, tracer: otelChopping2.tracer()) + return try await [carrot, potato] + } +} + +func chop(_ vegetable: Vegetable, tracer: any Tracer) async throws -> Vegetable { + await tracer.withSpan("chop-\(vegetable)") { _ in + await sleep(for: .seconds(5)) + // ... + return vegetable // "chopped" + } +} + +func marinateMeat() async -> Meat { + await sleep(for: .milliseconds(620)) + + return await InstrumentationSystem.tracer.withSpan("marinateMeat") { _ in + await sleep(for: .seconds(3)) + // ... + return Meat() + } +} + +func preheatOven(temperature: Int) async -> Oven { + await InstrumentationSystem.tracer.withSpan("preheatOven") { _ in + // ... + await sleep(for: .seconds(6)) + return Oven() + } +} + +func cook(_: Any, _: Any, _: Any) async -> Meal { + await InstrumentationSystem.tracer.withSpan("cook") { span in + span.addEvent("children-asking-if-done-already") + await sleep(for: .seconds(3)) + span.addEvent("children-asking-if-done-already-again") + await sleep(for: .seconds(2)) + // ... + return Meal() + } +} diff --git a/Samples/Dinner/Sources/Onboarding/Model.swift b/Samples/Dinner/Sources/Onboarding/Model.swift new file mode 100644 index 00000000..d1005deb --- /dev/null +++ b/Samples/Dinner/Sources/Onboarding/Model.swift @@ -0,0 +1,21 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift OpenTelemetry open source project +// +// Copyright (c) 2021 Moritz Lang and the Swift OpenTelemetry project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +struct Meal: Sendable {} +struct Meat: Sendable {} +struct Oven: Sendable {} +enum Vegetable: Sendable { + case potato + case carrot +} + diff --git a/Samples/Dinner/Sources/Onboarding/main.swift b/Samples/Dinner/Sources/Onboarding/main.swift new file mode 100644 index 00000000..c5c74ca7 --- /dev/null +++ b/Samples/Dinner/Sources/Onboarding/main.swift @@ -0,0 +1,63 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift OpenTelemetry open source project +// +// Copyright (c) 2021 Moritz Lang and the Swift OpenTelemetry project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +import Logging +import NIO +import OpenTelemetry +import OtlpGRPCSpanExporting +import Tracing + +// ==== ---------------------------------------------------------------------------------------------------------------- + +let group = MultiThreadedEventLoopGroup(numberOfThreads: 1) + +LoggingSystem.bootstrap { label in + var handler = StreamLogHandler.standardOutput(label: label) + handler.logLevel = .trace + return handler +} + +// ==== ---------------------------------------------------------------------------------------------------------------- +// MARK: - Configure OTel + +let exporter = OtlpGRPCSpanExporter(config: OtlpGRPCSpanExporter.Config(eventLoopGroup: group)) +let processor = OTel.SimpleSpanProcessor(exportingTo: exporter) +let otel = OTel(serviceName: "DinnerService", eventLoopGroup: group, processor: processor) + +let otelChopping1 = OTel(serviceName: "ChoppingService-1", eventLoopGroup: group, processor: processor) +let otelChopping2 = OTel(serviceName: "ChoppingService-2", eventLoopGroup: group, processor: processor) + +// First start `OTel`, then bootstrap the instrumentation system. +// This makes sure that all components are ready to begin handling spans. +try otel.start().wait() +try otelChopping1.start().wait() +try otelChopping2.start().wait() + +// By bootstrapping the instrumentation system, our dependencies +// compatible with "Swift Distributed Tracing" will also automatically +// use the "OpenTelemetry Swift" Tracer 🚀. +InstrumentationSystem.bootstrap(otel.tracer()) + +// ==== ---------------------------------------------------------------------------------------------------------------- +// MARK: - Run the sample app + +let dinner = try await makeDinner() + +// ==== ---------------------------------------------------------------------------------------------------------------- +// MARK: - Shutdown + +// Wait a second to let the exporter finish before shutting down. +sleep(2) + +try otel.shutdown().wait() +try group.syncShutdownGracefully() diff --git a/Samples/Dinner/docker/collector-config.yaml b/Samples/Dinner/docker/collector-config.yaml new file mode 100644 index 00000000..1a9f4b8a --- /dev/null +++ b/Samples/Dinner/docker/collector-config.yaml @@ -0,0 +1,24 @@ +receivers: + otlp: + protocols: + grpc: + endpoint: otel-collector:4317 + +exporters: + logging: + logLevel: debug + + jaeger: + endpoint: "jaeger:14250" + tls: + insecure: true + + zipkin: + endpoint: "http://zipkin:9411/api/v2/spans" + + +service: + pipelines: + traces: + receivers: otlp + exporters: [logging, jaeger, zipkin] diff --git a/Samples/Dinner/docker/docker-compose.yaml b/Samples/Dinner/docker/docker-compose.yaml new file mode 100644 index 00000000..b4522b41 --- /dev/null +++ b/Samples/Dinner/docker/docker-compose.yaml @@ -0,0 +1,26 @@ +version: '3' +services: + otel-collector: + image: otel/opentelemetry-collector-contrib:latest + command: ["--config=/etc/config.yaml"] + volumes: + - ./collector-config.yaml:/etc/config.yaml + ports: + - "4317:4317" + networks: [exporter] + depends_on: [zipkin, jaeger] + + zipkin: + image: openzipkin/zipkin:latest + ports: + - "9411:9411" + networks: [exporter] + + jaeger: + image: jaegertracing/all-in-one + ports: + - "16686:16686" + networks: [exporter] + +networks: + exporter: diff --git a/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md index 79b8dbac..b1942f11 100644 --- a/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md +++ b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md @@ -6,47 +6,81 @@ This guide is aimed at **application developers** who have some server-side syst in order to improve their understanding and facilitate performance tuning and debugging their services in production or development. Distributed tracing offers a way to gain additional insight into how your application is performing in production, without having to reconstruct the "big picture" from manually piecing together log lines and figuring out what happened -after what else and _why_. Distributed traces, as the name implies, also span multiple nodes in a micro-service architecture +after what else and _why_. Distributed traces, as the name implies, also span multiple nodes in a microservice architecture or clustered system, and provide a profiler-like experience to debugging the handling of a "request" or otherwise defined span. -### Setting up instruments & tracers +### Setting up -As an end-user building server applications you get to choose what instruments to use to instrument your system. Here are -all the steps you need to take to get up and running: +The first step to get metadata propagation and tracing working in your application is picking an instrumentation or tracer +implementation. A complete [list of swift-distributed-tracing implementations](http://github.com/apple/swift-distributed-tracing) +is available in this project's README. Select an implementation you'd like to use and follow its bootstrap steps. -Add a package dependency for this repository in your `Package.swift` file, and one for the specific instrument you want -to use, in this case `FancyInstrument`: +> Note: Since instrumenting an **application** in practice will always need to pull in an existing tracer implementation, +> in this guide we'll use the community maintained [`opentelemetry-swift`](https://github.com/slashmo/opentelemetry-swift) +> tracer, as an example of how you'd start using tracing in your real applications. +> +> If you'd rather implement your own tracer, refer to . + +Once you have selected an implementation, add it as a dependency to your `Package.swift` file. ```swift -// depend on some instrumentation library: -.package(url: "", from: "<1.2.3>"), +// Depend on the instrumentation library, e.g. opentelemetry-swift: +.package(url: "https://github.com/slashmo/opentelemetry-swift.git", from: ""), -// which generally will already depend on the tracing API, -// however you can depend on it explicitly as well: -.package(url: "https://github.com/apple/swift-distributed-tracing.git", from: 1.0.0), +// This will automatically include a dependency on the swift-distributed-tracing API: +// .package(url: "https://github.com/apple/swift-distributed-tracing.git", from: 1.0.0), ``` -To your main target, add a dependency on the `Instrumentation library` and the instrument you want to use: +Next, add the dependency to your application target: ```swift .target( name: "MyApplication", dependencies: [ - .product(name: "FancyInstrument", package: "example-fancy-instrument"), + .product(name: "OpenTelemetry", package: "opentelemetry-swift"), ] ), ``` -### Bootstrapping the `InstrumentationSystem` +### Bootstrapping the Tracer + +Similar to [swift-log](https://github.com/apple/swift-log) and [swift-metrics](https://github.com/apple/swift-metrics), +the first thing you'll need to do in your application to use tracing, is to bootstrap the global instance of the tracing system. -Instead of providing each instrumented library with a specific instrument explicitly, you *bootstrap* the -`InstrumentationSystem` which acts as a singleton that libraries/frameworks access when calling out to the configured -`Instrument`: +This will allow not only your code, that we're about to write, to use tracing, but also all other libraries which +have been implemented against the distributed tracing API to use it as well. For example, by configuring the global +tracing system, an HTTP server or client will automatically handle trace propagation for you, so make sure to always +bootstrap your tracer globally, otherwise you might miss out on its crucial context propagation features. + +How the tracer library is initialized will differ from library to library, so refer to the respective implementation's +documentation. Once you're ready, pass the tracer or instrument to the ``InstrumentationSystem/bootstrap(_:)`` method, +e.g. like this: ```swift -InstrumentationSystem.bootstrap(FancyInstrument()) +import Tracing // this library + +// Import and prepare whatever the specific tracer implementation needs. +// In our example case, we'll prepare the OpenTelemetry tracing system: +import NIO +import OpenTelemetry + +let group = MultiThreadedEventLoopGroup(numberOfThreads: 1) +let otel = OTel(serviceName: "onboarding", eventLoopGroup: group) +try otel.start().wait() + +// Bootstrap the tracing system: +InstrumentationSystem.bootstrap(otel.tracer()) ``` +You'll notice that the API specifically talks about Instrumentation rather than just Tracing. +This is because it is also possible to use various instrumentation systems, e.g. which only take care +of propagating certain `Baggage` values across process boundaries, without using tracing itself. + +In other words, all tracers are instruments, and the `InstrumentationSystem` works equally for ``InstrumentProtocol``, +as well as ``TracerProtocol`` implementations. + +Our guide focuses on tracing through, so let's continue with that in mind. + #### Recommended bootstrap order Swift offers developers a suite of observability libraries: logging, metrics and tracing. Each of those systems offers a `bootstrap` function. It is useful to stick to a recommended boot order in order to achieve predictable initialization of applications and sub-systems. @@ -55,16 +89,56 @@ Specifically, it is recommended to bootstrap systems in the following order: 1. [Swift Log](https://github.com/apple/swift-log#default-logger-behavior)'s `LoggingSystem` 2. [Swift Metrics](https://github.com/apple/swift-metrics#selecting-a-metrics-backend-implementation-applications-only)' `MetricsSystem` -3. Swift Tracing's `InstrumentationSystem` +3. [Swift Distributed Tracing](https://github.com/apple/swift-distributed-tracing)'s `InstrumentationSystem` 4. Finally, any other parts of your application -This is because tracing systems may attempt to emit metrics about their status etc. +This is because tracing systems may attempt to emit logs or metrics about their status etc. + +If you intend to use trace identifiers for log correlation (i.e. logging a `trace-id` in every log statement that is part of a trace), +then don't forget to also configure a swift-lot `MetadataProvider`. + +A typical bootstrap could look something like this: + +```swift +import OpenTelemetry +import StatsdMetrics +import FancyLogging + +extension Logger.MetadataProvider { + + // Include the following OpenTelemetry tracer specific metadata in log statements: + static let otel = Logger.MetadataProvider { baggage in + guard let spanContext = baggage?.spanContext else { return nil } + return [ + "trace-id": "\(spanContext.traceID)", + "span-id": "\(spanContext.spanID)", + ] + } +} + +// 1) bootstrap swift-log: stdout-logger +LoggingSystem.bootstrap( + StreamLogHandler.standardOutput, + metadataProvider: .otel +) + +// 2) bootstrap metrics: statsd +let statsdClient = try StatsdClient(host: host, port: port) +MetricsSystem.bootstrap(statsdClient) + +// 3) bootstrap swift-distributed-tracing: open-telemetry +let group: MultiThreadedEventLoopGroup = ... +let otel = OTel(serviceName: "onboarding", eventLoopGroup: group) + +try otel.start().wait() +InstrumentationSystem.bootstrap(otel.tracer()) + +// 4) Continue starting your application ... +``` #### Bootstrapping multiple instruments using MultiplexInstrument -It is important to note that `InstrumentationSystem.bootstrap(_: InstrumentProtocol)` must only be called once. In case you -want to bootstrap the system to use multiple instruments, you group them in a `MultiplexInstrument` first, which you -then pass along to the `bootstrap` method like this: +If you'd find yourself in need of using multiple instrumentation or tracer implementations you can group them in a `MultiplexInstrument` first, which you then pass along to the `bootstrap` method like this: ```swift InstrumentationSystem.bootstrap(MultiplexInstrument([FancyInstrument(), OtherFancyInstrument()])) @@ -72,156 +146,298 @@ InstrumentationSystem.bootstrap(MultiplexInstrument([FancyInstrument(), OtherFan `MultiplexInstrument` will then call out to each instrument it has been initialized with. -### Context propagation, by explicit `FIXME!!!` passing +### Introducing Trace Spans + +The primary way you interact with distributed tracing is by starting ``Span``s. + +Spans form hierarchies with their parent spans, and end up being visualized using various tools, usually in a format similar to gant charts. So for example, if we had multiple operations that compose making dinner, they would be modelled as child spans of a main `makeDinner` span. Any sub tasks are again modelled as child spans of any given operation, and so on. -> `FIXME!!!` naming has been carefully selected and it reflects the type's purpose and utility: It binds a [Swift Log `Logger`](https://github.com/apple/swift-log) with an associated distributed tracing [Baggage](https://github.com/apple/swift-distributed-tracing-baggage). +In order to discuss how tracing works, let us first look at a sample trace, before we even take a look at the any source code. This reflects how you may find yourself using tracing once it has been adopted in your microservice or distributed system architecture: there are many services involved, and often times only from a trace you can know where to start looking at a performance or logical regression in the system. + +> Experiment: **Follow along!** You can follow along and explore the generated traces, and the code producing them by opening the sample project located in `Samples/Dinner`! +> +> The sample includes a docker-compose file which starts an [OpenTelemetry](https://opentelemetry.io) [collector](https://opentelemetry.io/docs/collector/), as well as two UIs which can be used to explore the generated traces: +> +> - [Zipkin](http://zipkin.io) - available at [http://127.0.0.1:9411](http://127.0.0.1:9411) +> - [Jaeger](https://www.jaegertracing.io) - available at [http://127.0.0.1:16686](http://127.0.0.1:16686) +> +> In order to start these containers, navigate to the `Samples/Dinner` project and run `docker-compose`, like this: +> +> ```bash +> $ cd Samples/Dinner +> $ docker-compose -f docker/docker-compose.yaml up --build +> # Starting docker_zipkin_1 ... done +> # Starting docker_jaeger_1 ... done +> # Recreating docker_otel-collector_1 ... done +> # Attaching to docker_jaeger_1, docker_zipkin_1, docker_otel-collector_1 +> ``` > -> It _also_ is used for tracing, by tracers reaching in to read or modify the carried baggage. +> This will run docker containers with the services described above, and expose their ports via localhost, including the collector to which we now can export our traces from our development machine. +> +> Keep these containers running, and then, in another terminal window run the sample app that will generate some traces: +> +> ```bash +> $ swift run -c release +> ``` -For instrumentation and tracing to work, certain pieces of metadata (usually in the form of identifiers), must be -carried throughout the entire system–including across process and service boundaries. Because of that, it's essential -for a context object to be passed around your application and the libraries/frameworks you depend on, but also carried -over asynchronous boundaries like an HTTP call to another service of your app. +Once you have run the sample app, you need to hit "search" in either trace visualization UI, and navigate through to expand the trace view. You'll be greeted with a trace looking somwhat like this (in Zipkin): -`FIXME!!!` should always be passed around explicitly. +![Make dinner trace diagram](makeDinner-zipkin-01) -Libraries which support tracing are expected to accept a `FIXME!!!` parameter, which can be passed through the entire application. Make sure to always pass along the context that's previously handed to you. E.g., when making an HTTP request using `AsyncHTTPClient` in a `NIO` handler, you can use the `ChannelHandlerContext`s `baggage` property to access the `FIXME!!!`. +Or, if you prefer Jaeger, it'd look something like this: -#### Context argument naming/positioning +![Make dinner trace diagram](makeDinner-jaeger-01) -> 💡 This general style recommendation has been ironed out together with the Swift standard library, core team, the SSWG as well as members of the community. Please respect these recommendations when designing APIs such that all APIs are able to "feel the same" yielding a great user experience for our end users ❤️ -> -> It is possible that the ongoing Swift Concurrency efforts and "Task Local" values will resolve this explicit context passing problem, however until these arrive in the language, please adopt the "context is the last parameter" style as outlined here. +Take a moment to look at the trace spans featured in these diagrams. -Propagating baggage context through your system is to be done explicitly, meaning as a parameter in function calls, following the "flow" of execution. +By looking at them, you should be able to get a rough idea what the code is doing. That's right, it is a top-level `makeDinner` method, that seems to be performing a bunch of tasks in order to prepare a nice meal. -When passing baggage context explicitly we strongly suggest sticking to the following style guideline: +You may also notice that all those traces are executing in the same _service_: the `DinnerService`. This means that we only had one process involved in this trace. Further, by investigating this trace, we can spot that the `chopVegetables` parent span starts two child spans: `chop-carrot` and `chop-potato`, but does so **sequentially**! If we were looking to optimize the time it takes for `makeDinner` to complete, parallelizing these vegetable chopping tasks could be a good idea. -- Assuming the general parameter ordering of Swift function is as follows (except DSL exceptions): - 1. Required non-function parameters (e.g. `(url: String)`), - 2. Defaulted non-function parameters (e.g. `(mode: Mode = .default)`), - 3. Required function parameters, including required trailing closures (e.g. `(onNext elementHandler: (Value) -> ())`), - 4. Defaulted function parameters, including optional trailing closures (e.g. `(onComplete completionHandler: (Reason) -> ()) = { _ in }`). -- Logging Context should be passed as **the last parameter in the required non-function parameters group in a function declaration**. +Now, let us take a brief look at the code creating all these spans. -This way when reading the call side, users of these APIs can learn to "ignore" or "skim over" the context parameter and the method signature remains human-readable and “Swifty”. +> Tip: You can refer to the full code by viewing the `main.swift` file in the Dinner sample app. -Examples: +```swift +func makeDinner() async throws -> Meal { + try await InstrumentationSystem.tracer.withSpan("makeDinner") { _ in + async let veggies = try chopVegetables() + async let meat = marinateMeat() + async let oven = preheatOven(temperature: 350) + // ... + return try await cook(veggies, meat, oven) + } +} -- `func request(_ url: URL,` **`context: FIXME!!!`** `)`, which may be called as `httpClient.request(url, context: context)` -- `func handle(_ request: RequestObject,` **`context: FIXME!!!`**`)` - - if a "framework context" exists and _carries_ the baggage context already, it is permitted to pass that context - together with the baggage; - - it is _strongly recommended_ to store the baggage context as `baggage` property of `FrameworkContext`, and conform `FrameworkContext` to `FIXME!!!` in such cases, in order to avoid the confusing spelling of `context.context`, and favoring the self-explanatory `context.baggage` spelling when the baggage is contained in a framework context object. -- `func receiveMessage(_ message: Message, context: FrameworkContext)` -- `func handle(element: Element,` **`context: FIXME!!!`** `, settings: Settings? = nil)` - - before any defaulted non-function parameters -- `func handle(element: Element,` **`context: FIXME!!!`** `, settings: Settings? = nil, onComplete: () -> ())` - - before defaulted parameters, which themselfes are before required function parameters -- `func handle(element: Element,` **`context: FIXME!!!`** `, onError: (Error) -> (), onComplete: (() -> ())? = nil)` +func chopVegetables() async throws -> [Vegetable] { + await Tracer.withSpan("chopVegetables") { + // Chop the vegetables...! + // + // However, since chopping is a very difficult operation, + // one chopping task can be performed at the same time on a single service! + // (Imagine that... we cannot parallelize these two tasks, and need to involve another service). + let carrot = try await chop(.carrot) + let potato = try await chop(.potato) + return [carrot, potato] + } +} -In case there are _multiple_ "framework-ish" parameters, such as passing a NIO `EventLoop` or similar, we suggest: +// ... +``` -- `func perform(_ work: Work, for user: User,` _`frameworkThing: Thing, eventLoop: NIO.EventLoop,`_ **`context: FIXME!!!`**`)` - - pass the baggage as **last** of such non-domain specific parameters as it will be _by far more_ omnipresent than any - specific framework parameter - as it is expected that any framework should be accepting a context if it can do so. - While not all libraries are necessarily going to be implemented using the same frameworks. +It seems that the sequential work on the vegetable chopping is not accidental... we cannot do two of those at the same time on a single service. Therfore, let's introduce new services that will handle the vegetable chopping for us! -We feel it is important to preserve Swift's human-readable nature of function definitions. In other words, we intend to -keep the read-out-loud phrasing of methods to remain _"request that URL (ignore reading out loud the context parameter)"_ -rather than _"request (ignore this context parameter when reading) that URL"_. +For example, we could split out the vegetable chopping into a service on its own, and request it (via an HTTP, gRPC, or `distributed actor` call), to chop some vegetables for us. The resulting trace will have the same information, even though a part of it now has been executing on a different host! To further illustrate that, let us re-draw the previous diagram, while adding node designations to each span: -#### When to use what context type? +A trace of such system would then look like this: -Generally libraries should favor accepting the general `FIXME!!!` type, and **not** attempt to wrap it, as it will result in difficult to compose APIs between multiple libraries. Because end users are likely going to be combining various libraries in a single application, it is important that they can "just pass along" the same context object through all APIs, regardless which other library they are calling into. +![A new service handling "chopping" tasks is introduced, it has 3 spans about chopping](makeDinner-zipkin-02) -Frameworks may need to be more opinionated here, and e.g. already have some form of "per request context" contextual object which they will conform to `FIXME!!!`. _Within_ such framework it is fine and expected to accept and pass the explicit `SomeFrameworkContext`, however when designing APIs which may be called _by_ other libraries, such framework should be able to accept a generic `FIXME!!!` rather than its own specific type. +The `DinnerService` reached out to `ChoppingService-1` that it discovered, and then to parallelize the work, it submitted the secondary chopping task to another service (`ChoppingService-2`). Those two tasks are now performed in parallel, leading to a an improved response time of `makeDinner` service call. -#### Existing context argument +Let us have another look at these spans in Jaeger. The search UI will show us both the previous, and latest execution traces, so we can compare how the execution changed over time: -When adapting an existing library/framework to support `FIXME!!!` and it already has a "framework context" which is expected to be passed through "everywhere", we suggest to follow these guidelines for adopting FIXME!!!: +![Search view in Jaeger, showing the different versions of traces](makeDinner-jaeger-02) -1. Add a `Baggage` as a property called `baggage` to your own `context` type, so that the call side for your - users becomes `context.baggage` (rather than the confusing `context.context`) -2. If you cannot or it would not make sense to carry baggage inside your framework's context object, pass (and accept (!)) the `FIXME!!!` in your framework functions like follows: -- if they take no framework context, accept a `context: FIXME!!!` which is the same guideline as for all other cases -- if they already _must_ take a context object and you are out of words (or your API already accepts your framework context as "context"), pass the baggage as **last** parameter (see above) yet call the parameter `baggage` to disambiguate your `context` object from the `baggage` context object. +The different services are color coded, and we can see them execute in parallel here as well: -Examples: +![Trace view in Jaeger, spans are parallel now](makeDinner-jaeger-03) -- `Lambda.Context` may contain `baggage` and a `logger` and should be able to conform to `FIXME!!!` - - passing context to a `Lambda.Context` unaware library becomes: `http.request(url: "...", context: context)`. -- `ChannelHandlerContext` offers a way to set/get baggage on the underlying channel via `context.baggage = ...` - - this context is not passed outside a handler, but within it may be passed as is, and the baggage may be accessed on it directly through it. - - Example: [https://github.com/apple/swift-nio/pull/1574](https://github.com/apple/swift-nio/pull/1574) +One additional view we can explore in Jaeger is a **flamegraph** based off the traces. Here we can compare the "before" and "after" flamegraphs: -### Creating context objects (and when not to do so) +**Before:** -Generally application developers _should not_ create new context objects, but rather keep passing on a context value that they were given by e.g. the web framework invoking the their code. +![](makeDinner-jaeger-040-before) -If really necessary, or for the purposes of testing, one can create a baggage or context using one of the two factory functions: +**After:** -- [`DefaultFIXME!!!.topLevel(logger:)`](https://github.com/apple/swift-distributed-tracing-baggage/blob/main/Sources/Baggage/FIXME!!!.swift) or [`Baggage.topLevel`](https://github.com/apple/swift-distributed-tracing-baggage-core/blob/main/Sources/CoreBaggage/Baggage.swift) - which creates an empty context/baggage, without any values. It should _not_ be used too frequently, and as the name implies in applications it only should be used on the "top level" of the application, or at the beginning of a contextless (e.g. timer triggered) event processing. -- [`DefaultFIXME!!!.TODO(logger:reason:)`](https://github.com/apple/swift-distributed-tracing-baggage/blob/main/Sources/Baggage/FIXME!!!.swift) or [`Baggage.TODO`](https://github.com/apple/swift-distributed-tracing-baggage-core/blob/main/Sources/CoreBaggage/Baggage.swift) - which should be used to mark a parameter where "before this code goes into production, a real context should be passed instead." An application can be run with `-DBAGGAGE_CRASH_TODOS` to cause the application to crash whenever a TODO context is still in use somewhere, making it easy to diagnose and avoid breaking context propagation by accidentally leaving in a `TODO` context in production. +![](makeDinner-jaeger-041-after) -Please refer to the respective functions documentation for details. +By investigating flamegraphs, you are able to figure out the percentage of time spent and dominating certain functions. Our example was a fairly typical change, where we sped up the `chopVegetables` from taking 65% of the `makeDinner` execution, to just 43%. The flamegraph view can be useful in complex applications, in order to quickly locate which methods or services are taking the most time, and would be worth optimizing, as the span overview sometime can get pretty "busy" in a larger system, performing many calls. -If using a framework which itself has a "`...Context`" object you may want to inspect it for similar factory functions, as `FIXME!!!` is a protocol, that may be conformed to by frameworks to provide a smoother user experience. +This was just a quick introduction to tracing, but hopefully you are now excited to learn more about tracing and using it to monitor and improve your server side Swift applications! In the following sections we'll discuss how to actually instrument your code, and how to make spans effective by including as much relevant information in them as possible. -### Working with `Span`s +### Efficiently working with Spans -The primary way you interact with distributed tracing is by starting ``Span``s. +We already saw the basic API to spawn a trace span, the ``TracerProtocol/withSpan(_:ofKind:_:)-28ctq`` method, but we didn't discuss it in depth yet. In this section we'll discuss how to efficiently work with spans and some common patterns and practices. -Spans form hierarchies with their parent spans, and end up being visualized using various tools, usually in a format similar to gant charts. So for example, if we had multiple operations that compose making dinner, they would be modelled as child spans of a main `makeDinner` span. Any sub tasks are again modelled as child spans of any given operation, and so on, resulting in a trace view similar to: +Firstly, spans are created using a `withSpan` call and performing the operation contained within the span in the trailing operation closure body. This is important because it automatically, and correctly, delimits the lifetime of the span: from it's creation, until the operation closure returns: +```swift +Tracer.withSpan("Working on my novel") { span in + write(.novel) +} ``` ->-v-v-v----- makeDinner ------------------------v---------------x [15s] - \-|-|- chopVegetables------v---x | [2s] - | | \- chop-carrot ---x | | [1s] - | | \--- chop-potato-x | [1s] - \-|- marinateMeat -----------x | [3s] - \- preheatOven ------------x | [10s] - \--cook---------x [5s] + +This API is available both in synchronous and asynchronous contexts. The closure also is passed a `span` object which is a mutable, but `Sendable ` object that tracer implementations must provide. A `Span` is an in memory representation of the trace span that can be enriched with various information about this execution. For example, if the span represents an HTTP request, one would typically add **span attributes** for `http.method`, `http.path` etc. + +Throwing out of the operation closure automatically records an error in the `span` + +#### Span Attributes + +Span ``Span/attributes`` are additional information you can record in a ``Span`` which are then associated with the span and accessible in tracing visualization systems. + +While you are free to record any information you want in attributes, it usually is best to to stick to "well known" and standardized values, in order to make querying for them _across_ services more consistent. We will discuss pre-defined attributes below. + +Recording extra attributes in a Span is simple. You can record any information you want into the ``Span/attributes`` object using the subscript syntax, like this: + +```swift +Tracer.withSpan("showAttributes") { span in + span.attributes["http.method"] = "POST" + span.attributes["http.status_code"] = 200 +} ``` -The above trace is achieved by starting and ending spans in all the mentioned functions. +Once the span is ``Span/end()``-ed the attributes are flushed along with it to the backend tracing system. + +However it may be beneficial to use type-safe span attributes instead, so both the String keys and values can be set in a more discoverable, as well as type-safe way. + +Attributes show up when you click on a specific `Span` in a trave visualization system. For example, like this in Jaeger: + +![Attributes show up under the Span in Jaeger](jaeger-attribute) + +Note that some attributes, like for example the information about the process emitting the trace are included in the span automatically. Refer to your tracer's documentation to learn more about how to configure what attributes it should include by default. Common things to include are hostnames, region information or other things which can identify the node in a cluster. + +#### Predefined Type-safe Span Attributes + +The tracing API provides a way to declare and re-use well known span attributes in a type-safe way. Many of those are defined in `swift-distributed-tracing-extras`, and allow e.g. for setting HTTP values like this: + +For example, you can include the `TracingOpenTelemetrySemanticConventions` into your project like this: ```swift -let tracer: any TracerProtocol +import PackageDescription -func makeDinner() async throws -> Meal { - tracer.withSpan("makeDinner", context) { - async let veggiesFuture = try chopVegetables() - async let meatFuture = marinateMeat() - async let ovenFuture = try preheatOven(temperature: 350) +let package = Package( // ... - return try await cook(veggies, meat, oven) - } -} + dependencies: [ + .package(url: "https://github.com/apple/swift-distributed-tracing.git", from: "..."), + .package(url: "https://github.com/apple/swift-distributed-tracing-extras.git", from: "..."), + ], + targets: [ + .target( + name: "MyTarget", + dependencies: [ + .product(name: "Tracing", package: "swift-distributed-tracing"), + .product(name: "TracingOpenTelemetrySemanticConventions", package: "swift-distributed-tracing-extras"), + ] + ), + // ... + ] +) -func chopVegetables() async throws { - await tracer.withSpan("chopVegetables", context) { - try await chop(.carrot) - try await chop(.potato) - } +``` + +In order to gain a whole set of well-typed attributes which are pre-defined by the [OpenTelemetry](http://opentelemetry.io) initiatve. + +For example, like these for HTTP: + +```swift +attributes.http.method = "GET" +attributes.http.url = "https://www.swift.org/download" +attributes.http.target = "/download" +attributes.http.host = "www.swift.org" +attributes.http.scheme = "https" +attributes.http.statusCode = 418 +attributes.http.flavor = "1.1" +attributes.http.userAgent = "test" +attributes.http.retryCount = 42 +``` + +or these, for database operations–which can be very useful to detect slow queries in your system: + +```swift +attributes.db.system = "postgresql" +attributes.db.connectionString = "test" +attributes.db.user = "swift" +attributes.db.statement = "SELECT name, display_lang FROM Users WHERE id={};" +``` + +Using such standardized attributes allows you, and other developers of other services you interact with, have a consistent and simple to search by attribute namespace. + +#### Declaring your own type-safe Span Attributes + +You can define your own type-safe span attributes, which is useful if your team or company has a certain set of attributes you like to set in all services; This way it is easier to remember what attributes one should be setting, and what their types should be, because the attributes pop up in your favorite IDE's autocompletion. + +Doing so requires some boilerplate, but you only have to do this once, and later on the use-sites of those attributes look quite neat (as you've seen above). Here is how you would declare a custom `http.method` nested attribute: + +```swift +extension SpanAttributes { + /// Semantic conventions for HTTP spans. + /// + /// OpenTelemetry Spec: [Semantic conventions for HTTP spans](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.11.0/specification/trace/semantic_conventions/http.md#semantic-conventions-for-http-spans) + public var http: HTTPAttributes { + get { + .init(attributes: self) + } + set { + self = newValue.attributes + } + } } -func chop(_ vegetable: Vegetable) async { - await tracer.withSpan("chop-\(vegetable)", context) { - // ... - } +``` + +```swift +/// Semantic conventions for HTTP spans. +/// +/// OpenTelemetry Spec: [Semantic conventions for HTTP spans](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.11.0/specification/trace/semantic_conventions/http.md#semantic-conventions-for-http-spans) +@dynamicMemberLookup +public struct HTTPAttributes: SpanAttributeNamespace { + public var attributes: SpanAttributes + + public init(attributes: SpanAttributes) { + self.attributes = attributes + } + + public struct NestedSpanAttributes: NestedSpanAttributesProtocol { + public init() {} + + /// HTTP request method. E.g. "GET". + public var method: Key { "http.method" } + } } +``` -func marinateMeat() { - tracer.withSpan("marinateMeat", context) { - // ... +### Span Events + +Events are similar to logs in the sense that they signal "something happened" during the execution of the ``Span``. + +> Note: There is a general tension between logs and trace events, as they can be used to achieve very similar outcomes. Consult the documentation of your tracing solution and how you'll be reading and investigating logs correlated to traces, and vice versa, and stick to a pattern that works best for your project. + +Events are recorded into a span like this: + +```swift +Tracer.withSpan("showEvents") { span in + if cacheHit { + span.addEvent("cache-hit") + return cachedValue } + + return computeValue() } - -// ... ``` -The preferr +An event is actually a value of the ``SpanEvent`` type, and carries along with it a ``SpanEvent/time`` as well as additional ``SpanEvent/attributes`` related to this specific event. In other words, if a ``Span`` represents an interval–something with a beginning and an end–a ``SpanEvent`` represents something that happened at a specific point-in-time during that span's execution. -> ❗️ It is tremendously important to **always `end()` a started ``Span``**! make sure to end any started span on _every_ code path, including error paths -> -> Failing to do so is an error, and a tracer *may* decide to either crash the application or log warnings when an not-ended span is deinitialized. +Events usually show up in a in a trace view as points on the timeline (note that some tracing systems are able to do exactly the same when a log statement includes a correlation trace and span ID in its metadata): + +**Jaeger:** + +![An event during the cook span](makeDinner-jaeger-event) + +**Zipkin:** + +![An event during the cook span](makeDinner-zipkin-event) + +Events cannot be "failed" or "successful", that is a property of a ``Span``, and they do not have anything that would be equivalent to a log level. When a trace span is recorded and collected, so will all events related to it. In that sense, events are different from log statements, because one can easily change a logger to include the "debug level" log statements, but technically no such concept exists for Events (although you could simmulate it with attributes). + +### Where (and how) do Baggage and Spans propagate? + + + +### Integrations + +#### Swift-log integration + +> Warning: This integration is currently proposed, but merged in swift-log. Please participate in the proposal review over here: [https://github.com/apple/swift-log/pull/235](https://github.com/apple/swift-log/pull/235) + +The swift-log integration diff --git a/Sources/Tracing/Docs.docc/Images/jaeger-attribute.png b/Sources/Tracing/Docs.docc/Images/jaeger-attribute.png new file mode 100644 index 0000000000000000000000000000000000000000..48dac7a153ec9dff0c7cef93825453a5d47c79b7 GIT binary patch literal 126900 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 O|J06Z9Vt<^3jKdG+q1g> literal 0 HcmV?d00001 diff --git a/Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-02.png b/Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-02.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9d4301ae96628925300a976b0b10bc29cc6534 GIT binary patch literal 144924 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%0A@8Y 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 literal 0 HcmV?d00001 diff --git a/Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-03.png b/Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-03.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ad7f5c9c82987f4797e48717ec6aeb7ef157c8 GIT binary patch literal 85728 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

`Gto;>^brZu~@ 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%0D19{?91DX;uvs=~9zQ)oawUbQte zqO9xwGT<-*R4^2U{WmwsCsn4Wq5#kI$8^Gr(FmLL8k^dMX1qKMs+@a2UZzRvbsB~- zr0Zd`(e1=?E@TzLCyBP1c++=~*xmQpw>!f{c&n3Y62-rbI(8*{&!7yEh|8xV zin^ZVhJsoHnB39(D5wQ3auXgN*gMrn( zfoFW?+gyXUH^i;k0fEj>-%#Q*o#pN-a3xe+?9GKYrdvSg!gMcRga29qJr1Psqj|ud zaj;I@6V<61D@g97MzuZ~?oa(ffU-~$v@oi#oQuuj68kytSaI#=$C-4`bhUSpMc>r| z-@BPu*Ff@NG4<`+Uqm-wiC}o2KKarf>KS)rb-i^SicQz6nQ6~C97;G--_5OevdnCJ z-cMLQ?F0%S=ifw{x4wj>Iss0dxl#S&8#yXYWpVb$#XXYIu0o+$!{4j)h4`Hkb+vOo z!hbXLWRl-fqoPhAOM|r^3gq21-MSsLYXOuvgr@ITSTL=4s1MTdHJ8plAjO9-%RCZX z)!=X874eHaihOO&xh(l9L99Euh%%w6M7)(#*HU=b*YxUw$QNVLN8kBASdg1;7)TYx zA8hHRUaCSuFo?~hs8ATFj=o8@H}Fi@H+VzspM@|45zrF1HyqL63}<(>-Uu;281m-u zcx$o~GplW(p<8;5w7T>2jLGVc8CaDAop5tsStF@ zre&WZdKY4+r>2*%RA#3a8y=)#p)VL-Cs2`DTnUZ*xkrQXGXH3WG_f~ZL=FcX9_zl- zh!-OzZC*e=RKf|37Pa|N#*^`}s71SVjf`r{a}RIse6_R%PtDQSpuF<|0gjqM;myj2 ztDnKSJO&~F7fIMb6kb1diqB%Ga;bf7jp=b~X*l6Hp?N+xg9RUENhF@U)(c*E^FmET z8YZ4V1uNOJrn49Q?^fJpgAfzeG*00ezrIK0P<$EONIf1mv?Bb_Ec1KF0;2b1(z z?%-=(cT!pOf}?E&Pq0oR*4#3oP?2b1yx9ia=_y~2+_@OfD)!s%8Uk~kft)`lL%7LE zCw9$rRognoM}cYX1^HBgA871jLgb>c^cMaE-2JiZp+7RiI(~A^)#bF>io&G7%fR?P z-nf@hgxoDQce<5hQ%y+}wTaG*u{cg8^1~enP3US^T8qNleU|!3!gPsw-fbMigh50; zB3IFwb~jwWjMyg-i(vbkBwga&!4#IBIb4l-ZF&RDswej*J(o^mbhK$Zo>Y2$?^b(^ zu^H6)9`ogU%^*Vba$X5<{@h%xnK{>a;;%}Rw3e>&hWg6OMc$pq?P^SXJzqaCkxJZ z(e+gP4at|bvi{czD|#X$py*)X(#@Uvudbs7==gJ_;yv_-YFr6+`4uyV6e@a03ZLH? zQ}5u3Le{4nrYkBN*Jg8yAnMFE)pPEs%vw2A1EGT+L#zbFTANZ^nyu_KBKQH2*r2Ru zb*E#>KE30doshXC^cw(}Qd z#W+`<6qX5a7kJi|&$>g+AVRAfmbt|@ta)DNn9f>b_%V?~cGk0PEYTJR61GE2)1q_g zfbOEDTXHq%b|tr4^JC}Bwt_vKAx?C`k33JaIT2(M>W^@uFc9zAnXQ!E%;eMBcJ}8t zNhhW7R=x)c+4>d=YN4C3Dj|OyOLBc+i4Em*3Fi~s2I#<4B7^zo_pdl#qm6HQ2n2g0zGk0ITA7-ust=UUQGHtFYgdl+wLGD5lH zdVo*6EP2MG1cA^Ud*MHGbEHq3Z>QeVwU7k~mA7b_FdFb%wK2BQaA%?U(I9vq#pL9| z)qcoB=E~i09|!`lO1e!}8CsN;wGyF=zs-h@gIGvK^e%sdeAM@Ia(++7m0dYpIi7yf zu+Xg87*vAf<44ui`R})FJ9Knesbxv7hclMBRU3mVkINt%=UkGhDR&`gs_TOvO<+EU zV~4Og<^XalK;-B|)do!65~Sw#fyt9$PF>L2U}3}@H1 z4(s!lW5LeIu8k0;kW40h2J-pB9q86g#C25lks(3`JaZpEWQR0LA@19dyw0)VO&-IL zEw8ODs*R16lmP);3Z*3N24iEc$r~19uJqM=&K(|lg*d}lE?xXo3tLJ%?FPRjV;&iH zn=Es~&Yh{KP4hH>XNMT>xlz(jaosD3E;1cX7*4z?y8y^sZY6$Ny2RHG%W^y_=b2MC z-l4M(UE-o^Cf9cw?1X(<5&~T|Ytud3tNhGzL#5XzTgJ0otwrSCc_s9@G_PANK~>C* zafEBI`ingEf|@Z_Zf=&3$!C;LU`X7^A5l|FJZnHy-6>F;OL3r!c>=o}=5Ud8kH_2? za4FC3JjJ`GCQ~v;!+_7+Tm?f z;*uyu|J9XG(rSwR3zs$>O3Z|HGxA)p5vp1|l7X>U<5di+(k>lTL{ST1sJ5mJ zv{vr?>bp|4@u5?jD^GTibXq3TBT8!MC(YM^0gnqid3!n`J?SmFUkJt{jU^01DB9He zS`=S9=67X&c68#xBP6n$xhE)=193+%I!AQVP~13dxcW%X=Dh4;RB*aWe1nfRButTf z%xIy^RqCpO3xh~ledaB$oNBF8zJAYF7j3v!w z@>bC#Z=iS5eLhx7q(eb8KZZ^dH?A}28ru}?HZzcvUg&1UZExi5wo4jb+^jk2irHBU z5^Ftqm34QA}WmrgGmF)?NegJ-0ONF%1;TBfe!@<~eMID_)hfigI`C9nTcE zimx`h0m9deX2o{HGUvn~+u}IHi@b^io`Gu^U^e!)%LP#o5t+3Jz*WF6=na49tE@t; z7n4IQL|st^8UvsodR`3)gY_yU^2!2&YhD)AnS zC!#yNGWI;&gMGS*hbOxE^|)3Zj27;_**os??;+Ec2GtOZhyNA7|JDq|w{=u{`E9|Q zZ=xzPXgB^&N#=La%2mp2=pSc0QrOA+s^~Jzhbd8l+$73qH4>l;RO))< zW^P<0djlzBFG2Eh1BVJGPh1!pi_^#D&S4Xk`!z9J_iPfssls}|NY{en*h_|mS!uKs z3(1!MHQccC~ao_*5j=>AKSC+>&Vo<^kUApUlmRECR}EJ85rRzDhk1$h7Nx zTQKDN=%P13r84)Lr~~FORg!aRrav0-#rWS3mq)5Uz33Blzx zv?awwZF}L1j4XV6H>>K@oEXe6oZhJxtqO*g5b;ePjw>WiYe}3L#p-eHv?-)xViSzxHC&%DwCaNwOc&Oc`Pl~13 zybYz1n&yV*q?Q(0iSTy`BPmE?n4jjYAzSD9mlB_%W}7z5v*^vCQ#6+X@{>o;TJrsd zCklLv)>lG!#)Z4CJI`$V5>OmcT#Kj;OfM_}!vgr4ZPyOO&L3N`v*`uZX>@DrQ` z#ljpV^*2^E3UnbtKU8oqAb5y(X+C0H#gWRkAmv17!oQNa-yWk1ZuR0DOQLLZX$OtR zg9)_|8M`~UGx8Lc%H$#QS=dcarLjv_yf;`@C-FY>v8Ri#YDu|n6T7+dO$e-~n@7Lo zzw#i@A_wIJL+mih*U3${L%WV;c1OcNcld4~SBT+y2r(#>Q&ri9iuE;^eXGIw`J>Hp zBH!8j5$J%P9}cfNg2q4{n~Zwtt;U5i_dm z%?sBXA9cdepp9oNC_!{KTO81*iA;7ac;EP9EOKo|!q;>imo7MHag0VgF(S#;Hd3j) zeg>8sm@?}1)zGZDJZ9GqpM{opOXAOb4DFI+N)1s@*`xC?RPgAnp-m)!By;Gf--X<} zz0uy(%o^`}l^IcY#CBwr-zDRH(vy9<=^Lh)jtEcGB6D0~c=UGaJ$VoFMCIskNi~BG)JD)ko@8=KD<#A8N_Uqc#M*dM&t@hbE1~cr zeNuVy0%@TBpH}%z2tXg%BoE0kQf|J+uhg0g)yctz6${{n-F>C}%v9}Uj89F?$h}#L zO-XNgQ(G^mo?P9^KND=ZUa1nm-AWM82M+q^5`9!=j!&M>yBUxlsoD{k$Qa^3X@G-T zA*ABUD04<~))X8YCD>gLFJz4)1bv#Qe-+#=L3J_8W6+eoo1fQ`+-$0lM~4vw&GEa` zf9|`P?Z}_lxaCz{k>6Nav1%axt630KemUb7`d>A2=_w=hN#Lg8FvGxTEEoKoMB zEU?-QBve+rQr6rc!rUHpu$3BPm*tFi57v%pYP)o5$3Ekp$ zSwNv}*xu6`QO=y(lXBwAP7cavZ}c1IZvkK<_Oafs?O>zbKKEa!hyn!IH-Qx>_v65--zuk zVcax8aJ%w$Xn>=B@msiCaPtdoNzS3iHAb}D{>;1g?5~w7kP3I01>BZf_2V5-`PVOO z0EZT>GvIe>QuE4X&G#e8L&!y{7+X0zURTSc4`ti>>>z>Qx;(A zFb|jfqYwJCKSH|p!h!mjgaY}~HZx4d?Eg>_xMH8BM5agW#$x{e6c})a8T_O1l)uyB z|I-WpzJs#I!1@*diQL+6hrRtzB9WkP@&JPjIt=VUh;PI2pQ;L1hq?;)+`6^rQH#;f zPi+6GJm~>xS4S?*%)G;l|8vg1-Ty~S_UDh&mOQbfeFYvIl`k=27Qf)Be&8a_2TperbFF{iXv(-L@(dfy&9~M0j$|yurUl zwD|E`(9QUPjpx@K*D+WMGp~@64SxW3f`i;r4E?3}mwW;~0R{4Db%9<;P*Hh^`j3y^qsF7R%K+yv1gSvi`~YkQ zhUHBOqn$A3Gc$Zmmon>$wsd*>EIl{c zs++1uS~;tqXS{yE|15)yVawC|Ge4#TbQ~kv(gyTJA_RLo&1||%7mj8{j8Bb%U;i8} zk}sB3pNCcJr;%o(`!>wgo-zncmf8!=8BU6`@iV_a{)*-!uanWDv|==n%cvB!qP6(& z0g7^Cax;k)^r2HcQ^@<3R$ww2zU+O}KqJtBSI|K(jGjdKK^#2_K1QgRy@9hiC zDt>xU`dudO-61hYTMH}uO^|5jr={^#5#-~_Vx!i}xRj-@Q4es*QJ-V}oWpuJA)yYs zZTCWpL376b1QqE&hT(aa{0MZMKt7*^HcZ3KCuNKp@23Yo{YS-MG})iQ1mB$T<=9z8 z#NAJ1ycGLUNRrTG-~Piv?SMPFn(NV#0#UP1{PYhe0Y9d0z_dPO=i+kNarewsc3e=* z`p0v}0p6W^UGOH|4YIWU@xWz4rAb~P?VxL>x=w)$=#ZEQ{NuS|sJtK);VAlMDjFfz z@szY<`f82;Ir*a=hW%2rZU8ZxdO_st;dDR{oSU0_FTk?k`^ol%!s+f02K`!l`?i8a zf&srzcQ8NR!CW{&TiTD8N!1!ASLG+Nk4~8JkHUERoG#xFwQ=6VH6ogwo!xa~Fy-;4 zZkY6Lt;75)gVtC6HKy3WF1r6JOR=A8eQ_MFYqI>{3y3!L@#aX8vVV5CUI zW)u&fuY0)j)-WO_hN$b|VLC2zSC@t$I%bzHXp=D~*vbn+Ix zut=01sjj(vPWcwsluz;9LysH4@UmAzm8ZOlc;CkfhQ<68u~A&l_7*ujcXdd39n%$) zU%c#&B%vEfVpCzqqT?DTWHTB(e6B93`I_;+8rC#UB#49F`p;wn^QC_I@);(lKObJE&yhQ6<44m=zzoqVDh3|ytZJBo}VAdSai9JPvV zWmdZ}a4*Ef_2$YuW{jqUwk@+m?2!Zsb=k{1;$W5VZyW4%OxEcAA!iTiYA^cd#&Tt9 zyrSH2Lf*6L*Y<`Hfc&JIEJcUgff}UPe^Hd?74tcaT+mZ7fWAJK1t@VZpkG71zU!l__tg`wcTLWH=JUq1;;eSfY_8H+6jX4q zS834j6=;Y(hh@iwWo{dTVyL!t`7nRhXfjl;H?<3Z_b>?5=-^JN>DvlJ6=8vj#0Iy`;2~X8ek^)8utmp z_ZOS$76NXsIjl#i3*o#+=#9#v#GmifL$~f#>WX^vybK;`tSt=V9UHfMx8QAv8MIRB z;;P8=o^6WXZ6iJyi%j4_(6Wn*%U8RZ=Zmt+*iH&P?e*gS)0Hv3y(3uwjIuLKAk9)O zkBcFyJkAjze;?Fx4kx$rtRC+9&z9k5mP{( znP?57t2`JS%o1%=e{sO~W-py^s_L%kB4)gD?5k~@X2Eazc$*mO!3R2x?lvta8uXJ- zLL6=^H?5{TlfcQIL@z_Q`9d(->(o#3D!G1u z!_F|$?$uR>Jcjj%OeFv7Mtn2{+#uJO`=3iSD~$}D+jX(-M$qB>dKYmYm2}OTg;?S) zsyTf&Uf@G~<2SJBa+vHbPz@7NYFtl05|R=qrE-mpjZxgAOtP-}IRIKnJwz&W}IyTjeXdiz~e15X!@N6PaCMBHBR{V@*KxR8`D(`K6*n%Fp(Y zy&R19;Ju?LBLB&IU46;yxpGEzDTkdH#nuwJ83q*w{4&H4CpByq8pRIGJB!n%e2g6u z&D;(FYed^7Y3z?cckY|`@k(ozfK|Wn#`ALYeF=EQG8NTTN%{ z3sx@3Hp!OiWYL2gQJoYp@?T6c9I&e81o>}@^98k^11s}jfk5|k|lORBM{7P?TqTrz;sujY!-1{6e2b5-q?@1<4oMc2W4 zf;bh7{gn8erL=uv9xxx36Ak4Br}hVkP9J4w`{u%TG!^E8>zwBeOA6_N+MHAj&2YCU z=*a&0@#X*k3@vTCS(U&GCMMx?{@i*~woSbNt8A;#<#Allxj2QFE^n5bmcfdsmNI`# zSM@dQMWxk&Z#FRJ?h8@7;Jl#RHMx^W{PkW>Bfv67d}Q6y4X2?WJzg2jmN){89=#Bo zi4*U)eD?M`lf@if2PVRPaxFfHllqBzHikL|1N`$hc4d(A1VpNYVQ3o*Nyqp$JWeY; zPKHeIOlx)}e;&ad_G9)VNWbW$0c2nsKln78X8ZL-`@^Gch`KA+GZ()x-u(fF*s-Lw zgJLi5dQ;E7RCdX3R(@vDTVJirX3mh@M*&We2_v`RpA?cRDNnL5e&p#Uu)JbXNiLfO z8+G3hvFhU(BNiS#R4SaX)?klYdv*TH$~;ohn1IgdO)o3kjk|bskx(*JMiSKf{#lDd z$n*X*C~cQ^Yno;s%OdIeN9~@>cz*{sIS+2Fjc7We*E=O{M>Bd>E|60V`+u_lw3Lo$ zTl9lr&5T8;gY%D>jfX|b=aRJtTwA73;vPjk(pWViZ5>@T`}XVE^z%h8jNI(klpDkY zmQy8~ukvK^UP_STJd8Aa8$$XB=N&Ld-U;y>O6B%=Pu9U$YfAM9hg9hC=rx96vr?yB zXE2t40~h7aOl2imOubimlunn-neze*Y_j-$*1I%l6zQ#u)!SR369Z;sz=0NZhx8an z_~avtPL{B%V@+NqzG_LsE*CYzDzS6bO=??e2lHQ8?4*~f#)Hnf(=bc~r8kOb&`X_3H<)i` zWn&EVywP7VvkZ98@d(!?DS8m0FhbgFM57e3(>fYeI+!|?OM{(8KL;B1gvgmY_r5E%9my142Nul< z3C!B^J<$|Hd#{b3&$=S`zj|G2s`<_BxS4TPGL`168>GK_R!JPx*8*zx6-lk~Ox*dD zxT3Na_v(Cnpe`UQHug3>@!d)`M~<(*hp3`rw#o1dn^#QL3u^4uew=5J!Fh5z;k1x} zLc?SEb8(W_Taiy$H(pvd@7I<_dl)*7RCKZ~dl&^Xsd30`;8K7BqE%(4jWlvVt3%q0 zqalhhpLSEk*Vb$K^Ceqf$OTBf{eGCHImB|NG4hNcDPv+aJHwBz{MC8qTIX|bi~Ylh zqm_7d*IoB_CvBp2Tu=9f6bI8`!M{najV;uR!jZ(0c+@QYecp%v$0hUiKV zH!9UYrvgU*=RYTFfjkt@pu2TqMvvMLavF3_T~nx2(Ws_hn71YQ8Z-rndBQSOlL7?& zVGk3w8k1OjJ?@1QVi&o1zd@VlJ~Nu&ZSHks4^k>$;8{?gV30x`hkW-c-AO9Y^7Pwq zzQ@ImdBWH@L}-__;a6dJ^fko+aV42BysLsqUY*MLL9F!RkAp9a&?k_w+t%TJYL=)_ zcDTIwjHuT+S@HQ8K^ct<8HOCE;WJ9ubuJiF+zXvZ8J+PP;^X8ByAuhzPB0^oO%$Os z)MuJe0>_)8zq%@#o%CAx=xk;s=mu9@*o8k#fZJ~cgh9%=&TZ+{?T8#EIUn7?b{=dZ zh9J74Y+pA_T1;kV+wD|!EIEg=g~cC5I^K?acilTv@REwA@@n}-2dUm?)DO!U{#X@& zu;efJT<5khY-QafdZbE@pFSE9IyrgwNMtMf#i6;#zZ-q(Qe6Iy*m{R{`W~JB12M_QH0=1L?|D*=YoN z+X%p>D3gW@MuT7);bASv2E8K+yQa}*af^@PowAfa6-sK^fz&KMO2 zeTFn|UHes_J5hEAf(idEq5sUMEQx5EkB8s$QP18q%p1uUQ(V-g2YKr7!|KqmAz!LE!k>HeqXX)AWPBqBzKvZqoZj|SpViVST?E)^# z_2aNWmgn2`4-!%lCTj6mPR%g8 z%=QoDhMr4HVDC;x9^C482vJpIW19W2mDQ?CaA1Da^-z7TV+M;|XQHsg)B5ms_V7nE z63^Uq`N5Mh9(aEsH2U-vG{cY~`bPXG_Q93;!XR@r0>r_l@fm7y@`aQMz8%75R8SK$ zLOeS0Xli6w1hx~fV@+ZjXug(DgG`jzcUBW@uLLp6STmpu@=&JhtW=9`_eQ}N<3dP1 z-11t1tggokGqm!#LTfLrd-|~rfSsi2FzE)?;i1=sRwn8E`KW20ra?qNxV&X65 zL#EL&K4B4@?B~(U~*>KDPyb_ADE{FP8gV(}~yA4zUa#W0gM#BoxF0OD=1+f$SIDx={U zTNnA1Fn^|0_oyPzs7F6XNXn)Kee&8auCDFQVkkHcMdk0d% zK*ApOQW1X0qYe4?omK%Uu!kzQhY&y-=KK@R2*hMUh3Xo@*uwP z^n*_D9`6*xBP5iR|EA21glwh!7RTo~UW_0pHP25A2jbL>we#B9*tX zU6p=1Mi(SXBSD}Q+;w139^bjejgA{dsG{Fk`g%CmPlG1Yzzg_XJE;9Ss}N>@Pd&w| zv=e_4A!gp5YZc*eq1UrP*6%|Re>{&EuT(ny8;8>J6)b9o($!Q_Pj&`BqKVnaMeY9X zY44KY7l>dC{hZ09!KQi>ekjfEz+s#gs?JfI01`aRrq1Sc4*qM>cX%3Z_H{rl?NK^o zoko|eKX62nZFJ!q3*d7z9-LihN^mvAiq!QwYq}_2Yyp&_hJ4n^_IvhN)`bp0fq_2^ z)n?mdln*i6fAqIO8pnlZrR_dQ` z^TggS!M}w|1|#Sz925);x&L%SV`BiCQ8)yb9afymNH2nvL=w9l=9sA*zO*-OZs}0* z0aoX(Ohy~E8@uPi>ZnkYX#$;Ss#O)g3o(bPBAwH;>*sGbYxo}nHpnT3{r@a17hj65h%l5!UZS1_Vg8{7Fq1k&wyRZ zExct#0BHnPp>_kj+mH>S-`kDR$Fv`7_K5}!G>C>9?M%l4BBc&niuj2>MW%#?=wBUN zydJads8rP0FYA$w91a7eZl*tJiIM;~H03q!N(v56knxvmKiaT27mI6ZwI3Y>M$yqz z4OHv&yg`#cY-oxYGpZUlXlEJ@XA4*KplS>Jgfl48i5=^1yds4!i1umZ%f)ruhj- zJpAtI(V?DR*bq2aqMe;}t7|8jKLH3ggbzUMI=Kmj#jJI+5(p&Lf{(L6bB6OR;vGM7 zl=VeG2U%>wM>pd1n`_93H&mbD=AtVjSs``+APQFugX{4K%mt9Z}1&9?p-61kq zfG!|Ly4_CGmz8w^_*1_5=tr@MAoOtiB&x{D7OSa-R&iWX>9z5DLG$yFC!msRKcZR9 zCk3~|c8H3XE?oBdsxM^pCUj-aIgRRwHn zqtEOa>O2AjZ>{!=($MTw_Uan=wRFy>%?5AYZ!x= znAwS-r$3%juEoyqBYsyQ+=EnjOdm6JLv^rjg?;F5J_~tr+Nz9xo(-7(W=F+@CtI1# zG$+ACws<&+QteAyIya0&?mn?9RK!)!EW#{xIi&HHvNK~u`CS^!MX zBm|*8Xh3f%=!`6ipHV%Mb=5@zYJXc~NdeRmL+#f!v<)6 z;U=E7|9Xoe26UC^m23Qg#)5rld7*=1)$)p>0)n|gfI4D>badJBY^_;lb3y?AoihXU z5CUmG0oJ~-Jd3_f6hhQB=fVbeHWSMn0UM57Rc94K1(ZICRX))gp4;wSc+K&0t0r-O z6%=;q=c9qp60}*LibL+XrnjUY@INDgmvN)*I0&$fSvJII*Z>Io!ePOwD2y}_gAs=w z^|J~#3vP3x9`0rz&dqylm$3D_Ntl|hf2pA>J;Wek7IFkY7QdPTGNvE z_QN0I!I-enBZfwvpYqC@&>kVDKX^u3tGcObj-DpA=+)i?tc}mO5vs229=r`$3{wwt zMZq3$h@1vWdOSTfokhNV0hVqrEOr2o&sCGece$Xm$&;_{psj=?eWJK7UjEYcZL>LzcY$Wo zNGCn1gLr{en|Ynxh$yev3&3XRXi)5yj{fUpUA-ar{9PZu0@-Tu@q&S=xr-b`B=aXH zUv|>n`MJ-M(77ZE5L3JmV)m}>h(s%#mY({c(XuhQ1(C4@;Jmn?sPL$8*sSi(w@>n1 z@c)gk#C}7e`bhK^=zp@*T>DO^PI{a@Dy@KYPsFun>m|BT`|So&Cvu$SnTf5G%_4#k zv$XH&O51jf(DQ_W!X77w*Y%MpEnyJLh-6f_!$h(upZWJ<<(6{OKKlUp*C5vk0em}h zaym-65c~IeI5`-{-0sGx;>fNd97F=>)@8dRipiun{uvl0-w5SNEdzKKe6+~WB)LUf z-}d)9^hoGp9P8By7=^`n3(xnt)tP`l6WZyQrr>muqtrP}W?!0Hwr-&DpS@hw=>J(3HKHS%?{y!VU64r=sV#)BJR zIzaT@BnW^%D9mcvKS^zGAocmK4OH_FTn~Em|IAXR%hQQ9S1iY&4c8by8_r(xb8ct1|h~T4OZ9PE_CtBdc>i;%;sq4^2x$1opWv?qTP}NQY zPfpCmic*I}`YP`T{ec8VB<$m7{m`c`gh=a?#FbL2jLboyxbq?f-yB>uLmXeSz~x~s zR3Ze%>@t6+whf)|-!u_2z#H|gGn-^U-RL!-icFNqxsYYWx&4AHuKOc*kp?aubNPFt-+C->(%=WP~Su z9~R*(%*?jII`)QJms(Mzt&=Bo9_}sB?SAxhOzQ}gOyc8Talsr7a7i2k(DqR<^yT3NG z@r~QMg9Dlwn$z&&AQsQcOHyo9#oIHezs8A=k`%)5D`A+z)9zLhrO;~jkc zc6i0e#75!)1_|fj!4j90Eo@5uXv2*qH-IS(Y*~S7($je&t?DJVpdO4HQOy7sj0C@y z4=&Mt)8Lv&NFOE<=mdFvBDM#*OP}Zry>pKK5V}X7_oRW;uII{i8i3v3f&wo0IKNuN zOF4vS5nRbH@TRlzxVShi_<0dyKXO4?TBwz%^yX<~JNDSDT7TpHWsRbAF5z2V*<=Fvm(@MaIlp7ezU#U z!<&FW>Wg|}J4q0`r(Acv{{Fs}zkNS=GWzN}92&cR-RL^4ZKM5KrU?|R``yP}*y`K`iBJ9u>hS`Z9V8JZt7j6~Gf=jw1FqrKJDA(k~vo~mS{CBe59H8Y@H=KE% z1}-8hCbuaTqvL|mD!1+*v_(7(t%b{*Fc-W|DQLFc$b%49d$#ZH_3OT6Hw4?Kha08y zGko-0BlO}n+%YcDMHx~3N|#AarA0&KZPV&E+@aO$o+xu`2JGy>TkcH-nvhxl-Or6) zAsh;RvpIJs#kK-(=Y1x}oQP~P^#LY|kf3~qZ%&SSYVoP$N6WHQqoTr220A&D>;@AU z)X2t5oJbhR%hyt)90n=&d{M>~O_r02$oOCDg8b&KLhNc+TP~ANuj^}NbG)2or(cG; zzD|I@N|n>VpIi^x%=aOIpDL$aLijMKtQ|+yu64&6bTM21k}Fy`NJ_P$fPFx}`S$*} zv}{S~4|BuO1Rn9P{B+teIInW?wcO zTNyO6Nr{y00dYvAz_OvOh>H>Q&-reRDyDwe`N2^x+{-@a8h^nB5(cN}h1?tW$9D~l zHFJ8LsZ)C&OYypOrEcEU)^&dyt3E!fN{Ak8&ALRNwddyBX76`vtn(spcM5DnF}Yb8 z0DJj_M}GlvuRbHhgzX-t*-fEdpG&gUC-*C6bkBvpvGJs}BZSgFgL?sLa0Mf#BuD^z z;z+KWu{fMYP#et>@~jC4a+0_<;);PK+N}8ypPKr!PHCT?#)D6q&|P#GYJ1fIy`TTl z+y;3I=fwZvCXrBLGK-qXj^JO2L$xCayEbbJq2JQ+-6TLfM38YW*N}75z&CT^b(fMb zm9O1Yr)u!Y^g6BVQU5Y9632Z z+#jmYA3mogTbK!?5k;k{jPj*-Xutkjpbo|2lw!6QS!_!C3{t2L==g5#`9cyQ#*wh- zEOkMV_(JZF-unx?i8kfqTVh)NFH2ZGnSUbX|8j2q=dZ9eSGQf+LnI0{s)M{_~DMivMTMN63ds`Hh#P@cy@kw`Ax8tzslj-rIo> zG9;8(2nA#CnADVPA69;S=LL)?^GZIT!KPJTD^k) zB=b%xn!p*NY9@|_-a$BY(%mqQFf4M)d znM@|}N!rzw9d>|X-NF&22o!bdy@>{Wx+0McCS$WR z)#$|}sUQ)rt2D$Xns7f@1@ou%`PT$(z{mVW4!!uvr*uef{ACpXnbS#<+uL7N#hjHa zgf#}Uxh5a@2Uzz%LlyFKZHE#)Al!Tn9OiFl_2(P@Ch?2+_oWqJX<2Mos}D~PEg$+% zFQv$B)$e}5Fi+;PP}ZjVL+AUG)bwY<|4>HQy|q0XeyjT5)90^6{0Jdoz6{+ZZzG!S zL$sj%lgjtM53G4&Oqd87*Wk+Yiv1#g{_gVsfHARL(cRU>{X@PgjFs^BcfM2*_7XIX zs@1QR{By?sH35_Gk>~Y8CR4zrAsa|E0hp2aRJ_8oMDj!r!&-zuGZCR(RYEWn9Wr z2rh{p>$mOa&#nY%ldi+K<%(%E`=f3Ag9VQYCJ6c z(DV<}IhGw#X?bbs*olevZmo)Va(z_48`v)~t01gk@*t_m2kGB-Amm}l1VHEn#$-a+ zyWDB0zpu$h2=zZk3Mkmcy;$GbMfv+1g;fyu?B~wBgWxGz4XEExZ~l^@zqxQA)nOMR z5&nM{t^e+h|4u{JP)O?p_kUP3#ry4K5rzu+B@bKl@*g;&emnjlBOpLTI3mW#$cUFg zksAxS;Ge`HWL=$D#v_VBL`0Sq{>*7vtWUG; zdlw%3Pi2gkg~&lgYqH2cb{OHX0mF>U<-;oM)xg+xWbQ>Oe&Fy=Cwk^T9>za~CGG$k=nQ3^r9Y~g>L)s}zCMfNZ9 zVZU#4VT_4d{XiJ%Oe3Fvtkf^@$xpohgd<-jAMp>b`y~}wINVwdT8*O1^w{({ZPT&O z(g?0p4a4~X^Od(LOoqu9PP_blJbr=;n}R3O%`n%*^AyzN*Na1IKlTvru0vM>T7-W$ zaUGRNM#8AkiL0|;V>oy3++kv2Q37ll-Tm0nbRjevS~hb(O0?zGRWXE{4AOH6af0|O z{GV}OlQLS+w#*J22<2SUTz2V>5RzgYl{G3eD3P9@B#$P~x zyxL)6&~No7(PrJ9Fv?RTPMQ?zAe)>lx;$k>Ly4WDv>6CSs;;p#+Ka!s@V&^P}1(&GnR1O*ZB0y0qIZm(ozDnC=XZ!jf9s!SeY8v;*I@m(HE3 zmPL3N|Jr<%r*f+#zQ;*KtXqqDsA^u<&)~h zQnKC8J8YTY3e8$-TjHnaGP02@F4+_7g=JbgnBwxqw{oKg3|p%b9X!W@^E~!l zFFaZv5C&5ko4kK+BC$T4o)-9Iq_{TGPKQX})d04$-?phOtPanEPY3XysD?p){n9(~ zKMKMy8+;!&^*zq3jTHCc?l&*fHqQ@FPo?ui(1zQg@e^Y`k9oY0;$jMo@9upG^9*wg zv%35)e*~)3%VPC6T<)_Cerx>c^r%=$kAm+SAFe7?aGR<@|6*9-?=-))1jy{z+}s3w z6K*3yBmTkI@$@XjgYBY&$=Ex*;$s8wZ1al7L{Klviyk0O5R8Qm<&-JnbR87)u^(fv!A}to62spsl*^|v^RX`;ru4fSi)Y}jQ49BBRM%5#Gu=^ zTW%NEsRwElHF}NXseh@ZJ3ZXK1-Cgn9AZ=0Bxlx$hiCMW-0BD*jJmbT0ax43H%{rI z-rwmWmJAwsU6)U1XKW9BS8zU`+*KT`>u8V7YSkRtmP1tOSb1{ROrUmcIjhh+TOF@) zy)*Rz>6Wfg+UW>XQi)Eft8Hu;yXu8~KT|CKa=kj&kQ3c%H4K%;ViQF2#9C-Q^mJ@E zT~>{?d{C-p|1RR~&kB$_R)N`th3j&cU?$u5VLQHL+3LKc@6}T#wcXF!%sR6bIr)bc zolu2^{hQr{cOtoY5_CgOlubFR{V0-It^}#{f0bXqavT%TCx#U7FURsCI?U+Rs>*~d zGk>l!IqP@`HrPySQomfs;PmYhMnq#GVY<0f09a+y3Pt%S7#wmbvziZ(DY@d4QLAGc zhQ&%lzr{-zVIq}Q@3^wxUjpkha4Tf7$bXT4ke|rnDRJA_@*OMyVX#?@og}K=U*cx@ z>iT7>=tsNg@8<~s?k$|>vXqJ+k>hS}kpfs=Fwu%IxQ}(!m_NN6EEJ#B+NKS+A8MRC zr7`jK5%WqFo#%IQ&UyPII%mFgn7DWkX>u|pig4AimR_SE-t~Q#-Lp5PkA%}ghw}`3 ziNUcwbsW2(pyGYUoIH}#3>{ZO!_B2KS*?XVRc9eRl}sw;t$}&~t@r`Clv}F4_0gDB zjq??EQ6hPEWIxuSlFiKqvG(e>d+U z%RE}fPk=2~jQRXky`P8(c}}p=xVK!PpSAUfh-XJg#Od?a}yFvjX{)^R;i?1 z|Mf_k^8nj&$JFv5-^xvh?P{}H@ZDnd>Z0sO^R)B2aoJljHnWj~GhYb;1fMk+rY@5q z)jDzT*BZ}b`K+bh2&W-vr{wGScPdQ*xdz`s94ty_oWT>irS}5yY@pn?o>9zJ=PI?5 z^n(el#nCSJBP_?H;XZus6^ZE_CzB88LXGFv9B;8)Bn{D=tc^*-KxT4tvvReo?_5mB z%VEtgGUR@vLHn0NR(XVVj1_mu%hndYeH)8Br2|)_E&6h-!1v+dI%~Zs%8E z7Yb{f{)xwkg3n*vw#}SO*?=Jw)+7pEZ8&zjvmP+!tM82pDAfhqL%h#aBKTDz zpg^@s7 z?(V#WK2P}pdXLgyaHfCj>EG&MTpJHRAja&AVp@ze5K-CeI5G@nec~+>7^z|+JCDWO z?IP@S^hU_7Xs{X6)^b$abBzbDO=`p{;;r41*l2-~oP% zoegMptBjvz$eCWYYdqDX!g0qifu&;XPMlj|oPoW4BXBodqAEq92_zka>}tPm34~u> zy2~$+-^Xhiz8;ul3QJpp?b@C+;e*{E0$m2!ow4@>u`3tF@C+d_O&#+k)5c6~*jtoJ zrX1=F*-T^@eK|$oI4LBA?g%CJRB|z_IF+cEsNPt+zUJ@L(hAIp>=<+%=6(6xdjUK_BL^B{Vf!@ILFZz zZO`RJ#(;(!y}994PylruK!I&segANJ)4xt@(7u}$S7Wv)AM`9`62b`8B;2S zOWvu{_Z98JnWEYCj-O0km*%xzq=Ruc$NGy;R_^L<(|cK0D5#2XIX74YUVc)X*zp_4 z;BgqJ)s}L1@5UlZzxeqi5gyHx)#u$4#JBgUO$Pw$ULQ6PXbpE9Z4&kvZIennvj#j6`^2=GaIv^Vnh?QgmWb`8nbq(HhKG$;$LRJ%CS%p^0+g~db$#yd`Fq1ts0J@ifY;a zQAAItJc-jsK)~Eoe@9!{G5vl#cWE8LbbTR{Wbs9t}uXApq?l1-;O z1LH2(5td14uHxwG&@Fb*`aDsKl9N-tp9}8un`90f#oEEy^F`&htJHJ^erH!=!riR7 zpHuzB&!eheBiyNa*)<}v^oa;^dsX=mE7bx_n^^&MQbin(iraUHovayje4uBNk$UUN zX}q4zdl0ONtENk20&rb4vra{SB8tQ6wn|)*ApSmJWf-8=`U}y}3F2)coH1mGQ`Uhzi$og1X0b?g8OR zgn55koQmek&4TXj?JbtkC9Cfz9*YoyBSjOXHxGBSI0N>KtPe1OXAs<74Fch3m! zGTn?+(p?TRx72FCKG>wP;3uGoz%=R@Hy$MLDr`1eUyA{s+`eB-HQq4IA&gKV|7O(2 z;vup(<%hA`>haTPqXm*A&DV1~HQ4yUu=zQ^FrwBR3wRcH3JOlqcg7id7Ol*ARKz2r zF+aIBt>{WEa-2PWxVDS^nv@Qs02E&su*e-L_i)kgZ%VvH>KWPM&)zU@a5*fSu2|=f z8V|QW^+$-2UQIxM1;!GCYGMn^HwP)YKQ#XiOcAC)Uh&&=Mv-G&kIVJJvYgwozOh^V zj2rMAy2y{$;(zVj^;*IAfQwyi_$7Nu&PF%Kr<$ zI+TN8l~H2%^!&zaGQV5VAo$a_QHfk&_*w27>4+GAdG1=CqnKQ?0L0(od=M`ZGE|z_ zft*tbapDLB(lRm%M~%&Nq@s~eL-;MC75kA4J>X>a>=#N$g8utrLl6=?fAkSYlwTY2 z6Cofv3OyFt@3A}xMm=iEW-jyYe}vlq`5CMBYva2LmXY^AebfqTTMs;hor$8m^eCj!EHl9+~yof@RX`X}{H8ZxNQedy{$@3?- zJC$S~TE@G@*`vg&s`vhDS4-4NGT?KGcmaCaU=fv9yq*)4=lAYRvY*S+Y^hBeqcfxV z=~p`*B9JpU2HY07=tvGmkE(wT;FBA=4ne^jcl0yF`u)_S0-RRRW*Ho<%@cdPlWq6D z^5Q8SLiBPL)}%FTi!|uxxE=2I8wioepgehmwORn9TK!a`Z#(VzjG%qFtAaS5qncjl zK(a3i*=i{BghsYo^P^OaXGg~N(&Nr@h%cJL;wP^mRdg!VPPe$_{d?T!n-BfIO7!sV zgmEG=f^QZHeC6!iC z`O%!MbE*7KqvT8Asj}`m?%!crD&+pm2uKi&Q|9_P5C_VL?4ZXg?efYM7kogoe`Cf( zO~uf{?sV^y?<@Q|V2{`GF$42!Pd`>Dc|C%Mzu zf;hQol%_r1=i+%}nF00p<<`Ub4zAA2M_2BXtifBQ!Nh!B!a$6J>KrgGH@vl^r18l>Ca*4LedRn2mvQ(BaqAyG5MH>Dz}>{cAy zr=rsug}M9*3VW=>xDE|9Idhn?R`>;sjfsTG{SdK;cZjd$WSqUFJ;9`Dy*s zlV6NZTXi*-t8WJLXnTBD@6HY+lYgyJb@to4IU{1hpTUk zf)pPwHW`G@P68!}!V};4RmL4P*9@1g@-wB`0Ri@gZK_{6%gQ!&e~J-)#AXialS9<( zl>*AzzXw!`jdSweUe~u$Q1NOYMQNRbRC}XyW5KQodpn*BIBOrlfm24X8IR zcMdpNkh&pqCqN|%MrVYs?>jym)<3}e@%em1(Hogv-v&gIY*Gg6`AW_8gnoT3@F)I|n$=x!+^no%3*(^&z2E`BHU>Goj$Tjiw3Z6mWf}_vL`K z;-YV;wobj#yrtc%RcJkT&-v$Ej0+&Ee6skHDtIjWlg7=bk^`Oj&jQ04ZkBtlr`;a( z2A_*<4QnGd^09cH{|YxZr6E|(Ktb37R_ON5*aL;IECm^Ii19uhd$cpB#d+dQs*0hX zG?@1M=wH@=eHw@5x^of=Yc-Hs?7A2Y!seKEsx3^mMv3p~z-01ol?=b!e6~5j8s?BHv|l$6wFBG zFXYI16Mm{GvT4?Zmktid%)Vs&-9sAmw5L&CV)wMDxU7Y9;G?9Ag6r(~Vct*UKS`=i zR(;>Q!!xRVjs4`M7XC$PC~~qEpyznk@nU+!Xp)I#ewQNOP}$<1$xlpI=+( zvieYe7WTBq8U^aOxS&5DpeL*cdJ9sGaeRGyQwD%}IYCHl;I{LaA-!_o-{=!|N-wnc z%&&aA+KXa*mS1_02+(Y(7 zr@Kk_=hH=rbJ0Qc^N$h#DP5GL7u7gBhrHT1t5j)^$H?0P3o0QaK&1tN8I`C~+{#Tx zwJUu7oS$`}{9rfiG@*4N?aG$+ZqRbhSXOl0;LvdEVJRVCZl42*>wtTwBRC;t&ucap z>@Xk<_(^L>u1vx4P~8)nX!4cl7tP{-uQhW@h@TV42icbThP@W=l!f;oQxSF9j^)`T z6<+y^Yf`*Qvpp=W7JtsQall+k^{}k64R|06Gn=pVI(wnnw{oT4dkk+-l{v+9I8Fk+ z-Lko>M%x3YGhxJ9{Xl(U#e3c3yH=t#h({}8Okt}%yF6*2Np!_?&qrV^I~=|feOYfj zo3~UvE??z~wG6{+?dhOYx5{(Occs_cOzE02ZxAaPfr27s{>NIax*lTY7_K709wt>9 zh~x(_d+fFJO5IDa&az3K;rc4aiM7WG4E69h(MEG5%y~ABpE2(WEPr$@TpY-o)yw7$&Tg2#3?YemS)Z~T1%@6bzga8{IG8an$F$8zShH7r6%d~k zz&DXuDL-&_);8OAdYs)$No@L=%>H`t72+SU091(K`;dv;N3XUI=MSG3i`xQ}b0Pu2 z21pbDF`{qXujdekZ2B1uTi)%CWlpc;piej*uV=r!0AzhTtWG|sP`vzxjFoAzDbl8a zcz8C}n_BrsZO+j%9E03KfHrl@@A;*CLxI=))G@ximIY8HN}L{9XqiF+UYxa@aY zU}FoOpkD6pMi6>PfRzY^;3N`_7Hkxcm!dOG=R~v!3|q1~fG1iVs|%+ahVu*3yB4r< z4GvBV68)11C&RLJfUM6<(*07JR#CV;Nl>$nv}M@IN)+P?ychg<@vsg)dTrObp!hq!>w7) zUHRV)#ZnA#TGG-xA~g9s-5eGw)3z8gr4ac&w#qQ$Akq1}m_)rn1^niuig|~0$Vag! z2HUvS$Q$%9obEeHgkUwa*ot4>tXe%gQ;o2^Jw4sP59?CO2vXMRxq98#LU@HuRP9&n z^n7wOFa17d!HUB(~ol%+i?Uj_a7$$$4G$(`u= z{hCB72Y&>|JjWsW+&UrO_F~#s`X?9$oIG8j7Q=@YMKbl}vV5urCyTT6cX=>ClfC#h zs~wQrZL3c3m1qR3>$!hIF0huo;v&C{?4pg zD*J`Hiu7ciy|MgEsv%L#SP(3`kReVQYZAIU_L+a1b)SWxZ5wOFbp@G74v@rMW3z0} zAh`2>nS1^7caW+{%p|M16VsQ@jDzoB)ddsuY*i+ob^i6}A{f$a0u>X%7B;@^o}f1n zi`o%^ptGvEV>G2TQA(ejqk{6NR?yHe;Rx%LpNtw!iYD${bN{ER5W}sgtt8iCD{=b; zo(OD0wASbRm=$7z@ID^BX;V%=!<+Y(%?195L}i<}h|*0y3u{ZiBfji^?& zR@{E`>yrod-X#^Uuu>AR(7CM>O*E8ZxzQ zeTu)`W}_1tttrcU(1(QVpHd4}Cg`3P)0L{++SMXx5@h#BLx!N zP9Emcb}oEFYzh)DPw)d2qI{n6UBjm-0{{zqh<1)<32vOp_Z}87I0dHmF}Xrdl<0J| z7Y6JVegeueY%x^&9$?>ib~~iWo|9g-t({|atX}K*lN|^;sfYl+NeWYw8tp@BZIx5q zc5+iO=^RhRXOYyC zOG0zqmzU)!@4vBls!)u2ljGz`MiNP8Wxni|0%y)iJaKFyz-YeQY9s5ujdAzXDm3iP zVf3nHrjM?@O~_Y8>Pkb(jc)z6U!>y|l~4f9Ovf}l@0iW%wUfJ+?&5^PoT~48i+F2y zn(>K7KD72P!)F09a^J=I!UNt#`y(o}TzUzQ=II#{dAGMAA3j87f7|vR@z}MO-Ul4w#x%%&Y@5}NV` zn0sw=(LfGEl~R&h5!#+}qb7zRKUXVDE)Zr@PHa=rZw`RDuC5UWG~55EPgA8q@P@>Y zQ}-Cj9e3g6kb6w{c}TaSaR$ViEj{ zOlrcny2^-W%xCKi7nB=}h<|qOAdbk_ABg>?&vQ6Ss9Lwwh5&)*EMO>!DKxu!7U1Xn z7?Se6WU~mMJ;I%`!|k6u-E-p}4$4&C4t2x~GwL&U9Ud*Y#XVgRo=9U#ykGer z13#X)Mg5{gV#vuu8TB)tQTz@JhFA}4J7n*u&kHR8lTD;{Y*%2#`e;F>KgSCd9NH|3d|`y?Vut-bmBTw42VjO#lobGm6sR` zd%{a9_Y{84lsOEaF|&h4nOd>d?l_QkRnz;0tXXS!tRaLZ3XO?PmHhk<_-=v5KjXWd zy+8jO-}P?{s8H*|!z1h+T0Ue*HGH7*V-t%$5}*Lb*bl2P6XiOD|K@*xg#u(LT9xD|+ciP(+h(Q)xiAt}B)2vXT z#7%fb-hj1dN3X-h%d1wCW&6A52&UM73h&**J=zHN#N(*x>_TjV3ixkDaG}3Y+M6 z(NEbL&jdWGJJE(T+TB>)oVKb;CmxrKgx=Sc7iJq_R?!c}|Av>9WD36?=fg!NiF9<( z^33=wrUdVfF>2RX%wDx!XU+J)?)v_T%S(JbmA)<&u?9-j7^d5ZMgR1!vGx-pE9{Oi zY-J1AeZ~<~KWJ=G_>@SympBCydWOJ{*xFS#ca{EdqY8`cE4Pu-4nM6M70f{N#TogS!%0auiD0C7XK)5 zF&NRE4NfzC?1jAwCS@orPpHxs`{if!o&3a1n3szIwG6U-Orh4{oqVB<`Im2}m|3=28 zynX(k!oE5#t|i+#I0O&DY1|Tm6Wrb1T|#gP+IVnx_aMRD8g~uu?(XjPb>7^2XXee^ z_wf&>PxtS1b)7m@wbx#IEpIR|{^=(}J)v7~S2xWCy%@U~ zam+^&-6sok%@DpgJButC6gfMIC9V4jG(|^0Z?A)Sb;j_ZsAGeA)v9LQR2)#Yh&ER` zbJ%sFSo=adBf~qp`n;`@&+yFELjO61ob^4E@c{W~5iAn)WBnZaefFyOz4HN+!1Ig6 z&}z(QH>?k;Sp{KuXQ9muS7!MRkk8%$aL}VWIw`+S!rdHnn9O=M1bA&ruJBi+z(@sE z*Mlbw8Yb8EvAz#bo7GfF?Zl;|p%r@#=hbaXXnBmEv*Hh&{Q`%t^vLu^pX`2nbJc&t zNRwmp6V?ChPQk0j8DN00r{*EzOJu~Yyq4-o)W^njFBSLh$73Qe=x*~mCHMCIU_QWx z_`4=RpgBK<+f9xzcxr?Swe9KqBm{B7Z`j60i`}vCiSbF!p&cIENd zk)xPE64v2aJaIOW+I08%jjZ~ba=QWRt4aH=d0Dohqg0 zXPF5aZ^!;Ch==9Pqe4@y!eOTJXXLhjNbXQso>Bkt=D{;&Un{7c>i$NYx=JIq;%K9&;MoCHBe=BRHQdg%9&V0vaw z*=T5a44CG?6y-cd(8%QlD;8Rd+-vFlFXVsrbezr42rl9fUzCjkZHp#tG5Y3Tf&bC+ ze+T}rU?SUR*w0Q zi%Xa`^BXRf#Fib|pV&0O6ec$9Gsj+hC_fSG)o(&n7AP8aUlQP4m%%9!a@VQ*kGpI( z5eYeuk;Q?7gLSQM)`1K*ePN+3KSq-eIRu))_+Wo-d0sIc$mFMBY1PE_G#rH%Q1xg+ zhxt6-d_As*lm52YuAR9;IzC48{bKouJpzR!MK@Ldh@;!qiwQ;xjmNi4zHgOlG`Ot` z(`qZueK!CM+d!8M-|}I!wzcb^%?>S8*m8lTA2QA0Mo55zs-FgjjT4eC&B+$)4&55} z^}Dtl&9?rT#0JfSVq7Ft9QSl#G6>YBJOCc2 z4k}@cgXK!AYreAMeMs%MeXMJLhI}kSbhLZ6-7a*-U>be6@?Vl5m9Y<)G|tmxEJizF zia!M?=9?{xv4|o+pw7ZQF6AfFRXCuExx_Nn2mv#Wm~5Bu-@U^lo%BjNRwm^RyTl$S zK1D|tlS62vPiH4Eka8bVIy=B#OS`u-HMkus>(cCY;0(&-YfiVYafA*$cd~MAdg1lj z=PJxUkt*j<*2%HupCy$?7~sYE04OFnTC!JQI$!&(d`;&)(GAhjq%Mf>TirMf zELNd#4LFgaaNK)zalkfeaVmIey}rNfkm)-6eBX6GTQlBVizt(FvZD5)*y5cqto?xs zMWkPjC`{>;4L5hG^e0T`N(#*3Pvz}*nm}RC!y@M+)XW!chN&@#>xix6mgz;eWRSBn zL0@7Px4$Ij6k)_ng($F_wV8%c<Si^3qDYI`17!>!E&}He%lc|R`uB6( zrJl00-0TStCkIcS$dQOk`)^WxG zrC=lIoj>Rp^)2XF_lVhiYdOBWY27F#B$jC{2a*kXoWSqRmyx{vVP}Ag zeMYPFX_tC6 zMHe9{|C$K?s4mbg+FdJJLg}ISf$nAPM=yU+1R=w!DIO#UjGg!v^aGO z47k+nc~|J)XFixK!EtATYS(e&27%_j`s|K>Sj!8vCD|-a*HUm?&J(9 zeQgF{Ae6}KlrN`a00Y9^cTKL})Juh??>U9i9rc3Scn#!lW-rNKdQ>j%hWjK;MS-Kz zSlaBwD5efSnXJMlJIT|I?;IA%bY9H2y{^XjYtol6_NP~=t?f;3e$oLGa#m$Cx?riwuYyJ6tAbP!f z-Hf(FN8F`N`(<^e$4Y{K$$}I;x@|a`EuUHdX1lGNXRoLUtreDkj9=r;)NBGShP85x z#ZS>EuDk;dcx?q|(Zh~?9;JT-aQg8%V`cH$ZheTmTZg!=9LAun8MAQamUQ>;QJb+@ zeNb2~x0A#S6+0>Nnvob4r5{WMz!g4Desm6WZW>-}xKR~r)=6zGYr_bX?Z22Wc1*Mf z2FWVxD2F}2^e9h9eWZEzI-)XtuQjhP?&q(R(2sb~2w>XenYL>47xH5}|JJg`8_-Mq zS7_Ak1?es(d4DQyB9|V2AB!as8hEOFT0UxS;xkNB$02*8vF*+XPD9xS0gs!oVMY+p zN}F3^llu2GQBe72SyMnxS)kkaCa%vjr>ro_Ht8cpAk-CmLf5PoUhTMtxil`XdX5^+ z(ZY1bHSUeWKcCIMj^+{q6)V}|F;nD584eBpCjc|B`QT+q8!>V&QwSkqJmH+_oP_&e z3)ey!blAFrI%Z^Fc~NA!(om`7Zi;pIx|q9~O1!rt&ogpn@S2mM$L{bpAD-2#y%NUW zszmt|i@w%VOZSk0KQ!7Y+X%>Iw2!*D+34n`cdm+h*Sc|RX`4v} z`5?pl>C-p_(+6FNGPwSdUbnDTrh3{&eEp|B22^Yrvu#W@aQ^7n%&+`2SA3AkQI+D9 zCbwPw8jTn@CmRo1&~34}Px}lR`P0%|n$3^Ch`W-N#)fHjfVF6Bt_knDf*M{3P= znhw^ax7U`X!o8RmGeW0_h*RCZ`a$Icz%v2`LL1|v1m#Vdg7eo;up|hbni{pJY;q1f z$Vx^X)27NI#LDeXCCjCKsWe60LHa8=B`R!e*LmfWeq!j&b4629N2FjiPOD7I56ik< z{p0BxL}PtkD-pp386yL*+s27%;g~*U1^rar6hK3b(u{{HSh_R1;RNQ;m&SnSc$MV3 z(uFKvYo$$XWd*|0-sW$sRpw1`CFS*` zU`CgWBpLkWb>uzfIU&(+L*nI6Zh?1eNoU$DE^Lp>wCn4Q#yw8k=$f)O#ow^#3lMmI zr=!q5=g5g6_6moo>9vlTe%Rf`ArW2Jbg5@~AAH<_-cV(CGOs3(-JY-O2=%0|eJM*Dg+U}}fP z0{-c}oSQb8X@eAfl-2GuT!?fs^WF(O8g+QS+0guDT?|(#9)nig?hfm9CDd*974AEt zvv?JNhsBjt$f4GRc<`JNY-H08;pYCEjFH-M&W+=R8pr2Ci%D%S@b=jP9gE2B>|3t! z?AOLc@#?@bma4L#j=PNrR7z9v??las%Lpw6ZvA|JJ#EAczn`}GQ*riUin3-ZxGO-YTYs-O-&x*Y%^EwFR{0;*fg|WBf_QJ}Y z1U&7P>>dDGpy)02nvg(I(4G)Fy6}4ukB`*9lJqY9+13o0W&lg`wQWytuH@sFsQ7 z2_)2KR(@RzWkx|vNY)`y@BH@Gg{rz+IQ2?(?RL-N_Am*)a9pphc~*|wCWolrW&0~G z`vJoKRDMgCi(@mof6EMd0l`HT+46GK`6!;u8>DgPOT&%_8ugiDZhfyFM4g0lDm33z zOwM$iT+)~XTk@6WpJ$3D+6~#Qh7BxRcS&S=0N9ESEkPW*PpN|_z8XJP!yu$eJ}Xz! zyqs0CKrQn_U$8k8p|6DVEp72mXn(_LxN{vgtFxK)tX>{*l~R*LN3-IAH>=IgP7fG; z7(O&@9Xt)wV(+^#Jjgm8rt7+-qxgt&$?*K}s`A^)@r)?G(TAXK>Z( zl1@q55s8{mUga#YBRtmM`CkeAh(e&^`S#>ju8x2SC?(<6Kfta&8vT(uhsvUuI>j}E zHxhqjg6EFZ&Ln#oLQD&hL`>c^fqSa1wQ^i7f9_+)@6Wq?K9F^f`Av2K!ZF31`t~rg z#iGojS-#?4p4c)cx{IIbjItK0q`nmOatzo}%`~>gWifT_wc*BBFna;j3W^0v1uT6+ zOJqEo3Zpj}OiTf7V_^!EI)5o}4B+BZog}o>td*e*yVF%7x>A;#d_RtUi$ouASZ+An zG>v~2htzBo^!}4BKip2Cg`Y_iw;j3x10_&UFUN&cNTb3Ca6s^_iM2)BtDaXMNIZ<5 zI=sZZKA)@L18ZIa;Bf@1559u_-V3JLRGF7HzRO#c(JK-@$# zITIm>RpeH$W_i337UMvUCV$!aDfey<_c(|Xz5W^?c&+vX>Us(2>R5j+yoZkFMZj|V z${-5*$KYmvBzf_09&)aRd@gcb<1s;CQu=!W=IrdZMJ5ij zEh)~Utnz3vh!&=wF5nCub_N}k9W1Puq*Un4nw72Qc~VA4Q?Pln38TC_J@O-xKgQxA!#3+4Kqe@dJPTz0@)&i#+>Y%~RT)PwAUP7+%6wXvQ`Ar*tr-t+oy$25 z0d&J|?0R}!YVdanln^I0imiJ=sc{SQYm21gWTC7~0IMyKvq>%lW~QFvoEUJqMm@8+ z71`VEaW`_>1csIl*eW#uO>r2-$-k z2@T5rW_|eq?o7~6Xy^=rC}n#sxaWkkrkeXj{YI1}8|KhPBr0 zUrD^C@5391Ewl>V_x8~Ud6jX-=QI5?rWWg*3Egq|(R{{&9*Qc;r0=yF!|3lB9LCRd z{T+kB>Dbf8lLg1{vLXOId;S|zg zcJ!U4?nLI`TkvsTDg&_75G>oXewQ(`U0L!O$yKpRFzx(FNC9ZtDpvob>7%3*)RH%@)s-Ms^1Ka z_WTS&$ne}a1vYCg*}~bEm%sqP{*^kApe9~L``WN0!m+@<`*`8X?ipr*HO=OyN_QYO z&5iMR%}=wCb%LH2w8FP%QE<^1sCu$pE`gw7)f%UfP3ONx_!{(_SflNOID1HH%_;=M zyHU|RRQcB5H@c! z8jUO7vh)o1SM+o2U%jy_ZflK*;JM0j&J`-3F$-y6Y{w5g8Fh#rr}rv^5_Y$^fLJM5 z^p@WYJ2FW@K6_lRlWog3^E7l@Foo0)N{8R{Uz>CjKiG4m4imL%x1z`M29>%h&Zn~M z2y8tIU?8lPxG1LW^zztrEKNv8b{u-FGIQ{ve{H=E%P+v@RWVm%$gm!Dc!@-pVC=-P zewlT)F52zD{@PA<7jhq}vdu!Y^~zFt_Q47|y1ya8b%+DmkOz-Cs0|n!o;x*{;dUi6 z|M+@aIP?V8@pq6O9S(e%olLXo?+NOD;3Vg4a*?Y^^fd zx!xO!hU_RdZ1z^DHIbx6mzhJ4m{$<`h@+sGUYK*Lara=2cY0a~)8-)UW-)9ve2v4s zU95G$|7yYOe9-IBa}%+XRJ4tIWGk`5@yl=oUSd8!Fo%*18Y&Bc0jSs+AnQ58jig`m z==|ViI>D^J)iII+Tnv3?FmHTYNEXhHmrfyBrkI84`@W+WHPe!C$+neX5>6fnOG=fC zjp$TDa@LSeW<8sict}52S348Ev^wb>$S|i0!vjj+Acfu=FAtl1bS6Rm9Gtk2(l(QP z@W#=w+hvy#sg6+g&qU)paf)_c#kZk|KO_B0MOfygZc!((4+kiznumKbU6n_FZ+7f% z6c0pjHX0a|ypp)l10pad>J^LdMZ?U7z~dTA_cX#t`+%Ppp|-OfPTo`$#Kw)$yToe=27MB{cum zWZ#Ryn{@er#MAv_qPa#!-u5RV>;Xg`-RUcZ!V#7JWq3poy>Im7`000{H`&vi*9`+# zQpXQI9@*vdpyTS+c^o8+{SrdA77%XY8Vvx5y%H3p*vawzoVHoL;^l3EBNytN-nn3+ z@e_h@JlKTO<>~Ic%Hz@Lck$Hg(~mZ>AzVC%mHRYrSb(lxzsb($HvBqN5=OUn@fMnxdZ+t(9j#Gf*b8w^= zkw2o_u&R6ak6@N}@S^%d#d^hLljyOJyz02JRNkTf{JGs?7)}5T45MaCIxP03$hJs+ zdt~F@e*I|Ht;WTY^$QrsF9#;P2W|-_rn$3y4@G;*XG}~?=fZ7| zmKSm{H{u_>6#iUzmXE8_JJxBqg$L^YBU%XV>@Pw5WtJ|vy2%0W63dkX4%R#W@wFuI z?6TyXs=3mGX#N~r)o9=yU%p&s#2mwEvTxV2m#!$I{DeMwEnw+)0#k`z2R3V*Z+5A^AI#usQZ7~~jO^@~MEdQ!l578ax4c2{lOT3EFOP9Q z3lbL4^4raMi7YrQ*h@=+va2Ph*Pymrs}TNNPg#;O827*WJjlp`*IR!b5r5x5O@JiPHYr`K&({}oTOi}87PG?N}|xW$wa zPazo>bue8l1$Me~cLeadt9w43i-7|hp}pI1wiRlyLilC;JXkXDw;uReGMN}kp?sFl zl5H1q%x4Q#JzStw_7K=)58m?u4%Cj+CKRsl8~9RRBy3^~#2wQ8%DsFO6nV3YWHPybf)v1QQ+0yDuD{Lkj(U^6u~AF4bJ z8EdfQ^#$1V4ENi`#UMS~N(vggSU8^XK|3GVS(n9_7%yA8!w1HArP+n)>ky6}4_J%r zD_7g&371BjXAAoK%40MI@GNjr47ON&VRFopwPc3=Rj8Do_hFMJ&6~cL3R7QyAGsyq z$DLqg7MM7oI-tj1u52SO!nw36YG|KNAl&59_WTrhG~X!Jc+)m4`=G_Uc?}KVvh*p@ zt&%k~tb!L#=A~byF)oVZ-d&8csO-(sIAUJ z$ZUR_Q|@r3*}OQ6fJIW4Jnj9G{KE32WQwEZmjn^9vo37jM3qo*AxpAQNWw?bNR+14 zAuUF)+9yV5|EZRfw}pyL+4+txA6Rl{8Rl~r-^Xu2)2pq>i#77ui}j1dzLOhx`Vfj7 zXe1UnD7A`&R6pdm9=rW0mp`~R`Y2U7Ap)7u5Jl<90IX>~+kP`pemf?gP_9oHJRGYu zrcm-4xsVm2$8>v@9+LGc>R|$ps-Lx~|vCc)d<2R`i8f zsc$4k``%CnY#!30sp;IbVuji25^C~9mx&6X8hDV`$#zd$dfix#p|O$Vv9=QYY7r<{ z+hhH>@B0nH(}2qXf{?|U={M;@`z>??LHs21j^z6#f^%oh%~GiZG?gvIZ0FnK_%E0w zImBlBtNZ)*b^V9A2MDYhdgc7XJI@p!Y(oYgT7wvu4>h<2Z zP{nbDp67j!Uu4(j_)cxN!<7GVH`UGd^X)2|ae3px$LiLBSSoy*0k@L|F+(GzjAi1a zkqn;2px?f6BA;Q*V&&?uw0H`9;9Udmx<3l#pmapEcE>|0U+1u*aap$vJD@cYJ&BopIjK*@+i2&S$ zU)}4;U0$@)C6156y}CtCSpqfGr+)`zAz5C(rfClb%oz@W)@4V96ZPJIdy6hhfOvN zRxr&(aLf04mv%)!+}lL%zO$Ia`|*j}VK^A$Kps{>;xA5~B{?=2P_+ojl>j@7(3Yco zn?U*tddon%3#g&x-#T;N(t^Y;btnw>Te;*WDxd^z7m6YmB?&rhbriF1;_iNTjcV~4 z*N>EPsT2cEs3CjI5*MSPH=&Jf4lgCeVD^Q z#DbaYnEOawq8dQ~sukU*04~LBF_I^ZK3;fFG{E{W{HUNGi_wY?3?ejPA|{P$9M~`> zg>MR?^4%hQ*5upBq?Hm4<_=avjW_`vG>Ou)ASU=@(Gy9_KqdEX2TM4l&6YK`ZjlnW zL$Lyv@obT8uvhF3>h@7%WkwKKY9HtqwKi$}UNwnuP>&q!_i{9A{loIfK6K~l6WQY{ zC$-J(YrC>qzJ!d~O@nx1>6CTn-+y|O6uRQa5o zCn(%7C^=Y)y1a#9H1pg#9z^M7wOpzj`g5x+pGzwG9gK%#+fBLi&wIYqez_czBJ3F~ zv#BEQ`MT}4vbbWc8D`X3>LYDf0?(<7YRVx--7m;x<&myLd{XCiR6@vpm2Tnx?neo}Rf!0&&*&oOIBqB7B_Cyh{Xhv{nAn;D@@t7^d5nX{ z1uI#S0b!@W`T*M@z6Vzpb}wxs(REp|zXl2I+)X?4b&CmK^z|T{S-NYqo`S%M`v&Vk zEMHX9Ew#u;Vpl7jq@5{;OY7iE{N*L$m z(0EhweD|_hSfzhpLwQyCrH9?+=z67fGqAHB`$X9r&*0{Ulf5`b3JAGKQYW-;7U=n8 z89=}ToT~W@gz!t`0P#!+WLM{Mm%ucwto!rmomRWmoyN+&T>67cCS^Waa2f0I8oXFq zVMHEWYnC`DcqmNC7R?lXDU%1)^_GTT*tz8A13oHqZy$3WjOvk>|7e+O^$bLRzdRG1 zC@La_#d@3P(S!m&fqyh#NgsZPV|qU{htg2nv%f5N#I=~kZ}KMp52pBcL~kfDa+mqu zIEb%RUt2+?m)|VJ0W3ttPggc2e zYOPm~72Ps*dRd*2jh~W-bp05D;5RfI`DCNGM@*M3O(Ppw|V^+f$9s z%1_TwO7CCyiS>igLsB)CGLlKQ* zpUcW9F|Nb8{eHUQS-)NHT}T^1+?qYb5-;yqW;voxbidfZxwqOmo#5vpsfeYL{S|%qWRM)pa7TJyC}^s*h<8v(M9{$T#5d{(hjYZ-_5(@m`xa-xOG*wM8+ zTkNA%UvHe1$ezvK^AgP&tkgig`EB>}q*c1QT~>fD94FjK;5wnYOFjxFdD*&ZU|etx7RbHLqY@~iTn zOaR}PWy7)#`9r5v@Ulydyvk=>whG2Cc#q*|361S}FUfTMXVFXKK6k@x)$-L$oIVt^VsU-exY`d8KBpIUcQ>Q`@pe^tGU{dhO(q z4Gp#78@#6uA@l~Ebr=q?q0jz&b^ZV#xRpq--WT@y@P6UbW4|>KbzC%U9Yvv*0yk59?tnzl)#BB~MD2)~_9`bZw1A zEauDnL=T^_x8pyASPd?w4h**}7WCK4zdVm(tMEVm0uew90e!MCs_bJMvt~Z!bL>q` z&l;f3E`a3_KkjqGhxcRR=A5)TrfAcJ)*3-*H97bWI4Vo_d`iOi{n=(}TAsmOfT1gm zCNw_p?J_^=#A6fJl<{Dqo?&i%*zM{Ih~-l*p&?M?zto&&TXfOMw+Oq%PN;OMeXF$w zc{;IlZ)9A&1MUCg;_|M+rl4H#vo;w_mLXK>AlUE{E!l*!+IEq#INNGMO+D04duxOH`DpO{ zwX|S9t2USGUcq`)ZnzSP2Z!Q(^y0gHY{kttvz91B}wkaK6pmnu;uygij{a9Uo# z1F^on4yd}S6AE+~V}_3`zTT$K7_Rzi@Abj&nB9|Hz;3U#gBk6Xrlz#Qk1WMcf>u2> zDjB?VT74^cX5qr$BB~P-Xt({Ja19)>L6iM>CN;`eq5FVORXjaeS;2YoW-F0}#REpi+YxtE~t>{X_iayEkv%cS#5fC4qhy^js6i~)Z2F0D!qVaj*+7zJthWI$-giLQ!)v{ zjW~{f$~(Rw>L5NK_Yz;#l5vu?bP2rpzjpkffgf~Q%$RgFauMM%Bv~L<=FqiaMVm^) zI!c;j@*aT##wV0)&0#Oo2l+%-Kzd@;vAQ3a0H2(H{a38lkcKk+pMz4e$FRsh=}`FuF& zG@Sa4&4`i-?7%{`M>)ESeRtjkqH+&1NRMiBC52oZPN7cItgBA3^dhfd@$;#Zu4@C< z#;-hWL^LY9?yt1FuJ&$!oO$!TFeNrA7MOk)%?3as%BmXC;PqzEv|ke;2%ja5vP9Zwx521Dl1Y zArM%Mu}ll1KS6-bOYxo*XZ+D?Z)c=vpM?w^7olbSRI|K3^MhoW;yQ38x7@8uVZJDT zF88O+24t)f8TNu>21P^gvO_JeMPSZ1JOX52H^Rbb4L$7YNmgPw>kL?`UWNXC{uJd9Js3-5#WA(2kUT)3smcn}Z5X8Tt> zGkyvN&h^&r944k z>pe8+NxH?U(A6m5&~woST%RtSMcGoiwW1^9uC)nPd%r zGfs5$Y_uAU(HIQJmS_V#CW&~?plOEX9@T(%YzYVsg#1tQ$8(7-AHQ_O&fwv+Uy|^s zHcKnqJKlet6``4;reS>8fo)LucG8~b$tX4RX`VQ;?Y>=O#TwqA_YEV%?mdDxuiJ?7 z=zCy@V1fT0d?Z*LQT7|gYV;(=;BVFn?zF>h-ts|w^?1oGm=J_V@(v*19K|my13YZ^ zrRRZFz$3Ud`vpV8OBxSx;X^`iQs9kr#7V;b!t31fvY(p5tn1VNIwzv^Mq9Nlgcj=z zW2O5R<;1)h!E5U5GV*hJr@c`Ilkswy3+QrUu=WS`gvO%pQwl=L?oD?k#!mg3>o>d+ zuAnw6hcP%mcW|U@WPi-wqVUZf^@QWoH`k1DNDO_hZYSy`CwP;0us^EndL(drU#AnV?XBVHaAcE9TX01zoFYR*Vs_XuZ=Pkphg}eeK=@qj#wXQs6`j+p21cBDhfxd`N0`nuyQ$}n7iyUe3+?qR8^F%>$yP!rVwU-z zr~IQ1?=N@p1u!Ppe+FM0JdzoY7r=LtUGRRLB333IxGNyhO9CyyoA9WqDqUV!=`;<) zvpE6I$S(~M9loRcv39Oif-G!!7`>nL zTOyiZBg0vOc{C}l*eUO1tnKTRy}by&f>_%c+7A43sl@^ffOV>-8jg+q2#H0j(k-p^ z4~~!FimnJa+X5-zbIr**eoZr&7{(+jaNsYc3STVEf!IL;GAHlnPeDYf(vqjzYiT$mT@@| zIYTw+e;HQim_*GhA*P&v`cn$t4eGqJZA}fbpXA0PbKYI23SFY*ZEw)(UyU zu+8&%3!HXIZ1s4=GZ;OcvzOQycGzp>EPkl|z(6lFZPG(6U)GL`+2n>$Ilg`umr zoY~OThBw-VeiPR5l|denyM9eaURWfp^?(uU7i(euJk`g%x$UC;_7BJ`ndBusV5wmJ zITV9NkGz{iO-uLA*93#^0(F^pv+i^ICAUAt7@Zg9tK(C#rKP zu}s#_JliSABAx9ll#=n3juYZlL?ZkmEYh+<%;_}gZBTK_fOO*{Yx5f6J8bhbSvBZ5 zQR%F;ddjai=F;_@u8R<0E$E_P111xhBj?n%&fDaoH?3jL7mmt^#?@S&2YYAjyw;2B z?wuE*B*>3%b#y!6uVmzZzhxtw8wFF3CLO;pFWD6r1Va!&BA56&vLovXcr5ZBrcO0U z@G)1Qi@J>jk-$;HZVC{}BFS$dnK?J@ERRUh&k9ypSuY>Ey2!z8b+oHt#=xLuDS~L^IC$Y9SCt)c0U4+N|W=p;f;ZXcC(Y|+vzVvDIOy^3gqcTho)GU3zT0H zocc>?ofb#s!{$)@NxSd=$mXw!@lR$`6sF*mdh8a=50YzLS54%Z3MAXFRU9e8QPhuO z&hnZV3HKD)&le_3IiwtDeiZmxs<2Ydbjk;^UjBGEQyNPlm5?NF3OXOtMgw>VDQNVaKywqOcoNUT;y4TON zK18ZR%Im5|=fG|sHIs96m+k2%{FqiS`y<2|D398=R0o&g%ib%SMVZ#<8!ysQz?^nT zrLHrwfA;dY#b=cJ8YJc(Tj>>e-R#pJ8MPvgCoHoijI2sO;=IM|*y@N->k0f$jPz&* zaN$U+@C1&ur(!=Q>y>BO&fuD-PH^#2OxXGMv zeYNJs%dy)h?zO^~aHy?{$$d6Ya-A$pjND04)!Dl{Lx?Fcm>*YDjyVF1j3l2r&Z1?6 z2^fKy118N_(U<3fHQ)??GItbwW?cj6>&P?12H8e`wBNhRHC+*(AyVF#^t1YtYJ@r2 z)dr*nKDW{|yE6DNmum~m{m6bWzne>~SiglliViYa!d-e6#Wu@cl(^+M3X>>38h_W4 zOrz2S(lU@c$FQR<`Att>+x;8c->t`{f(Rc8_wtG%Kb^~g+)93BNuiYrCVdyrBPwel zSvmQLB60I*ov`&BxIGu=5>xEP6|5L3uDL_151Uq*x}^fF*}j*6e1S%z3{apk!-n%7 ziOlmG)**1~Y5~h+*1w0(1p$i63YnsI6B8QXD*(T=`+T*8{$LF4#(x)`=y9^5K#1KH z-?(u6aIx9y8&lu~Ul~AvK=ix7St^6@nEbW{Fa=;5bXgWI8^VXkyc1s^$7e{eqx!z2 z`X^`nuIcv|`P}`RZ(6@L^jc5SVZz~-Uw~GodZXq$w$qq`ZecP`Ln$Lktmq?T3v)Yh z(uO)1ar%xJ*%J_$MhA3T*bFUWbrB)y|2 zrCmHQ_l8aa5-%iO#h!P9?h_;@yL{Z+zWi-4VZp%4rG@D|Q5R(IAJigr3VCjufuNbb zU;n9xLMlhhsS!vWc$Y*Wh1KEw-&ElKVhsuVd>`mFgG;TXMbSV zU7&h%`}dB9BbX4GyJTPLP$=ixazmtp^@%lg-uAaaPK^YFaU1?@BWWpO>6`m zb_YC|`Y;eff!I~X+#4hHU$m_Lyed09&N=$;!0o@ONd485#EQ__(WlWlI%03B{;y7~ zfX)W5>!V^gVoi1GcM|``#r)^p`@KvlfT{R+U@iaeU-leDzuCF`J(&_h3f$>8aM0ra epXsCh70Togqd6~jRp$-(PeMdixJ*#r=l=odxw+H; literal 0 HcmV?d00001 diff --git a/Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-041-after.png b/Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-041-after.png new file mode 100644 index 0000000000000000000000000000000000000000..005682e57694ebd8e20ae9998c742bf91fd4c61d GIT binary patch literal 81429 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⁡lxg&f0A7Q@{1{8 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 literal 0 HcmV?d00001 diff --git a/Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-event.png b/Sources/Tracing/Docs.docc/Images/makeDinner-jaeger-event.png new file mode 100644 index 0000000000000000000000000000000000000000..e3f292034bfdce44cec25ed742f70d31f99393b1 GIT binary patch literal 49768 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 YZffQ_CvZBmj12ryl2?(-y>Qd_e*pwrzyJUM literal 0 HcmV?d00001 diff --git a/Sources/Tracing/Docs.docc/TracerProtocol.md b/Sources/Tracing/Docs.docc/TracerProtocol.md index fab417f9..2b36f53b 100644 --- a/Sources/Tracing/Docs.docc/TracerProtocol.md +++ b/Sources/Tracing/Docs.docc/TracerProtocol.md @@ -10,4 +10,4 @@ ### Manual Span management - ``startSpan(_:baggage:ofKind:)`` -- ``startSpan(_:baggage:ofKind:at:)`` +- ``Span/end()`` From 708ac64069e35adcbc670da77f3bb57ac56692a3 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Sun, 6 Nov 2022 22:18:16 +0900 Subject: [PATCH 08/14] +tracer,instrument provide static helper functions --- Sources/Instrumentation/Instrument.swift | 33 +++++++++++++++++++++++- Sources/Tracing/Span.swift | 24 ++++++++++++++++- 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/Sources/Instrumentation/Instrument.swift b/Sources/Instrumentation/Instrument.swift index 9e65418c..4796abc5 100644 --- a/Sources/Instrumentation/Instrument.swift +++ b/Sources/Instrumentation/Instrument.swift @@ -15,9 +15,40 @@ import InstrumentationBaggage public enum Instrument { + + /// Convenience to access the globally bootstrapped instrument on ``InstrumentationSystem``. + /// + /// Equivalent to ``InstrumentationSystem/instrument``. static var current: InstrumentProtocol { InstrumentationSystem.instrument } + + /// Obtain the ``current`` instrument which was bootstrapped on the global ``InstrumentationSystem``, + /// and invoke ``InstrumentProtocol/extract(_:into:using:)`` on it. + /// + /// Extract values from a `Carrier` by using the given extractor and inject them into the given `Baggage`. + /// It's quite common for `Instrument`s to come up with new values if they weren't passed along in the given `Carrier`. + /// + /// - Parameters: + /// - carrier: The `Carrier` that was used to propagate values across boundaries. + /// - baggage: The `Baggage` into which these values should be injected. + /// - extractor: The ``Extractor`` that extracts values from the given `Carrier`. + public static func extract(_ carrier: Carrier, into baggage: inout Baggage, using extractor: Extract) where Extract: Extractor, Extract.Carrier == Carrier { + Instrument.current.extract(carrier, into: &baggage, using: extractor) + } + + /// Obtain the ``current`` instrument which was bootstrapped on the global ``InstrumentationSystem``, + /// and invoke ``InstrumentProtocol/extract(_:into:using:)`` on it. + /// + /// Take values from a `Baggage` and inject them into the given `Carrier` using the given ``Injector``. + /// + /// - Parameters: + /// - baggage: The `Baggage` from which relevant information will be extracted. + /// - carrier: The `Carrier` into which this information will be injected. + /// - injector: The ``Injector`` used to inject extracted `Baggage` into the given `Carrier`. + public static func inject(_ baggage: Baggage, into carrier: inout Carrier, using injector: Inject) where Inject: Injector, Inject.Carrier == Carrier { + Instrument.current.inject(baggage, into: &carrier, using: injector) + } } /// Conforming types are usually cross-cutting tools like tracers. They are agnostic of what specific `Carrier` is used @@ -33,7 +64,7 @@ public protocol InstrumentProtocol { func extract(_ carrier: Carrier, into baggage: inout Baggage, using extractor: Extract) where Extract: Extractor, Extract.Carrier == Carrier - /// Extract values from a `Baggage` and inject them into the given `Carrier` using the given ``Injector``. + /// Take values from a `Baggage` and inject them into the given `Carrier` using the given ``Injector``. /// /// - Parameters: /// - baggage: The `Baggage` from which relevant information will be extracted. diff --git a/Sources/Tracing/Span.swift b/Sources/Tracing/Span.swift index 96f41735..85a9e655 100644 --- a/Sources/Tracing/Span.swift +++ b/Sources/Tracing/Span.swift @@ -19,7 +19,28 @@ import Dispatch /// with it. A `Span` can be created from a `Baggage` which contains span information, in which case this span should /// be considered as "child" of the previous span. /// -/// Creating a `Span` is delegated to a ``Tracer`` and end users should never create them directly. +/// Creating a `Span` is delegated to an implementation of ``TracerProtocol`` and end-users should never instantiate spans directly. +/// Most commonly, a span is started using the `withSpan` API of a tracer, like this: +/// +/// ``` +/// tracer.withSpan("working-on-\(thing)") { span in +/// // ... +/// } +/// ``` +/// +/// Once started, a span contains its start time and additional metadata necessary for the tracing backend to handle e.g. +/// further child spans. +/// +/// ### Child Spans +/// +/// +/// ## Manual lifetime management +/// In some situations it may not be possible +/// +/// > Warning: Generally spans should be started using the ``TracerProtocol/withSpan(_:ofKind:_:)-11n3y`` method, +/// > however it may sometimes be necessary to use the alternate ``TracerProtocol/startSpan(_:baggage:ofKind:)`` API. +/// > If the `startSpan` API is used to create a span, it must be explicitly ended using ``end()`` on *every* code-path +/// > leading to the logical end of the span. Omitting to end a span or ending it twice is a programmer error. /// /// - SeeAlso: For more details refer to the [OpenTelemetry Specification: Span](https://github.com/open-telemetry/opentelemetry-specification/blob/v0.7.0/specification/trace/api.md#span) which this type is compatible with. public protocol Span: AnyObject { @@ -84,6 +105,7 @@ extension Span { } /// Adds a ``SpanLink`` between this `Span` and the given `Span`. + /// /// - Parameter other: The `Span` to link to. /// - Parameter attributes: The ``SpanAttributes`` describing this link. Defaults to no attributes. public func addLink(_ other: Span, attributes: SpanAttributes = [:]) { From 4e27a183dcfeeaed41324a14d890bf5b10ed98c3 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Mon, 7 Nov 2022 04:05:20 +0000 Subject: [PATCH 09/14] Fix typos, refine wording in `InstrumentYourLibrary.md` (#70) Co-authored-by: Konrad `ktoso` Malawski --- .../Docs.docc/Guides/InstrumentYourLibrary.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md index 02637e66..b5e47efa 100644 --- a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md +++ b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md @@ -74,7 +74,7 @@ As you can see, the library does not know anything about what tracing system or All it has to do is query for the current [task-local](https://developer.apple.com/documentation/swift/tasklocal) `Baggage` value, and if one is present, call on the instrumentation system to inject it into the request. -Since neither the tracing API nor the specific tracer backend is aware of this library's specific `HTTPRequest` type, we also need to implement an ``Injector`` which takes on the responsibility of adding the metadata into the carrier type (which in our case is the `HTTPRequest`). An injector could for example be implemented like this: +Since neither the tracing API, nor the specific tracer backend are aware of this library's specific `HTTPRequest` type, we also need to implement an ``Injector`` which takes on the responsibility of adding the metadata into the carrier type (which in our case is the `HTTPRequest`). An injector could for example be implemented like this: ```swift struct HTTPRequestInjector: Injector { @@ -84,13 +84,13 @@ struct HTTPRequestInjector: Injector { } ``` -Once the metadata has been injected, the request–including all the additional metadata is sent over the network. +Once the metadata has been injected, the request–including all the additional metadata–is sent over the network. > Note: The actual logic of deciding what baggage values to inject depend on the tracer implementation, and thus we are not covering it in this _end-user_ focused guide. Refer to if you'd like to learn about implementing a ``TracerProtocol``. #### Handling inbound requests -On the receiving side, an HTTP server needs to perform the inverse operation, as it receives the request from the network and forms an `HTTPRequest` object, and before it passes it to user-code, it must extract any trace metadata from the request headers into the `Baggage`: +On the receiving side, an HTTP server needs to perform the inverse operation, as it receives the request from the network and forms an `HTTPRequest` object. Before it is passed it to user-code, it must extract any trace metadata from the request headers into the `Baggage`. ``` ┌──────────────────────────────────┐ @@ -160,7 +160,7 @@ func handler(request: HTTPRequest) async { This sets the task-local value `Baggage.current` which is used by [swift-log](https://github.com/apple/swift-log), as well as ``TracerProtocol`` APIs in order to later "*pick up*" the baggage and e.g. include it in log statements, or start new trace spans using the information stored in the baggage. -> Note: The end goal here being that when end-users of your library write `log.info("Hello")` the logger is able to pick up the contextual baggage information and include the e.g. the `trace-id` in such log statement automatically! This way, every log made during the handling of this request would include the trade-id automatically, e.g. like this: +> Note: The end goal here being that when end-users of your library write `log.info("Hello")` the logger is able to pick up the contextual baggage information and include the e.g. the `trace-id` in such log statement automatically! This way, every log made during the handling of this request would include the `trace-id` automatically, e.g. like this: > > `12:43:32 info [trace-id=463a...13ad] Logging during handling of a request!` @@ -204,11 +204,11 @@ While this code is very simple for illustration purposes, and it may seem surpri ### Starting Trace Spans in Your Library -The above steps are enough if you wanted to provide contextual baggage propagation, and already enables techniques such as *correlation ids* which can be set once, in one system, and then carried through to any downstream services the code makes calls from while the baggage is set. +The above steps are enough if you wanted to provide contextual baggage propagation. It already enables techniques such as **correlation ids** which can be set once, in one system, and then carried through to any downstream services the code makes calls from while the baggage is set. -Many libraries also have the opportunity to start trace spans themselves, on behalf of users, in pieces of the library that can provide useful insight in the behavior or the library in production. For example, the HTTPServer can start spans as soon as it begins handling HTTP requests, and this way provide a parent span to any spans the user-code would be creating itself. +Many libraries also have the opportunity to start trace spans themselfes, on behalf of users, in pieces of the library that can provide useful insight in the behavior or the library in production. For example, the `HTTPServer` can start spans as soon as it begins handling HTTP requests, and this way provide a parent span to any spans the user-code would be creating itself. -Let us revisit the previous sample HTTPServer which restores baggage around invoking the user-code, and further extend it to start a span including basic information about the HTTPRequest being handled: +Let us revisit the previous sample `HTTPServer` which restored baggage around invoking the user-code, and further extend it to start a span including basic information about the `HTTPRequest` being handled: ```swift // SUB-OPTIMAL EXAMPLE: @@ -272,11 +272,11 @@ func finishHandling(request: HTTPRequest, response: HTTPResponse) { } ``` -It is very important to _always_ end spans that have been started, as otherwise resources they use may keep accumulating and lead to memory leaks, or worse issues in tracing backends depending on their implementation. +It is very important to _always_ end spans that are started, as attached resources may keep accumulating and lead to memory leaks or worse issues in tracing backends depending on their implementation. -The manual way of managing spans also means that error paths need to be treated with increased attention. This is something the `withSpan` APIs handle automatically, but we cannot rely on the `withSpan` detecting an error thrown out of its body closure anymore when using the `startSpan`/`end` APIs. +The manual way of managing spans also means that error paths need to be treated with increased attention. This is something that `withSpan` APIs handle automatically, but we cannot rely on `withSpan` detecting an error thrown out of its body closure anymore when using the `startSpan`/`end` APIs. -When an error is thrown, or if the span should for some reason be considered errored, you should invoke the ``Span/recordError(_:)`` method and pass an ``Error`` that should be recorded on the span. Since failed spans usually show up in very visually distinct ways, and are most often the first thing a developer inspecting an application using tracing is looking for, it is important to get error reporting right in your library. Here is a simple example how this might look like: +When an error is thrown, or if the span should be considered errored for some reason, you should invoke the ``Span/recordError(_:)`` method and pass an ``Error`` that should be recorded on the span. Since failed spans usually show up in very visually distinct ways, and are most often the first thing a developer inspecting an application using tracing is looking for, it is important to get error reporting right in your library. Here is a simple example how this might look like: ```swift var span: Span From eb6fc214de08a15e814e88447ada6250478d1b1c Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Mon, 7 Nov 2022 13:05:56 +0900 Subject: [PATCH 10/14] xctest --- Tests/TracingTests/TracerTests+XCTest.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Tests/TracingTests/TracerTests+XCTest.swift b/Tests/TracingTests/TracerTests+XCTest.swift index 360df370..67df9b73 100644 --- a/Tests/TracingTests/TracerTests+XCTest.swift +++ b/Tests/TracingTests/TracerTests+XCTest.swift @@ -32,6 +32,7 @@ extension TracerTests { ("testWithSpan_throws", testWithSpan_throws), ("testWithSpan_automaticBaggagePropagation_sync", testWithSpan_automaticBaggagePropagation_sync), ("testWithSpan_automaticBaggagePropagation_sync_throws", testWithSpan_automaticBaggagePropagation_sync_throws), + ("testWithSpan_operation_withoutSpanPassed", testWithSpan_operation_withoutSpanPassed), ("testWithSpan_automaticBaggagePropagation_async", testWithSpan_automaticBaggagePropagation_async), ("testWithSpan_enterFromNonAsyncCode_passBaggage_asyncOperation", testWithSpan_enterFromNonAsyncCode_passBaggage_asyncOperation), ("testWithSpan_automaticBaggagePropagation_async_throws", testWithSpan_automaticBaggagePropagation_async_throws), From 1a656272dc34fafb342c2c7f64f50c70f466c4fc Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Thu, 24 Nov 2022 19:54:08 +0900 Subject: [PATCH 11/14] gitignore vscode files --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index e613a742..b6e80cb9 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ xcuserdata/ .swiftpm /Package.resolved +.history +.vscode From 3fed073cf9372516790817334fc481e0dd26d5a4 Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Thu, 24 Nov 2022 19:54:21 +0900 Subject: [PATCH 12/14] include swift-log integration --- Docs/README.md | 3 + .../Docs.docc/index.md | 29 ++ Docs/SwiftDistributedTracing/empty.swift | 19 + Package.swift | 5 +- Package@swift-5.2.swift | 2 + Package@swift-5.3.swift | 2 + Package@swift-5.4.swift | 2 + Package@swift-5.5.swift | 2 + Sources/Instrumentation/Logger+Baggage.swift | 43 ++ .../Docs.docc/Guides/TraceYourApplication.md | 3 +- .../BaggageLoggingTest+XCTest.swift | 37 ++ .../BaggageLoggingTest.swift | 228 ++++++++++ Tests/InstrumentationTests/TestLogger.swift | 412 ++++++++++++++++++ 13 files changed, 784 insertions(+), 3 deletions(-) create mode 100644 Docs/README.md create mode 100644 Docs/SwiftDistributedTracing/Docs.docc/index.md create mode 100644 Docs/SwiftDistributedTracing/empty.swift create mode 100644 Sources/Instrumentation/Logger+Baggage.swift create mode 100644 Tests/InstrumentationTests/BaggageLoggingTest+XCTest.swift create mode 100644 Tests/InstrumentationTests/BaggageLoggingTest.swift create mode 100644 Tests/InstrumentationTests/TestLogger.swift diff --git a/Docs/README.md b/Docs/README.md new file mode 100644 index 00000000..fdeb5cb6 --- /dev/null +++ b/Docs/README.md @@ -0,0 +1,3 @@ +# Documentation landing page + +This documentation target exists only to serve as a landing page for self hosted documentation. \ No newline at end of file diff --git a/Docs/SwiftDistributedTracing/Docs.docc/index.md b/Docs/SwiftDistributedTracing/Docs.docc/index.md new file mode 100644 index 00000000..b6e41470 --- /dev/null +++ b/Docs/SwiftDistributedTracing/Docs.docc/index.md @@ -0,0 +1,29 @@ +# ``SwiftDistributedTracing`` + +A Distributed Tracing API for Swift. + +## Overview + +This is a collection of Swift libraries enabling the instrumentation of server side applications using tools such as tracers. Our goal is to provide a common foundation that allows to freely choose how to instrument systems with minimal changes to your actual code. + +While Swift Distributed Tracing allows building all kinds of _instruments_, which can co-exist in applications transparently, its primary use is instrumenting multi-threaded and distributed systems with Distributed Traces. + +### Quickstart Guides + +We provide a number of guides aimed at getting your started with tracing your systems and have prepared them from three "angles": + +1. **Application developers** who create server-side applications + * please refer to the guide. +2. **Library/Framework developers** who provide building blocks to create these applications + * please refer to the guide. +3. **Instrument developers** who provide tools to collect distributed metadata about your application + * please refer to the guide. + + +## Topics + +### Guides + +- +- +- diff --git a/Docs/SwiftDistributedTracing/empty.swift b/Docs/SwiftDistributedTracing/empty.swift new file mode 100644 index 00000000..2f2036f5 --- /dev/null +++ b/Docs/SwiftDistributedTracing/empty.swift @@ -0,0 +1,19 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift Distributed Tracing open source project +// +// Copyright (c) 2020-2021 Apple Inc. and the Swift Distributed Tracing project +// authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // +// This module is left purposefully empty of any source files, as it serves +// only as a "landing page" for the documentation. This is in-place until docc +// gains the ability to support package-wide documentation. +// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // \ No newline at end of file diff --git a/Package.swift b/Package.swift index 2366ce3c..1df9a8c9 100644 --- a/Package.swift +++ b/Package.swift @@ -8,7 +8,9 @@ let package = Package( .library(name: "Tracing", targets: ["Tracing"]), ], dependencies: [ - .package(url: "https://github.com/apple/swift-distributed-tracing-baggage.git", .upToNextMinor(from: "0.4.1")), + .package(url: "https://github.com/apple/swift-distributed-tracing-baggage", .upToNextMinor(from: "0.4.1")), + // .package(url: "https://github.com/apple/swift-log.git", from: "1.4.4"), + .package(url: "https://github.com/ktoso/swift-log", .branch("wip-baggage-in-handlers-but-not-api")), .package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"), ], targets: [ @@ -19,6 +21,7 @@ let package = Package( name: "Instrumentation", dependencies: [ .product(name: "InstrumentationBaggage", package: "swift-distributed-tracing-baggage"), + .product(name: "Logging", package: "swift-log"), ] ), .testTarget( diff --git a/Package@swift-5.2.swift b/Package@swift-5.2.swift index 111d4fff..7081256e 100644 --- a/Package@swift-5.2.swift +++ b/Package@swift-5.2.swift @@ -9,6 +9,7 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-distributed-tracing-baggage.git", .upToNextMinor(from: "0.4.1")), + .package(url: "https://github.com/apple/swift-log.git", from: "1.4.4"), ], targets: [ // ==== -------------------------------------------------------------------------------------------------------- @@ -18,6 +19,7 @@ let package = Package( name: "Instrumentation", dependencies: [ .product(name: "InstrumentationBaggage", package: "swift-distributed-tracing-baggage"), + .product(name: "Logging", package: "swift-log"), ] ), .testTarget( diff --git a/Package@swift-5.3.swift b/Package@swift-5.3.swift index 111d4fff..7081256e 100644 --- a/Package@swift-5.3.swift +++ b/Package@swift-5.3.swift @@ -9,6 +9,7 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-distributed-tracing-baggage.git", .upToNextMinor(from: "0.4.1")), + .package(url: "https://github.com/apple/swift-log.git", from: "1.4.4"), ], targets: [ // ==== -------------------------------------------------------------------------------------------------------- @@ -18,6 +19,7 @@ let package = Package( name: "Instrumentation", dependencies: [ .product(name: "InstrumentationBaggage", package: "swift-distributed-tracing-baggage"), + .product(name: "Logging", package: "swift-log"), ] ), .testTarget( diff --git a/Package@swift-5.4.swift b/Package@swift-5.4.swift index 111d4fff..7081256e 100644 --- a/Package@swift-5.4.swift +++ b/Package@swift-5.4.swift @@ -9,6 +9,7 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-distributed-tracing-baggage.git", .upToNextMinor(from: "0.4.1")), + .package(url: "https://github.com/apple/swift-log.git", from: "1.4.4"), ], targets: [ // ==== -------------------------------------------------------------------------------------------------------- @@ -18,6 +19,7 @@ let package = Package( name: "Instrumentation", dependencies: [ .product(name: "InstrumentationBaggage", package: "swift-distributed-tracing-baggage"), + .product(name: "Logging", package: "swift-log"), ] ), .testTarget( diff --git a/Package@swift-5.5.swift b/Package@swift-5.5.swift index 111d4fff..7081256e 100644 --- a/Package@swift-5.5.swift +++ b/Package@swift-5.5.swift @@ -9,6 +9,7 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-distributed-tracing-baggage.git", .upToNextMinor(from: "0.4.1")), + .package(url: "https://github.com/apple/swift-log.git", from: "1.4.4"), ], targets: [ // ==== -------------------------------------------------------------------------------------------------------- @@ -18,6 +19,7 @@ let package = Package( name: "Instrumentation", dependencies: [ .product(name: "InstrumentationBaggage", package: "swift-distributed-tracing-baggage"), + .product(name: "Logging", package: "swift-log"), ] ), .testTarget( diff --git a/Sources/Instrumentation/Logger+Baggage.swift b/Sources/Instrumentation/Logger+Baggage.swift new file mode 100644 index 00000000..a97d0da6 --- /dev/null +++ b/Sources/Instrumentation/Logger+Baggage.swift @@ -0,0 +1,43 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift Distributed Tracing open source project +// +// Copyright (c) 2020-2022 Apple Inc. and the Swift Distributed Tracing project +// authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +import Logging +@_exported import InstrumentationBaggage + +#if swift(>=5.5.0) && canImport(_Concurrency) +@available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) +extension Logger { + + /// Extract any potential ``Logger/Metadata`` that might be obtained by extracting the + /// passed ``InstrumentationBaggage/Baggage`` to this logger's configured ``Logger/MetadataProvider``. + /// + /// Use this when it is necessary to "materialize" contextual baggage metadata into the logger, for future use, + /// and you cannot rely on using the task-local way of passing Baggage around, e.g. when the logger will be + /// used from multiple callbacks, and it would be troublesome to have to restore the task-local baggage in every callback. + /// + /// Generally prefer to set the task-local baggage using `Baggage.current` or `Tracer.withSpan`. + public mutating func provideMetadata(from baggage: Baggage?) { + guard let baggage = baggage else { + return + } + + Baggage.withValue(baggage) { + let metadata = self.metadataProvider.provideMetadata() + for (k, v) in metadata { + self[metadataKey: k] = v + } + } + } +} +#endif diff --git a/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md index b1942f11..1dcd53ab 100644 --- a/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md +++ b/Sources/Tracing/Docs.docc/Guides/TraceYourApplication.md @@ -28,7 +28,7 @@ Once you have selected an implementation, add it as a dependency to your `Packag .package(url: "https://github.com/slashmo/opentelemetry-swift.git", from: ""), // This will automatically include a dependency on the swift-distributed-tracing API: -// .package(url: "https://github.com/apple/swift-distributed-tracing.git", from: 1.0.0), +// .package(url: "https://github.com/apple/swift-distributed-tracing.git", from: "1.0.0"), ``` Next, add the dependency to your application target: @@ -102,7 +102,6 @@ A typical bootstrap could look something like this: ```swift import OpenTelemetry import StatsdMetrics -import FancyLogging extension Logger.MetadataProvider { diff --git a/Tests/InstrumentationTests/BaggageLoggingTest+XCTest.swift b/Tests/InstrumentationTests/BaggageLoggingTest+XCTest.swift new file mode 100644 index 00000000..a747c006 --- /dev/null +++ b/Tests/InstrumentationTests/BaggageLoggingTest+XCTest.swift @@ -0,0 +1,37 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift Distributed Tracing open source project +// +// Copyright (c) 2020-2021 Apple Inc. and the Swift Distributed Tracing project +// authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// +// +// BaggageLoggingTest+XCTest.swift +// +import XCTest +/// +/// NOTE: This file was generated by generate_linux_tests.rb +/// +/// Do NOT edit this file directly as it will be regenerated automatically when needed. +/// + +extension BaggageLoggingTest { + + @available(*, deprecated, message: "not actually deprecated. Just deprecated to allow deprecated tests (which test deprecated functionality) without warnings") + static var allTests : [(String, (BaggageLoggingTest) -> () throws -> Void)] { + return [ + ("testLoggingCallsMetadataProviderWithTaskLocalBaggage", testLoggingCallsMetadataProviderWithTaskLocalBaggage), + ("testLoggingMergesOneOffMetadataWithProvidedMetadataFromTaskLocalBaggage", testLoggingMergesOneOffMetadataWithProvidedMetadataFromTaskLocalBaggage), + ("testLoggingMergesOneOffMetadataWithProvidedMetadataFromExplicitlyPassedBaggage", testLoggingMergesOneOffMetadataWithProvidedMetadataFromExplicitlyPassedBaggage), + ("testLoggingIncludesExplicitBaggageOverTaskLocal", testLoggingIncludesExplicitBaggageOverTaskLocal), + ("testLogHandlerThatDidNotImplementProvidersButSomeoneAttemptsToSetOneOnIt", testLogHandlerThatDidNotImplementProvidersButSomeoneAttemptsToSetOneOnIt), + ] + } +} + diff --git a/Tests/InstrumentationTests/BaggageLoggingTest.swift b/Tests/InstrumentationTests/BaggageLoggingTest.swift new file mode 100644 index 00000000..f01100a3 --- /dev/null +++ b/Tests/InstrumentationTests/BaggageLoggingTest.swift @@ -0,0 +1,228 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift Distributed Tracing open source project +// +// Copyright (c) 2020-2021 Apple Inc. and the Swift Distributed Tracing project +// authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +@testable import Instrumentation +import InstrumentationBaggage +import Tracing +@testable import Logging +import XCTest + +final class BaggageLoggingTest: XCTestCase { + @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) + func testLoggingCallsMetadataProviderWithTaskLocalBaggage() throws { + #if swift(>=5.5) && canImport(_Concurrency) + let logging = TestLogging() + LoggingSystem.bootstrapInternal(logging.makeWithMetadataProvider) + + var logger = Logger(label: #function, metadataProvider: .init { + guard let baggage = Baggage.current, let testID = baggage[TestIDKey.self] else { + XCTFail("Expected Baggage to be passed along to the metadata provider.") + return [:] + } + return ["provider": .string(testID)] + }) + logger.logLevel = .trace + + var baggage = Baggage.topLevel + baggage[TestIDKey.self] = "42" + + Baggage.$current.withValue(baggage) { + logger.trace("test") + logger.debug("test") + logger.info("test") + logger.notice("test") + logger.warning("test") + logger.error("test") + logger.critical("test") + } + + logging.history.assertExist(level: .trace, message: "test", metadata: ["provider": "42"]) + logging.history.assertExist(level: .debug, message: "test", metadata: ["provider": "42"]) + logging.history.assertExist(level: .info, message: "test", metadata: ["provider": "42"]) + logging.history.assertExist(level: .notice, message: "test", metadata: ["provider": "42"]) + logging.history.assertExist(level: .warning, message: "test", metadata: ["provider": "42"]) + logging.history.assertExist(level: .error, message: "test", metadata: ["provider": "42"]) + logging.history.assertExist(level: .critical, message: "test", metadata: ["provider": "42"]) + + enum TestIDKey: BaggageKey { + typealias Value = String + } + #endif + } + + @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) + func testLoggingMergesOneOffMetadataWithProvidedMetadataFromTaskLocalBaggage() throws { + #if swift(>=5.5) && canImport(_Concurrency) + let logging = TestLogging() + LoggingSystem.bootstrapInternal(logging.makeWithMetadataProvider) + + let logger = Logger(label: #function, metadataProvider: .init { + [ + "common": "provider", + "provider": "42", + ] + }) + + Baggage.$current.withValue(.topLevel) { + logger.log(level: .info, "test", metadata: ["one-off": "42", "common": "one-off"]) + } + + logging.history.assertExist(level: .info, + message: "test", + metadata: ["common": "one-off", "one-off": "42", "provider": "42"]) + #endif + } + + func testLoggingMergesOneOffMetadataWithProvidedMetadataFromExplicitlyPassedBaggage() throws { + let logging = TestLogging() + LoggingSystem.bootstrapInternal(logging.makeWithMetadataProvider) + + let logger = Logger(label: #function, metadataProvider: .init { + [ + "common": "provider", + "provider": "42", + ] + }) + + logger.log(level: .info, "test", metadata: ["one-off": "42", "common": "one-off"]) + + logging.history.assertExist(level: .info, + message: "test", + metadata: ["common": "one-off", "one-off": "42", "provider": "42"]) + } + + @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) + func testLoggingIncludesExplicitBaggageOverTaskLocal() { + #if swift(>=5.5) && canImport(_Concurrency) + let logging = TestLogging() + LoggingSystem.bootstrapInternal(logging.makeWithMetadataProvider) + + var logger = Logger(label: #function, metadataProvider: .init { + guard let baggage = Baggage.current else { + return [:] + } + var metadata: Logger.Metadata = [:] + + if let testID = baggage[TestIDKey.self] { + metadata["overriden-contextual"] = .string(testID) + } + if let onlyLocal = baggage[OnlyLocalIDKey.self] { + metadata["only-local"] = .string(onlyLocal) + } + if let onlyExplicitlyProvidedToHandler = baggage[OnlyExplicitlyProvidedIDKey.self] { + metadata["only-explicitly"] = .string(onlyExplicitlyProvidedToHandler) + } + return metadata + }) + logger.logLevel = .trace + + var taskLocalBaggage = Baggage.topLevel + taskLocalBaggage[TestIDKey.self] = "task-local" + taskLocalBaggage[OnlyLocalIDKey.self] = "task-local" + + var explicitBaggage = Baggage.topLevel + explicitBaggage[TestIDKey.self] = "explicit" + explicitBaggage[OnlyExplicitlyProvidedIDKey.self] = "provided-to-handler" + + Baggage.$current.withValue(taskLocalBaggage) { + logger.provideMetadata(from: explicitBaggage) + logger.trace("test", metadata: ["one-off": "42"]) + logger.debug("test", metadata: ["one-off": "42"]) + logger.info("test", metadata: ["one-off": "42"]) + logger.notice("test", metadata: ["one-off": "42"]) + logger.warning("test", metadata: ["one-off": "42"]) + logger.error("test", metadata: ["one-off": "42"]) + logger.critical("test", metadata: ["one-off": "42"]) + } + + // ["one-off": 42, "only-local": task-local, "only-explicitly": provided-to-handler, "overriden-contextual": task-local] + let expectedMetadata: Logger.Metadata = [ + // explicitly set on handler by `logger.provideMetadata`: + "only-explicitly": "provided-to-handler", + // passed in-line by end user at log statement level: + "one-off": "42", + // concetual metadata, if present, still wins over the provided to handler, + // which allows for "default value if no contextual is present" (which the "only-explicit" is an example of): + "overriden-contextual": "task-local", + // task-local is picked up as usual if no conflicts: + "only-local": "task-local", + ] + + logging.history.assertExist(level: .trace, message: "test", metadata: expectedMetadata) + logging.history.assertExist(level: .debug, message: "test", metadata: expectedMetadata) + logging.history.assertExist(level: .info, message: "test", metadata: expectedMetadata) + logging.history.assertExist(level: .notice, message: "test", metadata: expectedMetadata) + logging.history.assertExist(level: .warning, message: "test", metadata: expectedMetadata) + logging.history.assertExist(level: .error, message: "test", metadata: expectedMetadata) + logging.history.assertExist(level: .critical, message: "test", metadata: expectedMetadata) + + enum TestIDKey: BaggageKey { + typealias Value = String + } + enum OnlyLocalIDKey: BaggageKey { + typealias Value = String + } + enum OnlyExplicitlyProvidedIDKey: BaggageKey { + typealias Value = String + } + #endif + } + + func testLogHandlerThatDidNotImplementProvidersButSomeoneAttemptsToSetOneOnIt() { + let logging = TestLogging() + var handler = LogHandlerThatDidNotImplementMetadataProviders(testLogging: logging) + + handler.metadataProvider = .simpleTestProvider + + logging.history.assertExist(level: .warning, message: "Attempted to set metadataProvider on LogHandlerThatDidNotImplementMetadataProviders that did not implement support for them. Please contact the log handler maintainer to implement metadata provider support.", source: "Logging") + } +} + +extension Logger.MetadataProvider { + static var simpleTestProvider: Self { + .init { + ["test": "provided"] + } + } +} + +public struct LogHandlerThatDidNotImplementMetadataProviders: LogHandler { + let testLogging: TestLogging + init(testLogging: TestLogging) { + self.testLogging = testLogging + } + + public subscript(metadataKey _: String) -> Logging.Logger.Metadata.Value? { + get { + nil + } + set(newValue) { + // ignore + } + } + + public var metadata: Logging.Logger.Metadata = [:] + + public var logLevel: Logging.Logger.Level = .trace + + public func log(level: Logger.Level, + message: Logger.Message, + metadata: Logger.Metadata?, + source: String, + file: String, + function: String, + line: UInt) { + self.testLogging.make(label: "fake").log(level: level, message: message, metadata: metadata, source: source, file: file, function: function, line: line) + } +} diff --git a/Tests/InstrumentationTests/TestLogger.swift b/Tests/InstrumentationTests/TestLogger.swift new file mode 100644 index 00000000..3653b882 --- /dev/null +++ b/Tests/InstrumentationTests/TestLogger.swift @@ -0,0 +1,412 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift Logging API open source project +// +// Copyright (c) 2018-2019 Apple Inc. and the Swift Logging API project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of Swift Logging API project authors +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// +import Foundation +@testable import Logging +import XCTest +#if os(Windows) +import WinSDK +#endif + +internal struct TestLogging { + private let _config = Config() // shared among loggers + private let recorder = Recorder() // shared among loggers + + func make(label: String) -> LogHandler { + return TestLogHandler( + label: label, + config: self.config, + recorder: self.recorder, + metadataProvider: LoggingSystem.metadataProviderFactory(label) + ) + } + + func makeWithMetadataProvider(label: String, metadataProvider: Logger.MetadataProvider) -> LogHandler { + return TestLogHandler( + label: label, + config: self.config, + recorder: self.recorder, + metadataProvider: metadataProvider + ) + } + + var config: Config { return self._config } + var history: History { return self.recorder } +} + +internal struct TestLogHandler: LogHandler { + private let recorder: Recorder + private let config: Config + private var logger: Logger // the actual logger + + let label: String + public var metadataProvider: Logger.MetadataProvider + + init(label: String, config: Config, recorder: Recorder, metadataProvider: Logger.MetadataProvider) { + self.label = label + self.config = config + self.recorder = recorder + self.logger = Logger(label: "test", StreamLogHandler.standardOutput(label: label)) + self.logger.logLevel = .debug + self.metadataProvider = metadataProvider + } + + init(label: String, config: Config, recorder: Recorder) { + self.label = label + self.config = config + self.recorder = recorder + self.logger = Logger(label: "test", StreamLogHandler.standardOutput(label: label)) + self.logger.logLevel = .debug + self.metadataProvider = LoggingSystem.metadataProviderFactory(label) + } + + func log(level: Logger.Level, + message: Logger.Message, + metadata explicitMetadata: Logger.Metadata?, + source: String, + file: String, function: String, line: UInt) { + // baseline metadata, that was set on handler: + var metadata = self._metadataSet ? self.metadata : MDC.global.metadata + // contextual metadata, e.g. from task-locals: + let contextualMetadata = self.metadataProvider.provideMetadata() + if !contextualMetadata.isEmpty { + metadata = metadata.merging(contextualMetadata, uniquingKeysWith: { _, contextual in contextual }) + } + // override using any explicit metadata passed for this log statement: + if let explicitMetadata = explicitMetadata { + metadata = metadata.merging(explicitMetadata, uniquingKeysWith: { _, explicit in explicit }) + } + + self.logger.log(level: level, message, metadata: metadata, source: source, file: file, function: function, line: line) + self.recorder.record(level: level, metadata: metadata, message: message, source: source) + } + + private var _logLevel: Logger.Level? + var logLevel: Logger.Level { + get { + // get from config unless set + return self._logLevel ?? self.config.get(key: self.label) + } + set { + self._logLevel = newValue + } + } + + private var _metadataSet = false + private var _metadata = Logger.Metadata() { + didSet { + self._metadataSet = true + } + } + + public var metadata: Logger.Metadata { + get { + return self._metadata + } + set { + self._metadata = newValue + } + } + + // TODO: would be nice to delegate to local copy of logger but StdoutLogger is a reference type. why? + subscript(metadataKey metadataKey: Logger.Metadata.Key) -> Logger.Metadata.Value? { + get { + return self._metadata[metadataKey] + } + set { + self._metadata[metadataKey] = newValue + } + } +} + +internal class Config { + private static let ALL = "*" + + private let lock = NSLock() + private var storage = [String: Logger.Level]() + + func get(key: String) -> Logger.Level { + return self.get(key) ?? self.get(Config.ALL) ?? Logger.Level.debug + } + + func get(_ key: String) -> Logger.Level? { + guard let value = (self.lock.withLock { self.storage[key] }) else { + return nil + } + return value + } + + func set(key: String = Config.ALL, value: Logger.Level) { + self.lock.withLock { self.storage[key] = value } + } + + func clear() { + self.lock.withLock { self.storage.removeAll() } + } +} + +internal class Recorder: History { + private let lock = NSLock() + private var _entries = [LogEntry]() + + func record(level: Logger.Level, metadata: Logger.Metadata?, message: Logger.Message, source: String) { + return self.lock.withLock { + self._entries.append(LogEntry(level: level, metadata: metadata, message: message.description, source: source)) + } + } + + var entries: [LogEntry] { + return self.lock.withLock { self._entries } + } +} + +internal protocol History { + var entries: [LogEntry] { get } +} + +internal extension History { + func atLevel(level: Logger.Level) -> [LogEntry] { + return self.entries.filter { entry in + level == entry.level + } + } + + var trace: [LogEntry] { + return self.atLevel(level: .debug) + } + + var debug: [LogEntry] { + return self.atLevel(level: .debug) + } + + var info: [LogEntry] { + return self.atLevel(level: .info) + } + + var warning: [LogEntry] { + return self.atLevel(level: .warning) + } + + var error: [LogEntry] { + return self.atLevel(level: .error) + } +} + +internal struct LogEntry { + let level: Logger.Level + let metadata: Logger.Metadata? + let message: String + let source: String +} + +extension History { + #if compiler(>=5.3) + func assertExist(level: Logger.Level, + message: String, + metadata: Logger.Metadata? = nil, + source: String? = nil, + file: StaticString = #file, + fileID: String = #fileID, + line: UInt = #line) { + let source = source ?? Logger.currentModule(fileID: "\(fileID)") + let entry = self.find(level: level, message: message, metadata: metadata, source: source) + XCTAssertNotNil(entry, "entry not found: \(level), \(source), \(String(describing: metadata)), \(message)", + file: file, line: line) + } + + func assertNotExist(level: Logger.Level, + message: String, + metadata: Logger.Metadata? = nil, + source: String? = nil, + file: StaticString = #file, + fileID: String = #file, + line: UInt = #line) { + let source = source ?? Logger.currentModule(fileID: "\(fileID)") + let entry = self.find(level: level, message: message, metadata: metadata, source: source) + XCTAssertNil(entry, "entry was found: \(level), \(source), \(String(describing: metadata)), \(message)", + file: file, line: line) + } + + #else +func assertExist(level: Logger.Level, +message: String, +metadata: Logger.Metadata? = nil, +source: String? = nil, +file: StaticString = #file, +line: UInt = #line) { +let source = source ?? Logger.currentModule(filePath: "\(file)") +let entry = self.find(level: level, message: message, metadata: metadata, source: source) +XCTAssertNotNil(entry, "entry not found: \(level), \(source), \(String(describing: metadata)), \(message)", +file: file, line: line) +} + +func assertNotExist(level: Logger.Level, +message: String, +metadata: Logger.Metadata? = nil, +source: String? = nil, +file: StaticString = #file, +line: UInt = #line) { +let source = source ?? Logger.currentModule(filePath: "\(file)") +let entry = self.find(level: level, message: message, metadata: metadata, source: source) +XCTAssertNil(entry, "entry was found: \(level), \(source), \(String(describing: metadata)), \(message)", +file: file, line: line) +} + #endif + + func find(level: Logger.Level, message: String, metadata: Logger.Metadata? = nil, source: String) -> LogEntry? { + return self.entries.first { entry in + if entry.level != level { + return false + } + if entry.message != message { + return false + } + if let lhs = entry.metadata, let rhs = metadata { + if lhs.count != rhs.count { + return false + } + + for lk in lhs.keys { + if lhs[lk] != rhs[lk] { + return false + } + } + + for rk in rhs.keys { + if lhs[rk] != rhs[rk] { + return false + } + } + + return true + } + if entry.source != source { + return false + } + + return true + } + } +} + +public class MDC { + private let lock = NSLock() + private var storage = [Int: Logger.Metadata]() + + public static var global = MDC() + + private init() {} + + public subscript(metadataKey: String) -> Logger.Metadata.Value? { + get { + return self.lock.withLock { + self.storage[self.threadId]?[metadataKey] + } + } + set { + self.lock.withLock { + if self.storage[self.threadId] == nil { + self.storage[self.threadId] = Logger.Metadata() + } + self.storage[self.threadId]![metadataKey] = newValue + } + } + } + + public var metadata: Logger.Metadata { + return self.lock.withLock { + self.storage[self.threadId] ?? [:] + } + } + + public func clear() { + self.lock.withLock { + _ = self.storage.removeValue(forKey: self.threadId) + } + } + + public func with(metadata: Logger.Metadata, _ body: () throws -> Void) rethrows { + metadata.forEach { self[$0] = $1 } + defer { + metadata.keys.forEach { self[$0] = nil } + } + try body() + } + + public func with(metadata: Logger.Metadata, _ body: () throws -> T) rethrows -> T { + metadata.forEach { self[$0] = $1 } + defer { + metadata.keys.forEach { self[$0] = nil } + } + return try body() + } + + // for testing + internal func flush() { + self.lock.withLock { + self.storage.removeAll() + } + } + + private var threadId: Int { + #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) + return Int(pthread_mach_thread_np(pthread_self())) + #elseif os(Windows) + return Int(GetCurrentThreadId()) + #else + return Int(pthread_self()) + #endif + } +} + +internal extension NSLock { + func withLock(_ body: () -> T) -> T { + self.lock() + defer { + self.unlock() + } + return body() + } +} + +internal struct TestLibrary { + private let logger = Logger(label: "TestLibrary") + private let queue = DispatchQueue(label: "TestLibrary") + + public init() {} + + public func doSomething() { + self.logger.info("TestLibrary::doSomething") + } + + public func doSomethingAsync(completion: @escaping () -> Void) { + // libraries that use global loggers and async, need to make sure they propagate the + // logging metadata when creating a new thread + let metadata = MDC.global.metadata + self.queue.asyncAfter(deadline: .now() + 0.1) { + MDC.global.with(metadata: metadata) { + self.logger.info("TestLibrary::doSomethingAsync") + completion() + } + } + } +} + +// Sendable + +#if compiler(>=5.6) +extension TestLogHandler: @unchecked Sendable {} +extension Recorder: @unchecked Sendable {} +extension Config: @unchecked Sendable {} +extension MDC: @unchecked Sendable {} +#endif From 712d7be14becc51a9dc21795371eacb5e434359d Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Thu, 24 Nov 2022 21:26:11 +0900 Subject: [PATCH 13/14] regenerate tests --- Tests/LinuxMain.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Tests/LinuxMain.swift b/Tests/LinuxMain.swift index c8bf7291..eb271ed0 100644 --- a/Tests/LinuxMain.swift +++ b/Tests/LinuxMain.swift @@ -34,6 +34,7 @@ class LinuxMainRunnerImpl: LinuxMainRunner { @available(*, deprecated, message: "not actually deprecated. Just deprecated to allow deprecated tests (which test deprecated functionality) without warnings") func run() { XCTMain([ + testCase(BaggageLoggingTest.allTests), testCase(DynamicTracepointTracerTests.allTests), testCase(InstrumentTests.allTests), testCase(InstrumentationSystemTests.allTests), From 90ccb733844f6d823bee6566607b047cb2026e8e Mon Sep 17 00:00:00 2001 From: Konrad `ktoso` Malawski Date: Fri, 9 Dec 2022 13:38:10 +0900 Subject: [PATCH 14/14] more docs on restoring baggage --- .../Docs.docc/Guides/InstrumentYourLibrary.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md index b5e47efa..54c9f370 100644 --- a/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md +++ b/Sources/Tracing/Docs.docc/Guides/InstrumentYourLibrary.md @@ -293,6 +293,35 @@ It is worth noting that double-ending a span should be considered a programmer e > > Please also take care to never `end()` a span that was created using `withSpan()` APIs, because `withSpan` will automatically end the span when the closure returns. +#### Storing and restoring baggage across callbacks + +Note also since a `Span` contains an instrumentation `Baggage`, you can also pass the span's baggage to any APIs which may need it, or even restore the baggage e.g. for loggers to pick it up while emitting log statements: + +```swift +class StatefulHandler { + var span: Span + + func startHandling(request: HTTPRequest) { + self.span = InstrumentationSystem.tracer.startSpan("\(request.path)") + } + + // callback, form other task, so we don't have the task-local information here anymore + func onSomethingHappening(event: SomeEvent) { + Baggage.withValue(span.baggage) { // restore task-local baggage + // which allows the baggage to be used by loggers and tracers as usual again: + log.info("Event happened: \(event)") + + // since the baggage was restored here, the startSpan will pick it up, + // and the "event-id" span will be a child of the "request.path" span we started before. + InstrumentationSystem.tracer.startSpan("event-\(event.id)") { + // ... handle the event ... + } + } + } +} + +``` + ### Global vs. "Stored" Tracers and Instruments Tracing functions similarily to swift-log and swift-metrics, in the sense that there is a global "backend" configured at application start, by end-users (developers) of an application. And this is how using ``InstrumentationSystem/tracer`` gets the "right" tracer at runtime.

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 literal 0 HcmV?d00001 diff --git a/Sources/Tracing/Docs.docc/Images/makeDinner-zipkin-02.png b/Sources/Tracing/Docs.docc/Images/makeDinner-zipkin-02.png new file mode 100644 index 0000000000000000000000000000000000000000..16ebb2f81e9b6f78eb730b1283cff022ad6c2957 GIT binary patch literal 85413 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 KQ!1+C{l5S{TqC*w literal 0 HcmV?d00001 diff --git a/Sources/Tracing/Docs.docc/Images/makeDinner-zipkin-event.png b/Sources/Tracing/Docs.docc/Images/makeDinner-zipkin-event.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e1d5e83bdf775edc653063422228fde9eea35b GIT binary patch literal 119109 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