# `BB.Jido.Telemetry`
[🔗](https://github.com/beam-bots/bb_jido/blob/main/lib/bb/jido/telemetry.ex#L5)

Telemetry events emitted by `bb_jido`.

Two event spans are emitted, both following the standard
`:telemetry.span/3` conventions:

- `[:bb_jido, :action, :command]` — wraps execution of
  `BB.Jido.Action.Command`.
- `[:bb_jido, :action, :reactor]` — wraps execution of
  `BB.Jido.Action.Reactor`.

Each `:start`, `:stop`, and `:exception` event carries measurements with
`:system_time`/`:duration` and metadata including `:robot` plus the
action-specific identifier (`:command` or `:reactor`).

A `[:bb_jido, :signal]` event is emitted for every signal forwarded by
`BB.Jido.PubSubBridge`, with metadata `%{robot: ..., type: ...}`.

# `emit_signal`

```elixir
@spec emit_signal(module() | nil, String.t()) :: :ok
```

Emits a `[:bb_jido, :signal]` event for a forwarded signal.

# `span`

```elixir
@spec span([atom()], map(), (-&gt; result)) :: result when result: var
```

Span helper for telemetry-wrapped action execution. Returns whatever
`fun` returns.

---

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