AgentWorkshop.Telemetry (AgentWorkshop v0.3.0)

Copy Markdown View Source

Telemetry events for Workshop operations.

All events use the [:agent_workshop, ...] prefix. Attach handlers for logging, metrics, cost tracking, or triggering workflows.

Events

[:agent_workshop, :ask, :start]
  measurements: %{system_time: integer}
  metadata: %{agent: atom, prompt: String.t()}

[:agent_workshop, :ask, :stop]
  measurements: %{duration: integer, cost: float}
  metadata: %{agent: atom, prompt: String.t()}

[:agent_workshop, :ask, :error]
  measurements: %{duration: integer}
  metadata: %{agent: atom, prompt: String.t(), error: term}

[:agent_workshop, :cast, :start]
  measurements: %{system_time: integer}
  metadata: %{agent: atom, prompt: String.t()}

[:agent_workshop, :cast, :complete]
  measurements: %{duration: integer, cost: float}
  metadata: %{agent: atom}

[:agent_workshop, :agent, :created]
  measurements: %{system_time: integer}
  metadata: %{agent: atom, role: String.t() | nil, backend: module}

[:agent_workshop, :agent, :dismissed]
  measurements: %{system_time: integer}
  metadata: %{agent: atom}

Example handler

:telemetry.attach("cost-logger", [:agent_workshop, :ask, :stop], fn
  _event, %{cost: cost}, %{agent: agent}, _config ->
    IO.puts("Agent #{agent} cost $#{cost}")
end, nil)

Summary

Functions

Emit a one-shot telemetry event (no start/stop pair).

Emit a telemetry start event. Returns the start time for computing duration.

Emit a telemetry stop event with duration.

Functions

error(action, start_time, error, metadata \\ %{})

@spec error(atom(), integer(), term(), map()) :: :ok

Emit a telemetry error event.

event(action, measurements \\ %{}, metadata \\ %{})

@spec event(atom(), map(), map()) :: :ok

Emit a one-shot telemetry event (no start/stop pair).

start(action, metadata \\ %{})

@spec start(atom(), map()) :: integer()

Emit a telemetry start event. Returns the start time for computing duration.

stop(action, start_time, measurements \\ %{}, metadata \\ %{})

@spec stop(atom(), integer(), map(), map()) :: :ok

Emit a telemetry stop event with duration.