public TraceData getTraceData() { //Random randoml = new Random(); Map<String,String> at = this.invocation.getAttachments(); String sampled = at.get("Sampled"); String parentSpanId = at.get("ParentSpanId"); String traceId = at.get("TraceId"); String spanId = at.get("SpanId"); // Official sampled value is 1, though some old instrumentation send true Boolean parsedSampled = sampled != null ? sampled.equals("1") || sampled.equalsIgnoreCase("true") : null; if (traceId != null && spanId != null) { return TraceData.create(getSpanId(traceId, spanId, parentSpanId, parsedSampled)); } else if (parsedSampled == null) { return TraceData.EMPTY; } else if (parsedSampled.booleanValue()) { // Invalid: The caller requests the trace to be sampled, but didn't pass IDs return TraceData.EMPTY; } else { return TraceData.NOT_SAMPLED; } }
@Override public TraceData getTraceData() { // try to extract single-header format String b3String = request.getHttpHeaderValue("b3"); if (b3String != null) { TraceData extracted = B3SingleFormat.parseB3SingleFormat(b3String); if (extracted != null) return extracted; } String sampled = request.getHttpHeaderValue(BraveHttpHeaders.Sampled.getName()); String parentSpanId = request.getHttpHeaderValue(BraveHttpHeaders.ParentSpanId.getName()); String traceId = request.getHttpHeaderValue(BraveHttpHeaders.TraceId.getName()); String spanId = request.getHttpHeaderValue(BraveHttpHeaders.SpanId.getName()); // Official sampled value is 1, though some old instrumentation send true Boolean parsedSampled = sampled != null ? sampled.equals("1") || sampled.equalsIgnoreCase("true") : null; if (traceId != null && spanId != null) { return TraceData.create(getSpanId(traceId, spanId, parentSpanId, parsedSampled)); } else if (parsedSampled == null) { return TraceData.EMPTY; } else if (parsedSampled) { return TraceData.SAMPLED; } else { return TraceData.NOT_SAMPLED; } }
return TraceData.create(SpanId.builder() .traceIdHigh(traceIdHigh) .traceId(traceId)