[ot-test-cmp]
    ot-tracer ot-test-tracer
        config cmp/cfg-jaeger.yml
        plugin libjaeger_opentracing_plugin-0.5.0.so
#       log localhost:514 local7 debug
        option dontlog-normal
        option hard-errors
        no option disabled
        rate-limit 100.0

        scopes client_session_start
        scopes frontend_tcp_request
        scopes frontend_http_request
        scopes backend_tcp_request
        scopes backend_http_request
        scopes server_unavailable

        scopes server_session_start
        scopes tcp_response
        scopes http_response http_response-error server_session_end client_session_end

    ot-scope client_session_start
        span "HAProxy session" root
            baggage "haproxy_id" var(txn.ot.uuid)
        span "Client session" child-of "HAProxy session"
        event on-client-session-start

    ot-scope frontend_tcp_request
        span "Frontend TCP request" child-of "Client session"
        event on-frontend-tcp-request

    ot-scope frontend_http_request
        span "Frontend HTTP request" follows-from "Frontend TCP request"
            tag "http.method" method
            tag "http.url" url
            tag "http.version" str("HTTP/") req.ver
        finish "Frontend TCP request"
        event on-frontend-http-request

    ot-scope backend_tcp_request
        span "Backend TCP request" follows-from "Frontend HTTP request"
        finish "Frontend HTTP request"
        event on-backend-tcp-request

    ot-scope backend_http_request
        span "Backend HTTP request" follows-from "Backend TCP request"
        finish "Backend TCP request"
        event on-backend-http-request

    ot-scope server_unavailable
        span "HAProxy session"
            tag "error" bool(true)
            log "status" str("503 Service Unavailable")
        finish *
        event on-server-unavailable

    ot-scope server_session_start
        span "Server session" child-of "HAProxy session"
        finish "Backend HTTP request"
        event on-server-session-start

    ot-scope tcp_response
        span "TCP response" child-of "Server session"
        event on-tcp-response

    ot-scope http_response
        span "HTTP response" follows-from "TCP response"
            tag "http.status_code" status
        finish "TCP response"
        event on-http-response

    ot-scope http_response-error
        span "HTTP response"
            tag "error" bool(true)
        event on-http-response if !acl-http-status-ok

    ot-scope server_session_end
        finish "HTTP response" "Server session"
        event on-http-response

    ot-scope client_session_end
        finish "*"
        event on-http-response
