HTTP.Telemetry (http_fetch v0.5.0)

Telemetry integration for HTTP fetch operations.

Provides event tracking and metrics collection for HTTP requests and responses.

Summary

Functions

Emits a telemetry event for request failure.

Emits a telemetry event for request start.

Emits a telemetry event for request completion.

Emits a telemetry event for response body reading start.

Emits a telemetry event for response body reading completion.

Emits a telemetry event for streaming chunk received.

Emits a telemetry event for streaming start.

Emits a telemetry event for streaming completion.

Functions

request_exception(url, error, duration_us)

@spec request_exception(URI.t(), term(), integer()) :: :ok

Emits a telemetry event for request failure.

Examples

iex> HTTP.Telemetry.request_exception(URI.parse("https://example.com"), :timeout, 5000)
:ok

request_start(method, url, headers)

@spec request_start(String.t(), URI.t(), HTTP.Headers.t()) :: :ok

Emits a telemetry event for request start.

Examples

iex> HTTP.Telemetry.request_start("GET", URI.parse("https://example.com"), %HTTP.Headers{})
:ok

request_stop(status, url, response_size, duration_us)

@spec request_stop(integer(), URI.t(), integer(), integer()) :: :ok

Emits a telemetry event for request completion.

Examples

iex> HTTP.Telemetry.request_stop(200, URI.parse("https://example.com"), 1024, 1500)
:ok

response_body_read_start(content_length)

@spec response_body_read_start(integer()) :: :ok

Emits a telemetry event for response body reading start.

Examples

iex> HTTP.Telemetry.response_body_read_start(1024)
:ok

response_body_read_stop(bytes_read, duration_us)

@spec response_body_read_stop(integer(), integer()) :: :ok

Emits a telemetry event for response body reading completion.

Examples

iex> HTTP.Telemetry.response_body_read_stop(1024, 500)
:ok

streaming_chunk(bytes_received, total_bytes)

@spec streaming_chunk(integer(), integer()) :: :ok

Emits a telemetry event for streaming chunk received.

Examples

iex> HTTP.Telemetry.streaming_chunk(8192, 16384)
:ok

streaming_start(content_length)

@spec streaming_start(integer()) :: :ok

Emits a telemetry event for streaming start.

Examples

iex> HTTP.Telemetry.streaming_start(5242880)
:ok

streaming_stop(total_bytes, duration_us)

@spec streaming_stop(integer(), integer()) :: :ok

Emits a telemetry event for streaming completion.

Examples

iex> HTTP.Telemetry.streaming_stop(5242880, 10000)
:ok