Add Tracer and AWS X-Ray middlewares. #1004
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Tracer middleware retrieves the trace ID and parent span ID from the
incoming request if present and stores the in the context. The middleware
provides a goa Doer wrapper function that extract the values from the context
and sets them in the outgoing request.
The middleware constructor accepts a percentage as argument which specifies the
sampling value. This value is used when the incoming request does not include
tracing headers to determine whether a new trace ID should be computed and set
in the context.
The xray middleware leverages the values set in the context by the Tracer
middleware to report tracing information to the AWS X-Ray service. The package
also makes it possible to attach further information to the traces such as
annotations and metadata. The middleware also reports errors to the service.
The xray package also provides a WrapClient function for wrapping an instance
of http.Client to trace requests made to external services.