- java.lang.Object
-
- brave.propagation.aws.AWSPropagation<K>
-
- All Implemented Interfaces:
brave.propagation.Propagation<K>
public final class AWSPropagation<K> extends java.lang.Object implements brave.propagation.Propagation<K>Utility for working with Amazon Web Services Trace IDs, for example reading from headers or environment variables.x-amzn-trace-idis primarily for Amazon's X-Ray service, but it is also integrated with AWS ALB, API Gateway and Lambda.For example, if you are in a lambda environment, you can read the incoming context like this:
span = tracer.nextSpan(AWSPropagation.extractLambda());Details
x-amzn-trace-id(and the lambda equivalent_X_AMZN_TRACE_ID) follows RFC 6265 style syntax (https://tools.ietf.org/html/rfc6265#section-2.2): fields are split on semicolon and optional whitespace.Description of the
Root(orSelf) field from AWS CLI help:A trace_id consists of three numbers separated by hyphens. For example,
1-58406520-a006649127e371903a2de979. This includes:- The version number, i.e. 1
- The time of the original request, in Unix epoch time, in 8 hexadecimal digits. For example, 10:00AM December 2nd, 2016 PST in epoch timeis 1480615200 seconds, or 58406520 in hexadecimal.
- A 96-bit identifier for the trace, globally unique, in 24 hexadecimal digits.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface brave.propagation.Propagation
brave.propagation.Propagation.Factory, brave.propagation.Propagation.Getter<C extends java.lang.Object,K extends java.lang.Object>, brave.propagation.Propagation.KeyFactory<K extends java.lang.Object>, brave.propagation.Propagation.Setter<C extends java.lang.Object,K extends java.lang.Object>
-
-
Field Summary
Fields Modifier and Type Field Description static brave.propagation.Propagation.FactoryFACTORYstatic intROOT_LENGTH
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.StringcurrentTraceId()Returns the currenttraceId(TraceContext)or null if not availablestatic brave.propagation.TraceContextOrSamplingFlagsextract(java.lang.String amznTraceId)LikeTraceContext.Extractor.extract(Object)except reading from a single field.static brave.propagation.TraceContextOrSamplingFlagsextractLambda()This is used for extracting from the AWS lambda environment variable_X_AMZN_TRACE_ID.<C> brave.propagation.TraceContext.Extractor<C>extractor(brave.propagation.Propagation.Getter<C,K> getter)<C> brave.propagation.TraceContext.Injector<C>injector(brave.propagation.Propagation.Setter<C,K> setter)java.util.List<K>keys()returns the name of the header field: "x-amzn-trace-id"static java.lang.StringtraceId(brave.propagation.TraceContext context)Used for log correlation ortag values
-
-
-
Field Detail
-
FACTORY
public static final brave.propagation.Propagation.Factory FACTORY
-
ROOT_LENGTH
public static final int ROOT_LENGTH
- See Also:
- Constant Field Values
-
-
Method Detail
-
keys
public java.util.List<K> keys()
returns the name of the header field: "x-amzn-trace-id"- Specified by:
keysin interfacebrave.propagation.Propagation<K>
-
injector
public <C> brave.propagation.TraceContext.Injector<C> injector(brave.propagation.Propagation.Setter<C,K> setter)
- Specified by:
injectorin interfacebrave.propagation.Propagation<K>
-
currentTraceId
@Nullable public static java.lang.String currentTraceId()
Returns the currenttraceId(TraceContext)or null if not available
-
traceId
@Nullable public static java.lang.String traceId(brave.propagation.TraceContext context)
Used for log correlation ortag values- Returns:
- a formatted Root field like "1-58406520-a006649127e371903a2de979" or null if the
context was not created from an instance of
AWSPropagation.
-
extractor
public <C> brave.propagation.TraceContext.Extractor<C> extractor(brave.propagation.Propagation.Getter<C,K> getter)
- Specified by:
extractorin interfacebrave.propagation.Propagation<K>
-
extractLambda
public static brave.propagation.TraceContextOrSamplingFlags extractLambda()
This is used for extracting from the AWS lambda environment variable_X_AMZN_TRACE_ID.- See Also:
extract(String)
-
extract
public static brave.propagation.TraceContextOrSamplingFlags extract(java.lang.String amznTraceId)
LikeTraceContext.Extractor.extract(Object)except reading from a single field.
-
-