Search in sources :

Example 11 with Tracer

use of org.ballerinalang.util.tracer.Tracer in project ballerina by ballerina-lang.

the class BallerinaHTTPConnectorListener method extractPropertiesAndStartResourceExecution.

protected void extractPropertiesAndStartResourceExecution(HTTPCarbonMessage httpCarbonMessage, HttpResource httpResource) {
    boolean isTransactionInfectable = httpResource.isTransactionInfectable();
    Map<String, Object> properties = collectRequestProperties(httpCarbonMessage, isTransactionInfectable);
    properties.put(HttpConstants.REMOTE_ADDRESS, httpCarbonMessage.getProperty(HttpConstants.REMOTE_ADDRESS));
    properties.put(HttpConstants.ORIGIN_HOST, httpCarbonMessage.getHeader(HttpConstants.ORIGIN_HOST));
    BValue[] signatureParams = HttpDispatcher.getSignatureParameters(httpResource, httpCarbonMessage);
    // invoke the request path filters
    invokeRequestFilters(httpCarbonMessage, signatureParams[1], getRequestFilterContext(httpResource));
    Tracer tracer = TraceManagerWrapper.newTracer(null, false);
    httpCarbonMessage.getHeaders().entries().stream().filter(c -> c.getKey().startsWith(TraceConstants.TRACE_PREFIX)).forEach(e -> tracer.addProperty(e.getKey(), e.getValue()));
    Map<String, String> tags = new HashMap<>();
    tags.put("http.method", (String) httpCarbonMessage.getProperty("HTTP_METHOD"));
    tags.put("http.url", (String) httpCarbonMessage.getProperty("REQUEST_URL"));
    tracer.addTags(tags);
    CallableUnitCallback callback = new HttpCallableUnitCallback(httpCarbonMessage);
    // TODO handle BallerinaConnectorException
    Executor.submit(httpResource.getBalResource(), callback, properties, tracer, signatureParams);
}
Also used : HttpConnectorListener(org.wso2.transport.http.netty.contract.HttpConnectorListener) Logger(org.slf4j.Logger) LoggerFactory(org.slf4j.LoggerFactory) HTTPCarbonMessage(org.wso2.transport.http.netty.message.HTTPCarbonMessage) CallableUnitCallback(org.ballerinalang.bre.bvm.CallableUnitCallback) BallerinaException(org.ballerinalang.util.exceptions.BallerinaException) HashMap(java.util.HashMap) BLangFunctions(org.ballerinalang.util.program.BLangFunctions) BLangConnectorSPIUtil(org.ballerinalang.connector.api.BLangConnectorSPIUtil) Executor(org.ballerinalang.connector.api.Executor) TraceManagerWrapper(org.ballerinalang.util.tracer.TraceManagerWrapper) HashSet(java.util.HashSet) TraceConstants(org.ballerinalang.util.tracer.TraceConstants) PROTOCOL_PACKAGE_HTTP(org.ballerinalang.net.http.HttpConstants.PROTOCOL_PACKAGE_HTTP) BTypeDescValue(org.ballerinalang.model.values.BTypeDescValue) Tracer(org.ballerinalang.util.tracer.Tracer) Map(java.util.Map) FilterHolder(org.ballerinalang.net.http.serviceendpoint.FilterHolder) Constants(org.ballerinalang.runtime.Constants) BallerinaConnectorException(org.ballerinalang.connector.api.BallerinaConnectorException) BStruct(org.ballerinalang.model.values.BStruct) BValue(org.ballerinalang.model.values.BValue) HashMap(java.util.HashMap) BValue(org.ballerinalang.model.values.BValue) Tracer(org.ballerinalang.util.tracer.Tracer) CallableUnitCallback(org.ballerinalang.bre.bvm.CallableUnitCallback)

Example 12 with Tracer

use of org.ballerinalang.util.tracer.Tracer in project ballerina by ballerina-lang.

the class BLangVMUtils method initClientConnectorTrace.

public static void initClientConnectorTrace(WorkerExecutionContext ctx, String connectorName, String actionName) {
    Tracer root = TraceUtil.getParentTracer(ctx);
    Tracer active = TraceManagerWrapper.newTracer(ctx, true);
    TraceUtil.setTracer(ctx, active);
    if (root.getInvocationID() == null) {
        active.generateInvocationID();
    } else {
        active.setInvocationID(root.getInvocationID());
    }
    active.setConnectorName(connectorName);
    active.setActionName(actionName);
    active.startSpan();
}
Also used : Tracer(org.ballerinalang.util.tracer.Tracer)

Aggregations

Tracer (org.ballerinalang.util.tracer.Tracer)12 HTTPCarbonMessage (org.wso2.transport.http.netty.message.HTTPCarbonMessage)11 BStruct (org.ballerinalang.model.values.BStruct)4 HashMap (java.util.HashMap)2 Map (java.util.Map)2 CallableUnitCallback (org.ballerinalang.bre.bvm.CallableUnitCallback)2 BLangConnectorSPIUtil (org.ballerinalang.connector.api.BLangConnectorSPIUtil)2 BallerinaConnectorException (org.ballerinalang.connector.api.BallerinaConnectorException)2 Executor (org.ballerinalang.connector.api.Executor)2 BValue (org.ballerinalang.model.values.BValue)2 PROTOCOL_PACKAGE_HTTP (org.ballerinalang.net.http.HttpConstants.PROTOCOL_PACKAGE_HTTP)2 BallerinaException (org.ballerinalang.util.exceptions.BallerinaException)2 TraceConstants (org.ballerinalang.util.tracer.TraceConstants)2 TraceManagerWrapper (org.ballerinalang.util.tracer.TraceManagerWrapper)2 Logger (org.slf4j.Logger)2 LoggerFactory (org.slf4j.LoggerFactory)2 HashSet (java.util.HashSet)1 List (java.util.List)1 Semaphore (java.util.concurrent.Semaphore)1 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)1