Skip to content

Capture HTTP request/response headers on outbound http.client spans #5935

@Kobby-Bawuah

Description

@Kobby-Bawuah

Problem Statement

The Python SDK currently captures HTTP request/response headers for incoming server requests (e.g., in Django, aiohttp server handlers), but does not capture any headers on outbound http.client spans.

For outbound HTTP calls, only method, URL, query string, fragment, status code, and reason are recorded. Users debugging issues with external API calls would benefit from seeing request and response headers on these spans as well.

This applies to all HTTP client integrations: aiohttp, httpx, stdlib/httplib, and pyreqwest.

Solution Brainstorm

Add opt-in support for capturing HTTP request and response headers on outbound http.client spans. The existing _filter_headers / SENSITIVE_HEADERS mechanism used for incoming request headers could be reused to scrub sensitive values (Authorization, Cookie, etc.) before attaching headers to outbound spans. The send_default_pii flag could control whether scrubbing is applied, consistent with how incoming headers are handled today.

Metadata

Metadata

Assignees

No one assigned
    No fields configured for issues without a type.

    Projects

    Status

    Waiting for: Product Owner

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions