Syntropy.Telemetry (syntropy v0.2.0)

Copy Markdown

Custom :telemetry event emitters for the Syntropy runtime.

Event names and measurement shapes live here so instrumentation call sites stay one-liners and SyntropyWeb.Telemetry (the Prometheus reporter) has a single contract to define metrics against.

Events:

  • [:syntropy, :task_run, :stop] — a run reached a terminal state (completed / failed / cancelled). Measurements: duration_ms, agent_count. Metadata: status, strategy, kind.
  • [:syntropy, :llm_request, :stop] — one provider completion call finished. Measurements: duration_ms. Metadata: provider, model, status.
  • [:syntropy, :llm_request, :tokens] — provider-reported usage for a completion (emitted only when the provider returns usage data). Measurements: input_tokens, output_tokens, total_tokens. Metadata: provider, model, stage.
  • [:syntropy, :webhook_delivery, :stop] — one webhook delivery concluded. Measurements: attempts. Metadata: status.
  • [:syntropy, :event_recorder, :flush] — the event recorder flushed a batch to Postgres. Measurements: batch_size, duration_ms.

Summary

Functions

Emits one event recorder batch flush.

Emits the stop event for one LLM provider completion call.

Emits provider-reported token usage for one completion call.

Emits the terminal-state event for a run envelope.

Emits the result of one webhook delivery (after retries).

Functions

event_recorder_flush(batch_size, duration_ms)

@spec event_recorder_flush(non_neg_integer(), integer()) :: :ok

Emits one event recorder batch flush.

llm_request_stop(provider, model, result, duration_ms)

@spec llm_request_stop(
  String.t(),
  String.t() | nil,
  {:ok, term()} | {:error, term()},
  integer()
) :: :ok

Emits the stop event for one LLM provider completion call.

llm_request_tokens(provider, model, usage, stage)

@spec llm_request_tokens(String.t(), String.t() | nil, map(), String.t() | nil) :: :ok

Emits provider-reported token usage for one completion call.

task_run_stop(run)

@spec task_run_stop(map()) :: :ok

Emits the terminal-state event for a run envelope.

webhook_delivery_stop(outcome)

@spec webhook_delivery_stop(map()) :: :ok

Emits the result of one webhook delivery (after retries).