# `HuggingfaceClient.Telemetry`
[🔗](https://github.com/huggingface/huggingface_client/blob/v0.1.0/lib/huggingface_client/telemetry.ex#L1)

Telemetry integration for HuggingfaceClient inference requests.

All inference calls emit `:telemetry.span/3` events under the
`[:huggingface_client, :request]` prefix, carrying:

* **start metadata** — `%{provider: binary(), task: binary(), model: binary() | nil}`
* **stop metadata**  — same as start, plus `%{status: non_neg_integer()}`

## Usage

    # Attach the built-in logger (prints events to Logger)
    HuggingfaceClient.Telemetry.attach_default_logger(:my_handler)

    # … make inference calls …

    HuggingfaceClient.Telemetry.detach_default_logger(:my_handler)

# `attach_default_logger`

```elixir
@spec attach_default_logger(term()) :: :ok | {:error, :already_exists}
```

Attaches a default Logger-based handler under the given `handler_id`.

Returns `:ok` or `{:error, :already_exists}`.

# `detach_default_logger`

```elixir
@spec detach_default_logger(term()) :: :ok | {:error, :not_found}
```

Detaches the handler registered under `handler_id`.

# `events`

```elixir
@spec events() :: [list()]
```

Returns the full list of telemetry event names emitted by this library.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
