A behaviour and macro for creating event handlers that subscribe to telemetry events.
Usage
defmodule MyApp.Handlers.AgentLogger do
use SkillKit.Telemetry.Handler, events: [
[:skill_kit, :agent, :turn, :stop]
]
@impl true
def handle_event([:skill_kit, :agent, :turn, :stop], measurements, metadata) do
Logger.info("Turn completed in #{measurements.duration}ns for #{metadata.agent_name}")
:ok
end
endThe handler module becomes a GenServer that:
- Subscribes to the specified telemetry events on startup
- Calls
handle_event/3when events are emitted - Can be added to a supervision tree