@Test public void censusHttpExecuteInterceptorShouldInjectHeader() throws IOException { Random random = new Random(); SpanContext spanContext = SpanContext.create( TraceId.generateRandomId(random), SpanId.generateRandomId(random), TraceOptions.DEFAULT); Span mockSpan = createMockBuilder(Span.class) .withConstructor(SpanContext.class, EnumSet.class) .withArgs(spanContext, null) .createMock(); Scope scope = tracer.withSpan(mockSpan); try { HttpExecuteInterceptor interceptor = censusHttpModule.new CensusHttpExecuteInterceptor(null); interceptor.intercept(httpRequest); assertThat(httpRequest.getHeaders().get("X-Cloud-Trace-Context")).isNotNull(); } finally { scope.close(); } }
private RecordEventsSpanImpl createSpan(String spanName) { final SpanContext spanContext = SpanContext.create( TraceId.generateRandomId(random), SpanId.generateRandomId(random), TraceOptions.DEFAULT); return RecordEventsSpanImpl.startSpan( spanContext, spanName, null, SpanId.generateRandomId(random), false, TraceParams.DEFAULT, startEndHandler, null, MillisClock.getInstance()); }
private static void assertSamplerSamplesWithProbability( Sampler sampler, SpanContext parent, List<Span> parentLinks, double probability) { Random random = new Random(1234); int count = 0; // Count of spans with sampling enabled for (int i = 0; i < NUM_SAMPLE_TRIES; i++) { if (sampler.shouldSample( parent, false, TraceId.generateRandomId(random), SpanId.generateRandomId(random), SPAN_NAME, parentLinks)) { count++; } } double proportionSampled = (double) count / NUM_SAMPLE_TRIES; // Allow for a large amount of slop (+/- 10%) in number of sampled traces, to avoid flakiness. assertThat(proportionSampled < probability + 0.1 && proportionSampled > probability - 0.1) .isTrue(); }
@Before public void setUp() { random = new Random(1234); spanContext = SpanContext.create( TraceId.generateRandomId(random), SpanId.generateRandomId(random), TraceOptions.builder().setIsSampled(true).build()); notSampledSpanContext = SpanContext.create( TraceId.generateRandomId(random), SpanId.generateRandomId(random), TraceOptions.DEFAULT); spanOptions = EnumSet.of(Span.Options.RECORD_EVENTS); }
Random random = options.randomHandler.current(); TraceId traceId; SpanId spanId = SpanId.generateRandomId(random); SpanId parentSpanId = null;
Random random = options.randomHandler.current(); TraceId traceId; SpanId spanId = SpanId.generateRandomId(random); SpanId parentSpanId = null;
false, notSampledtraceId, SpanId.generateRandomId(random), SPAN_NAME, Collections.<Span>emptyList())) false, sampledtraceId, SpanId.generateRandomId(random), SPAN_NAME, Collections.<Span>emptyList()))
@Test public void startRemoteSpan() { SpanContext spanContext = SpanContext.create( TraceId.generateRandomId(randomHandler.current()), SpanId.generateRandomId(randomHandler.current()), TraceOptions.DEFAULT); RecordEventsSpanImpl span = (RecordEventsSpanImpl) SpanBuilderImpl.createWithRemoteParent(SPAN_NAME, spanContext, spanBuilderOptions) .setRecordEvents(true) .startSpan(); assertThat(span.getContext().isValid()).isTrue(); assertThat(span.getContext().getTraceId()).isEqualTo(spanContext.getTraceId()); assertThat(span.getContext().getTraceOptions().isSampled()).isTrue(); SpanData spanData = span.toSpanData(); assertThat(spanData.getParentSpanId()).isEqualTo(spanContext.getSpanId()); assertThat(spanData.getHasRemoteParent()).isTrue(); }
SpanContext.create( traceId, SpanId.generateRandomId(randomHandler.current()), TraceOptions.builder().setIsSampled(true).build()), spanBuilderOptions) SpanContext.create( traceId, SpanId.generateRandomId(randomHandler.current()), TraceOptions.DEFAULT), spanBuilderOptions)