> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/guardrails/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/guardrails/_mcp/server.

# nemoguardrails.http.telemetry

## Module Contents

### Classes

| Name                                                                                    | Description                                                       |
| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [`_HTTPRequestDurationState`](#nemoguardrails-http-telemetry-_HTTPRequestDurationState) | Carry response status from request execution to metric recording. |

### Functions

| Name                                                                                          | Description                                                            |
| --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| [`_http_metric_attributes`](#nemoguardrails-http-telemetry-_http_metric_attributes)           | -                                                                      |
| [`http_call_span`](#nemoguardrails-http-telemetry-http_call_span)                             | Create a privacy-safe client span for one HTTP call.                   |
| [`http_request_duration`](#nemoguardrails-http-telemetry-http_request_duration)               | Record one HTTP client request-duration observation.                   |
| [`record_http_error`](#nemoguardrails-http-telemetry-record_http_error)                       | Record an exception type and retry count without exposing its message. |
| [`set_http_request_attributes`](#nemoguardrails-http-telemetry-set_http_request_attributes)   | Record privacy-safe HTTP request attributes on a span.                 |
| [`set_http_response_attributes`](#nemoguardrails-http-telemetry-set_http_response_attributes) | Record response status, body size, and retry count on a span.          |

### Data

[`__all__`](#nemoguardrails-http-telemetry-__all__)

[`log`](#nemoguardrails-http-telemetry-log)

### API

```python
class nemoguardrails.http.telemetry._HTTPRequestDurationState(
    response_status_code: int | None = None
)
```

Dataclass

Carry response status from request execution to metric recording.

**`response_status_code`** `int | None = None`

---

```python
nemoguardrails.http.telemetry._http_metric_attributes(
    method: str,
    url: str
) -> dict[str, str | int] | None
```

```python
nemoguardrails.http.telemetry.http_call_span(
    tracer: opentelemetry.trace.Tracer | None,
    method: str,
    url: str,
    content: bytes | str | None
) -> typing.Generator[opentelemetry.trace.Span | None, None, None]
```

Create a privacy-safe client span for one HTTP call.

Yields `None` when no tracer is configured. Request exceptions are
recorded and re-raised unchanged.

```python
nemoguardrails.http.telemetry.http_request_duration(
    method: str,
    url: str
) -> typing.Generator[nemoguardrails.http.telemetry._HTTPRequestDurationState, None, None]
```

Record one HTTP client request-duration observation.

The metric contains only low-cardinality endpoint attributes plus response
status or exception type. Telemetry failures never affect the request.

```python
nemoguardrails.http.telemetry.record_http_error(
    span: opentelemetry.trace.Span | None,
    error: BaseException
) -> None
```

Record an exception type and retry count without exposing its message.

```python
nemoguardrails.http.telemetry.set_http_request_attributes(
    span: opentelemetry.trace.Span | None,
    method: str,
    url: str,
    content: bytes | str | None
) -> None
```

Record privacy-safe HTTP request attributes on a span.

The URL is stripped of credentials, query parameters, and fragments. Raw
headers and body content are never recorded.

```python
nemoguardrails.http.telemetry.set_http_response_attributes(
    span: opentelemetry.trace.Span | None,
    response: nemoguardrails.http.types.HTTPResponse
) -> None
```

Record response status, body size, and retry count on a span.

```python
nemoguardrails.http.telemetry.__all__ = ['http_call_span', 'http_request_duration', 'record_http_error', 'set_http_reque...
```

```python
nemoguardrails.http.telemetry.log = logging.getLogger(__name__)
```