Skip to content

ccproxy.plugins.request_tracer.hook

ccproxy.plugins.request_tracer.hook

Hook-based request tracer implementation for REQUEST_* events only.

RequestTracerHook

RequestTracerHook(config=None)

Bases: Hook

Simplified hook-based request tracer implementation.

This hook only handles REQUEST_* events since HTTP_* events are now handled by the core HTTPTracerHook. This eliminates duplication and follows the single responsibility principle.

The plugin now focuses purely on request lifecycle logging without attempting to capture HTTP request/response bodies.

Parameters:

Name Type Description Default
config RequestTracerConfig | None

Request tracer configuration

None
Source code in ccproxy/plugins/request_tracer/hook.py
def __init__(
    self,
    config: RequestTracerConfig | None = None,
) -> None:
    """Initialize the request tracer hook.

    Args:
        config: Request tracer configuration
    """
    self.config = config or RequestTracerConfig()

    # Storage for streaming chunks per request
    self._streaming_chunks: dict[str, list[bytes]] = {}
    self._streaming_metadata: dict[str, dict[str, Any]] = {}

    logger.debug(
        "request_tracer_hook_initialized",
        enabled=self.config.enabled,
    )