Cyclium.Telemetry (Cyclium v0.1.5)

Copy Markdown

Telemetry integration for Cyclium.

Events

Episode lifecycle

[:cyclium, :episode, :started]       %{episode_id, actor_id}
[:cyclium, :episode, :completed]     %{episode_id, actor_id, output_count, finding_count}
[:cyclium, :episode, :failed]        %{episode_id, actor_id, error_class}
[:cyclium, :episode, :blocked]       %{episode_id, actor_id}
[:cyclium, :episode, :resumed]       %{episode_id, actor_id}
[:cyclium, :episode, :dropped]       %{actor_id, expectation_id}
[:cyclium, :episode, :queued]        %{episode_id, actor_id}
[:cyclium, :episode, :canceled]      %{episode_id, actor_id, reason}
[:cyclium, :episode, :sampled_out]   %{actor_id, expectation_id}

Step events

[:cyclium, :step, :tool_call]        %{tool, action, episode_id}
[:cyclium, :step, :synthesis]        %{episode_id}
[:cyclium, :step, :output]           %{type, status, episode_id}
[:cyclium, :step, :observation]      %{actor_id, episode_id}

Budget events

[:cyclium, :budget, :tokens]         %{episode_id, used, max, pct}
[:cyclium, :budget, :turns]          %{episode_id, used, max, pct}

Actor events

[:cyclium, :actor, :event_received]  %{actor_id, event_type}
[:cyclium, :actor, :overflow]        %{actor_id, policy, expectation_id}

Output events

[:cyclium, :output, :delivered]      %{type, dedupe_key, ref}
[:cyclium, :output, :failed]         %{type, dedupe_key, reason}
[:cyclium, :output, :deduplicated]   %{type, dedupe_key}

Finding events

[:cyclium, :finding, :raised]        %{finding_key, actor_id, class}
[:cyclium, :finding, :cleared]       %{finding_key, actor_id, class}
[:cyclium, :finding, :expired]       %{count}
[:cyclium, :finding, :escalated]     %{finding_key, class, from, to}

Finding sweep events

[:cyclium, :finding_sweep, :completed]  %{duration_ms, expired_count, escalated_count}, meta: %{node}
[:cyclium, :finding_sweep, :failed]     %{duration_ms}, meta: %{node, reason}

Work claims events

[:cyclium, :work_claims, :acquired]      %{count, duration_ms}, meta: %{dedupe_key, owner_node}
[:cyclium, :work_claims, :steal]         %{count, duration_ms}, meta: %{dedupe_key, owner_node}
[:cyclium, :work_claims, :busy]          %{count, duration_ms}, meta: %{dedupe_key, owner_node}
[:cyclium, :work_claims, :renewed]       %{count}, meta: %{dedupe_key, owner_node}
[:cyclium, :work_claims, :renew_failed]  %{count}, meta: %{dedupe_key, owner_node}
[:cyclium, :work_claims, :completed]     %{count}, meta: %{dedupe_key, owner_node}
[:cyclium, :work_claims, :failed]        %{count}, meta: %{dedupe_key, owner_node}

Phase events

[:cyclium, :phase, :changed]         %{from, to, episode_id, actor_id}

Guardrail events

[:cyclium, :guardrail, :triggered]   %{rule, episode_id, actor_id, detail}

Workflow events

[:cyclium, :workflow, :started]         %{workflow_id, instance_id}
[:cyclium, :workflow, :step_started]    %{workflow_id, instance_id, step_id, episode_id}
[:cyclium, :workflow, :step_completed]  %{workflow_id, instance_id, step_id}
[:cyclium, :workflow, :step_failed]     %{workflow_id, instance_id, step_id}
[:cyclium, :workflow, :step_retried]    %{workflow_id, instance_id, step_id, attempt}
[:cyclium, :workflow, :completed]       %{workflow_id, instance_id}
[:cyclium, :workflow, :failed]          %{workflow_id, instance_id, step_id}
[:cyclium, :workflow, :duplicate_blocked]  %{count}, meta: %{workflow_id, subject_value, owner_node}

Conversation events

[:cyclium, :conversation, :started]              %{conversation_id, actor_id}
[:cyclium, :conversation, :claimed]               %{conversation_id, principal_id}
[:cyclium, :conversation, :resolved]              %{conversation_id, outcome}
[:cyclium, :conversation, :abandoned]             %{conversation_id, reason}
[:cyclium, :conversation, :timed_out]             %{conversation_id}
[:cyclium, :conversation, :awaiting_participant]  %{conversation_id, actor_id}

Usage

# Attach a simple logger for development
Cyclium.Telemetry.attach_default_logger()

# Or attach your own handler to specific events
:telemetry.attach("my-handler", [:cyclium, :output, :delivered], &MyHandler.handle/4, %{})

Summary

Functions

Attach a Logger-based handler for all Cyclium telemetry events. Useful for development and debugging.

Returns the list of all Cyclium telemetry event names.

Functions

attach_default_logger(log_level \\ :debug)

@spec attach_default_logger(atom()) :: :ok | {:error, :already_exists}

Attach a Logger-based handler for all Cyclium telemetry events. Useful for development and debugging.

events()

@spec events() :: [[atom()]]

Returns the list of all Cyclium telemetry event names.