@Override public Span createInstance() { return new Span(ElasticApmTracer.this); } });
private void reportSpan() { final ReportingEvent reportingEvent = new ReportingEvent(); reportingEvent.setSpan(new Span(mock(ElasticApmTracer.class))); reportingEventHandler.onEvent(reportingEvent, -1, true); }
@Test void testReportSpan() throws ExecutionException, InterruptedException { reporter.report(new Span(MockTracer.create())); reporter.flush().get(); assertThat(reporter.getDropped()).isEqualTo(0); assertThat(receivedHttpRequests.get()).isEqualTo(1); }
@Test void testSpanTypeSerialization() throws IOException { Span span = new Span(mock(ElasticApmTracer.class)); span.getTraceContext().asRootSpan(ConstantSampler.of(true)); span.withType("template.jsf.render.view"); JsonNode spanJson = objectMapper.readTree(serializer.toJsonString(span)); assertThat(spanJson.get("type").textValue()).isEqualTo("template_jsf_render_view"); span.withType("template").withSubtype("jsf.lifecycle").withAction("render.view"); spanJson = objectMapper.readTree(serializer.toJsonString(span)); assertThat(spanJson.get("type").textValue()).isEqualTo("template.jsf_lifecycle.render_view"); span = new Span(mock(ElasticApmTracer.class)); span.getTraceContext().asRootSpan(ConstantSampler.of(true)); span.withType("template").withAction("jsf.render"); spanJson = objectMapper.readTree(serializer.toJsonString(span)); assertThat(spanJson.get("type").textValue()).isEqualTo("template..jsf_render"); span = new Span(mock(ElasticApmTracer.class)); span.getTraceContext().asRootSpan(ConstantSampler.of(true)); span.withType("template").withSubtype("jsf.render"); spanJson = objectMapper.readTree(serializer.toJsonString(span)); assertThat(spanJson.get("type").textValue()).isEqualTo("template.jsf_render"); span = new Span(mock(ElasticApmTracer.class)); span.getTraceContext().asRootSpan(ConstantSampler.of(true)); span.withSubtype("jsf").withAction("render"); spanJson = objectMapper.readTree(serializer.toJsonString(span)); assertThat(spanJson.get("type").isNull()).isTrue(); System.out.println(spanJson); }
private TransactionPayload createPayloadWithRequiredValues() { final TransactionPayload payload = createPayload(); final Transaction transaction = createTransactionWithRequiredValues(); payload.getTransactions().add(transaction); Span span = new Span(mock(ElasticApmTracer.class)); span.start(TraceContext.fromParent(), transaction) .withType("type") .withSubtype("subtype") .withAction("action") .withName("name"); payload.getSpans().add(span); return payload; }
@Test void resetState() { Span span = new Span(mock(ElasticApmTracer.class)) .withName("SELECT FROM product_types") .withType("db") .withSubtype("postgresql") .withAction("query"); span.getContext().getDb() .withInstance("customers") .withStatement("SELECT * FROM product_types WHERE user_id=?") .withType("sql") .withUser("readonly_user"); span.resetState(); assertThat(span.getContext().hasContent()).isFalse(); assertThat((CharSequence) span.getName()).isNullOrEmpty(); assertThat(span.getType()).isNull(); assertThat(span.getSubtype()).isNull(); assertThat(span.getAction()).isNull(); } }
public static List<Span> getSpans(Transaction t) { List<Span> spans = new ArrayList<>(); Span span = new Span(mock(ElasticApmTracer.class)) .start(TraceContext.fromParent(), t) .withName("SELECT FROM product_types") spans.add(span); spans.add(new Span(mock(ElasticApmTracer.class)) .start(TraceContext.fromParent(), t) .withName("GET /api/types") .withType("request")); spans.add(new Span(mock(ElasticApmTracer.class)) .start(TraceContext.fromParent(), t) .withName("GET /api/types") .withType("request")); spans.add(new Span(mock(ElasticApmTracer.class)) .start(TraceContext.fromParent(), t) .withName("GET /api/types") .withType("request")); span = new Span(mock(ElasticApmTracer.class)) .start(TraceContext.fromParent(), t) .appendToName("GET ")