@Test(timeout = 20000) public void shouldSubmitSpanWhenSampled() throws Exception { final SpanCollectingReporter reporter = new SpanCollectingReporter(); final Tracing tracing = Tracing.newBuilder() .localServiceName(TEST_SERVICE) .spanReporter(reporter) .sampler(Sampler.create(1.0f)) .build(); testRemoteInvocation(tracing, null); // check span name final Span span = reporter.spans().take(); assertThat(span.name()).isEqualTo(TEST_SPAN); // check kind assertThat(span.kind()).isSameAs(Kind.CLIENT); // only one span should be submitted assertThat(reporter.spans().poll(1, TimeUnit.SECONDS)).isNull(); // check # of annotations (we add wire annotations) assertThat(span.annotations()).hasSize(2); // check tags assertThat(span.tags()).containsAllEntriesOf(ImmutableMap.of( "http.host", "foo.com", "http.method", "POST", "http.path", "/hello/armeria", "http.status_code", "200", "http.url", "none+h2c://foo.com/hello/armeria")); // check service name assertThat(span.localServiceName()).isEqualTo(TEST_SERVICE); // check remote service name assertThat(span.remoteServiceName()).isEqualTo("foo.com"); }
@Test(timeout = 20000) public void shouldSubmitSpanWithCustomRemoteName() throws Exception { final SpanCollectingReporter reporter = new SpanCollectingReporter(); final Tracing tracing = Tracing.newBuilder() .localServiceName(TEST_SERVICE) .spanReporter(reporter) .sampler(Sampler.create(1.0f)) .build(); testRemoteInvocation(tracing, "fooService"); // check span name final Span span = reporter.spans().take(); // check tags assertThat(span.tags()).containsAllEntriesOf(ImmutableMap.of( "http.host", "foo.com", "http.method", "POST", "http.path", "/hello/armeria", "http.status_code", "200", "http.url", "none+h2c://foo.com/hello/armeria")); // check service name assertThat(span.localServiceName()).isEqualTo(TEST_SERVICE); // check remote service name, lower-cased assertThat(span.remoteServiceName()).isEqualTo("fooservice"); }
@Test public void shouldNotSubmitSpanWhenNotSampled() throws Exception { final SpanCollectingReporter reporter = new SpanCollectingReporter(); final Tracing tracing = Tracing.newBuilder() .localServiceName(TEST_SERVICE) .spanReporter(reporter) .sampler(Sampler.create(0.0f)) .build(); testRemoteInvocation(tracing, null); assertThat(reporter.spans().poll(1, TimeUnit.SECONDS)).isNull(); }
.localServiceName(TEST_SERVICE) .spanReporter(reporter) .sampler(Sampler.create(samplingRate)) .build();
@JsonIgnore public Sampler getSampler() { if (sampler == null) { return Sampler.create(sampleRate); } return sampler; }
/** Controls aspects of tracing such as the name that shows up in the UI */ @Bean Tracing tracing( @Lazy Reporter<Span> reporter, @Value("${zipkin.self-tracing.sample-rate:1.0}") float rate) { return Tracing.newBuilder() .localServiceName("zipkin-server") .sampler(rate < 0.01 ? BoundarySampler.create(rate) : Sampler.create(rate)) .currentTraceContext(currentTraceContext()) .spanReporter(reporter) .build(); }
Tracing buildZipkinTracing(@NonNull String name, @NonNull String zipkinUrl, float samplingRate) { if (zipkinUrl.isEmpty() || !(samplingRate > 0f)) { return null; } return Tracing.newBuilder() .localServiceName(name) // puts trace IDs into logs .currentTraceContext(MDCCurrentTraceContext.create()) .spanReporter(buildReporter(zipkinUrl)) .sampler(Sampler.create(samplingRate)) .build(); } }
public void init() { isTrace = serverConfig.getSampleRate() > 0; if (isTrace) { try { createSender(); reporter = AsyncReporter.builder(sender).build(); Map<String, Tracer> traces = new HashMap<String, Tracer>(); for (String servant : serverConfig.getServantAdapterConfMap().keySet()) { if (!servant.equals(OmConstants.AdminServant)) { Tracing tracing = Tracing.newBuilder().localServiceName(servant) .spanReporter(reporter).sampler(brave.sampler.Sampler.create(serverConfig.getSampleRate())).build(); Tracer tracer = BraveTracer.create(tracing); traces.put(servant, tracer); } } TraceManager.getInstance().putTracers(traces); } catch (Exception e) { e.printStackTrace(); } } }
public void init() { isTrace = serverConfig.getSampleRate() > 0; if (isTrace) { try { createSender(); reporter = AsyncReporter.builder(sender).build(); Map<String, Tracer> traces = new HashMap<String, Tracer>(); for (String servant : serverConfig.getServantAdapterConfMap().keySet()) { if (!servant.equals(OmConstants.AdminServant)) { Tracing tracing = Tracing.newBuilder().localServiceName(servant) .spanReporter(reporter).sampler(brave.sampler.Sampler.create(serverConfig.getSampleRate())).build(); Tracer tracer = BraveTracer.create(tracing); traces.put(servant, tracer); } } TraceManager.getInstance().putTracers(traces); } catch (Exception e) { e.printStackTrace(); } } }
private Tracing newTracing(String serviceName) { Tracing brave = null; if (camelContext.isUseMDCLogging()) { brave = Tracing.newBuilder() .currentTraceContext(ThreadLocalCurrentTraceContext.newBuilder() .addScopeDecorator(MDCScopeDecorator.create()).build()) .localServiceName(serviceName) .sampler(Sampler.create(rate)) .spanReporter(spanReporter).build(); } else { brave = Tracing.newBuilder() .localServiceName(serviceName) .sampler(Sampler.create(rate)) .spanReporter(spanReporter).build(); } return brave; }