Anvil.Telemetry (Anvil v0.1.1)
View SourceTelemetry integration for Anvil labeling system.
Provides instrumentation for all core operations following the event naming convention:
[:anvil, domain, action, lifecycle?]
Event Categories
- Queue Events: queue creation, status changes
- Assignment Events: dispatch, timeout, completion
- Label Events: submission, validation
- Agreement Events: computation, low score detection
- Export Events: generation, progress tracking
- Storage Events: query timing
Usage
Emitting Events
# Count event
Anvil.Telemetry.emit_queue_created(queue_id, metadata)
# Duration event (using span)
Anvil.Telemetry.span(:assignment_dispatch, metadata, fn ->
result = perform_dispatch()
{result, additional_metadata}
end)Attaching Handlers
:telemetry.attach(
"my-handler",
[:anvil, :label, :submit, :stop],
&MyModule.handle_event/4,
nil
)Testing
import Telemetry.Test
test "emits telemetry event" do
attach_telemetry_handler([:anvil, :queue, :created])
Anvil.Telemetry.emit_queue_created(queue_id, %{})
assert_received {:telemetry, [:anvil, :queue, :created], %{}, %{queue_id: ^queue_id}}
end
Summary
Functions
Emits an assignment completed event.
Emits an assignment created event.
Emits an assignment expired event.
Emits an assignment timeout event (batch).
Emits an export completed event.
Emits an export failed event.
Emits an export progress event.
Emits a label validation failed event.
Emits a low agreement score event.
Emits a queue created event.
Emits a queue status changed event.
Emits a schema migration event.
Emits a schema validation event.
Generic telemetry span wrapper.
Wraps batch agreement recomputation in a telemetry span.
Wraps agreement computation in a telemetry span.
Wraps assignment dispatch in a telemetry span.
Wraps export generation in a telemetry span.
Wraps label submission in a telemetry span.
Wraps storage query in a telemetry span.
Functions
Emits an assignment completed event.
Emits an assignment created event.
Emits an assignment expired event.
Emits an assignment timeout event (batch).
Emits an export completed event.
Emits an export failed event.
Emits an export progress event.
Emits a label validation failed event.
Emits a low agreement score event.
Emits a queue created event.
Emits a queue status changed event.
Emits a schema migration event.
Emits a schema validation event.
Generic telemetry span wrapper.
The function must return a {result, metadata} tuple where metadata will be
merged with the initial metadata for the stop/exception events.
Examples
Anvil.Telemetry.span(:my_operation, %{queue_id: id}, fn ->
result = do_work()
{result, %{work_count: 42}}
end)This emits:
[:anvil, :my_operation, :start]with initial metadata[:anvil, :my_operation, :stop]with duration and merged metadata[:anvil, :my_operation, :exception]if an error occurs
Wraps batch agreement recomputation in a telemetry span.
Wraps agreement computation in a telemetry span.
Wraps assignment dispatch in a telemetry span.
Returns {result, metadata} tuple from the function.
Wraps export generation in a telemetry span.
Wraps label submission in a telemetry span.
Wraps storage query in a telemetry span.