LemonAi.Providers.HttpTrace (lemon_ai v0.1.0)

View Source

HTTP request/response tracing utilities for AI provider integrations.

Provides functions for generating trace IDs, logging HTTP interactions, inspecting response headers, and producing size-limited previews of request and response bodies. Tracing is gated by the LEMON_AI_HTTP_TRACE environment variable — set it to "1" to enable trace-level logging.

Summary

Functions

body_bytes(body)

@spec body_bytes(term()) :: non_neg_integer()

body_preview(body, max_bytes \\ 1200)

@spec body_preview(term(), pos_integer()) :: String.t()

enabled?()

@spec enabled?() :: boolean()

log(provider, event, payload, level \\ :info)

@spec log(String.t(), String.t(), map(), Logger.level()) :: :ok

log_error(provider, event, payload, level \\ :error)

@spec log_error(String.t(), String.t(), map(), Logger.level()) :: :ok

new_trace_id(provider)

@spec new_trace_id(String.t() | atom()) :: String.t()

response_header_value(headers, names)

@spec response_header_value(
  map() | [{term(), term()}] | nil,
  [String.t()] | String.t()
) ::
  String.t() | nil

summarize_text_size(text)

@spec summarize_text_size(String.t() | nil) :: non_neg_integer()