conproxy 0.2.1

Cache proxy server for heterogeneous RAG/vector search backends with cascade, scope, and MCP
Documentation
#!/usr/bin/env bpftrace
//
// net_profile.bt — TCP connection lifecycle tracing for conpack proxy.
//
// Traces accept4 (inbound), connect (outbound), and close (teardown)
// syscalls for the target PID.  Measures connection establishment latency
// and pool churn rate (close/accept ratio).
//
// Usage: sudo bpftrace -p <PID> net_profile.bt <PID>
//

config = { max_map_keys = 16384 }

// ---- accept4 (inbound connections) ----

tracepoint:syscalls:sys_enter_accept4 / pid == $1 /
{
    @accept_start[tid] = nsecs;
}

tracepoint:syscalls:sys_exit_accept4 / pid == $1 && @accept_start[tid] /
{
    $lat = (nsecs - @accept_start[tid]) / 1000;  // microseconds
    @accept_count++;
    @accept_latency_us = hist($lat);
    @accept_total_lat_us += $lat;
    delete(@accept_start[tid]);
}

// ---- connect (outbound connections) ----

tracepoint:syscalls:sys_enter_connect / pid == $1 /
{
    @connect_start[tid] = nsecs;
}

tracepoint:syscalls:sys_exit_connect / pid == $1 && @connect_start[tid] /
{
    $lat = (nsecs - @connect_start[tid]) / 1000;  // microseconds
    @connect_count++;
    @connect_latency_us = hist($lat);
    @connect_total_lat_us += $lat;
    delete(@connect_start[tid]);
}

// ---- close (connection teardown) ----

tracepoint:syscalls:sys_enter_close / pid == $1 /
{
    @close_count++;
}

END
{
    printf("\n========================================\n");
    printf("CONPACK NET CONNECTION PROFILE SUMMARY\n");
    printf("========================================\n\n");

    // ---- accept4 ----
    printf("--- accept4 ---\n");
    printf("count:          %lld\n", @accept_count);
    if (@accept_count > 0) {
        printf("avg latency us: %lld\n", @accept_total_lat_us / @accept_count);
    }
    printf("latency histogram (us):\n");
    print(@accept_latency_us);
    printf("\n");

    // ---- connect ----
    printf("--- connect ---\n");
    printf("count:          %lld\n", @connect_count);
    if (@connect_count > 0) {
        printf("avg latency us: %lld\n", @connect_total_lat_us / @connect_count);
    }
    printf("latency histogram (us):\n");
    print(@connect_latency_us);
    printf("\n");

    // ---- close ----
    printf("--- close ---\n");
    printf("count:          %lld\n", @close_count);
    if (@accept_count > 0) {
        printf("close/accept:   %lld\n", @close_count / @accept_count);
    }
    printf("\n");

    // Clean up
    clear(@accept_start); clear(@accept_count);
    clear(@accept_latency_us); clear(@accept_total_lat_us);
    clear(@connect_start); clear(@connect_count);
    clear(@connect_latency_us); clear(@connect_total_lat_us);
    clear(@close_count);
}