public static void addRequestInformation(Subsegment subsegment, HttpRequest request, String url) { subsegment.setNamespace(Namespace.REMOTE.toString()); Segment parentSegment = subsegment.getParentSegment(); TraceHeader header = new TraceHeader(parentSegment.getTraceId(), parentSegment.isSampled() ? subsegment.getId() : null, parentSegment.isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED); request.addHeader(TraceHeader.HEADER_KEY, header.toString()); Map<String, Object> requestInformation = new HashMap<>(); requestInformation.put("url", url); requestInformation.put("method", request.getRequestLine().getMethod()); subsegment.putHttp("request", requestInformation); }
/** * Creates a TraceHeader object from a String. Note that this will silently ignore any "Self=" trace ids injected from ALB. * * @param string * the string from an incoming trace-id header * @return the TraceHeader object */ public static TraceHeader fromString(String string) { TraceHeader traceHeader = new TraceHeader(); if (null != string) { String[] parts = string.split(";"); for(String part : parts) { String trimmedPart = part.trim(); String value = valueFromKeyEqualsValue(trimmedPart); if (trimmedPart.startsWith(ROOT_PREFIX)) { traceHeader.setRootTraceId(TraceID.fromString(value)); } else if (trimmedPart.startsWith(PARENT_PREFIX)) { traceHeader.setParentId(value); } else if (trimmedPart.startsWith(SAMPLED_PREFIX)) { traceHeader.setSampled(SampleDecision.fromString(trimmedPart)); } else if (!trimmedPart.startsWith(SELF_PREFIX)) { String key = keyFromKeyEqualsValue(trimmedPart); if (null != key && null != value) { traceHeader.putAdditionalParam(key, value); } } } } return traceHeader; }
public static void addRequestInformation(Subsegment subsegment, HttpRequest request, String url) { subsegment.setNamespace(Namespace.REMOTE.toString()); Segment parentSegment = subsegment.getParentSegment(); TraceHeader header = new TraceHeader(parentSegment.getTraceId(), parentSegment.isSampled() ? subsegment.getId() : null, parentSegment.isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED); request.addHeader(TraceHeader.HEADER_KEY, header.toString()); Map<String, Object> requestInformation = new HashMap<>(); requestInformation.put("url", url); requestInformation.put("method", request.getRequestLine().getMethod()); subsegment.putHttp("request", requestInformation); }
/** * Creates a TraceHeader object from a String. Note that this will silently ignore any "Self=" trace ids injected from ALB. * * @param string * the string from an incoming trace-id header * @return the TraceHeader object */ public static TraceHeader fromString(String string) { TraceHeader traceHeader = new TraceHeader(); if (null != string) { String[] parts = string.split(";"); for(String part : parts) { String trimmedPart = part.trim(); String value = valueFromKeyEqualsValue(trimmedPart); if (trimmedPart.startsWith(ROOT_PREFIX)) { traceHeader.setRootTraceId(TraceID.fromString(value)); } else if (trimmedPart.startsWith(PARENT_PREFIX)) { traceHeader.setParentId(value); } else if (trimmedPart.startsWith(SAMPLED_PREFIX)) { traceHeader.setSampled(SampleDecision.fromString(trimmedPart)); } else if (!trimmedPart.startsWith(SELF_PREFIX)) { String key = keyFromKeyEqualsValue(trimmedPart); if (null != key && null != value) { traceHeader.putAdditionalParam(key, value); } } } } return traceHeader; }
if (incomingHeader.isPresent()) { responseHeader = new TraceHeader(created.getTraceId()); if (SampleDecision.REQUESTED == incomingHeader.get().getSampled()) { responseHeader.setSampled(created.isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED); responseHeader = new TraceHeader(created.getTraceId());
if (incomingHeader.isPresent()) { responseHeader = new TraceHeader(created.getTraceId()); if (SampleDecision.REQUESTED == incomingHeader.get().getSampled()) { responseHeader.setSampled(created.isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED); responseHeader = new TraceHeader(created.getTraceId());
TraceHeader header = new TraceHeader(recorder.getCurrentSegment().getTraceId(), recorder.getCurrentSegment().isSampled() ? currentSubsegment.getId() : null, recorder.getCurrentSegment().isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED);
@Override public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) { SdkHttpRequest httpRequest = context.httpRequest(); Subsegment subsegment = executionAttributes.getAttribute(entityKey); if (subsegment == null) { return httpRequest; } boolean isSampled = subsegment.getParentSegment().isSampled(); TraceHeader header = new TraceHeader( subsegment.getParentSegment().getTraceId(), isSampled ? subsegment.getId() : null, isSampled ? TraceHeader.SampleDecision.SAMPLED : TraceHeader.SampleDecision.NOT_SAMPLED ); return httpRequest.toBuilder().appendHeader(TraceHeader.HEADER_KEY, header.toString()).build(); }
@Override public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, ExecutionAttributes executionAttributes) { SdkHttpRequest httpRequest = context.httpRequest(); Subsegment subsegment = executionAttributes.getAttribute(entityKey); if (subsegment == null) { return httpRequest; } boolean isSampled = subsegment.getParentSegment().isSampled(); TraceHeader header = new TraceHeader( subsegment.getParentSegment().getTraceId(), isSampled ? subsegment.getId() : null, isSampled ? TraceHeader.SampleDecision.SAMPLED : TraceHeader.SampleDecision.NOT_SAMPLED ); return httpRequest.toBuilder().appendHeader(TraceHeader.HEADER_KEY, header.toString()).build(); }