Search in sources :

Example 96 with Tracer

use of io.opentracing.Tracer in project wildfly-swarm by wildfly-swarm.

the class HealthServlet method doGet.

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Tracer tracer = GlobalTracer.get();
    SpanContext context = (SpanContext) req.getAttribute(SERVER_SPAN_CONTEXT);
    tracer.buildSpan("health-check-1").asChildOf(context).startActive(true).close();
    resp.getWriter().write("alive");
}
Also used : SpanContext(io.opentracing.SpanContext) Tracer(io.opentracing.Tracer) GlobalTracer(io.opentracing.util.GlobalTracer)

Example 97 with Tracer

use of io.opentracing.Tracer in project wildfly-swarm by wildfly-swarm.

the class SimpleServlet method doGet.

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Tracer tracer = GlobalTracer.get();
    SpanContext context = (SpanContext) req.getAttribute(SERVER_SPAN_CONTEXT);
    tracer.buildSpan("business-operation-1").asChildOf(context).startActive(true).close();
    resp.getWriter().write("world");
}
Also used : SpanContext(io.opentracing.SpanContext) Tracer(io.opentracing.Tracer) GlobalTracer(io.opentracing.util.GlobalTracer)

Example 98 with Tracer

use of io.opentracing.Tracer in project ballerina by ballerina-lang.

the class OpenTracerBallerinaWrapper method startSpan.

/**
 * Method to start a span using parent span context.
 *
 * @param serviceName       name of the service the span should belong to
 * @param spanName          name of the span
 * @param tags              key value paired tags to attach to the span
 * @param referenceType     type of reference to any parent span
 * @param parentSpanContext map of the parent span context
 * @return unique id of the created span
 */
public String startSpan(String serviceName, String spanName, Map<String, String> tags, ReferenceType referenceType, Map<String, SpanContext> parentSpanContext) {
    if (enabled) {
        Map<String, Span> spanMap = new HashMap<>();
        Map<String, SpanContext> spanContextMap = new HashMap<>();
        Map<String, Tracer> tracers = tracerStore.getTracers(serviceName);
        tracers.forEach((tracerName, tracer) -> {
            Tracer.SpanBuilder spanBuilder = tracer.buildSpan(spanName);
            for (Map.Entry<String, String> tag : tags.entrySet()) {
                spanBuilder = spanBuilder.withTag(tag.getKey(), tag.getValue());
            }
            if (parentSpanContext != null && !parentSpanContext.isEmpty()) {
                spanBuilder = setParent(referenceType, parentSpanContext, spanBuilder, tracerName);
            }
            Span span = spanBuilder.start();
            spanMap.put(tracerName, span);
            spanContextMap.put(tracerName, span.context());
        });
        String spanId = UUID.randomUUID().toString();
        spanStore.addSpan(spanId, spanMap);
        spanStore.addSpanContext(spanId, spanContextMap);
        return spanId;
    } else {
        return null;
    }
}
Also used : SpanContext(io.opentracing.SpanContext) HashMap(java.util.HashMap) Tracer(io.opentracing.Tracer) Span(io.opentracing.Span) Map(java.util.Map) HashMap(java.util.HashMap)

Example 99 with Tracer

use of io.opentracing.Tracer in project ballerina by ballerina-lang.

the class OpenTracerBallerinaWrapper method inject.

/**
 * Method to inject the span context of a span into a map carrier.
 *
 * @param spanId the span Id of the span to be injected
 * @return the map carrier holding the span context
 */
public Map<String, String> inject(String spanId) {
    if (enabled) {
        Map<String, String> carrierMap = new HashMap<>();
        Map<String, Span> activeSpanMap = spanStore.getSpan(spanId);
        for (Map.Entry<String, Span> activeSpanEntry : activeSpanMap.entrySet()) {
            Map<String, Tracer> tracers = tracerStore.getTracers(DEFAULT_TRACER);
            Tracer tracer = tracers.get(activeSpanEntry.getKey());
            if (tracer != null && activeSpanEntry.getValue() != null) {
                tracer.inject(activeSpanEntry.getValue().context(), Format.Builtin.HTTP_HEADERS, new RequestInjector(carrierMap));
            }
        }
        return carrierMap;
    } else {
        return Collections.emptyMap();
    }
}
Also used : HashMap(java.util.HashMap) Tracer(io.opentracing.Tracer) Span(io.opentracing.Span) Map(java.util.Map) HashMap(java.util.HashMap)

Example 100 with Tracer

use of io.opentracing.Tracer in project ballerina by ballerina-lang.

the class OpenTracerManager method startSpan.

@Override
public Map<String, Object> startSpan(long invocationId, String spanName, Map<String, ?> spanContextMap, Map<String, String> tags, String serviceName) {
    Map<String, Object> spanMap = new HashMap<>();
    Map<String, Tracer> tracers = tracerStore.getTracers(serviceName);
    for (Map.Entry spanContextEntry : spanContextMap.entrySet()) {
        Tracer tracer = tracers.get(spanContextEntry.getKey().toString());
        Tracer.SpanBuilder spanBuilder = tracer.buildSpan(spanName);
        for (Map.Entry<String, String> tag : tags.entrySet()) {
            spanBuilder = spanBuilder.withTag(tag.getKey(), tag.getValue());
        }
        if (spanContextEntry.getValue() != null) {
            spanBuilder = spanBuilder.asChildOf((SpanContext) spanContextEntry.getValue());
        }
        Span span = spanBuilder.start();
        spanMap.put(spanContextEntry.getKey().toString(), span);
    }
    return spanMap;
}
Also used : SpanContext(io.opentracing.SpanContext) HashMap(java.util.HashMap) Tracer(io.opentracing.Tracer) Map(java.util.Map) HashMap(java.util.HashMap) Span(io.opentracing.Span)

Aggregations

Tracer (io.opentracing.Tracer)104 Span (io.opentracing.Span)49 SpanContext (io.opentracing.SpanContext)30 Map (java.util.Map)21 Vertx (io.vertx.core.Vertx)19 HashMap (java.util.HashMap)19 Test (org.junit.Test)19 BeforeEach (org.junit.jupiter.api.BeforeEach)19 Test (org.junit.jupiter.api.Test)19 Future (io.vertx.core.Future)18 Buffer (io.vertx.core.buffer.Buffer)16 HttpURLConnection (java.net.HttpURLConnection)14 EventBus (io.vertx.core.eventbus.EventBus)13 JsonObject (io.vertx.core.json.JsonObject)12 Objects (java.util.Objects)12 Logger (org.slf4j.Logger)11 LoggerFactory (org.slf4j.LoggerFactory)11 Tags (io.opentracing.tag.Tags)9 Scope (io.opentracing.Scope)8 GlobalTracer (io.opentracing.util.GlobalTracer)8