Arrea.Telemetry (Arrea v1.0.0)

Copy Markdown View Source

Telemetry module for Arrea.

Provides measurement and event emission functions to monitor engine operations. Delegates to submodules:

Usage

# Execute with telemetry measurement
Arrea.Telemetry.measure(fn ->
  # Your code here
end)

# Configure all metric handlers
Arrea.Telemetry.setup()

Summary

Functions

attach()

See Arrea.Telemetry.DebugHandler.attach/0.

detach()

See Arrea.Telemetry.DebugHandler.detach/0.

emit(type, measurements \\ %{}, metadata \\ %{})

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

Emits a custom telemetry event.

Parameters

  • type - The type/name of the event
  • measurements - Map of measurement values
  • metadata - Map of metadata

Examples

iex> Arrea.Telemetry.emit(:custom_event, %{value: 1}, %{tag: "test"})
:ok

emit_communication(type, measurements, metadata)

See Arrea.Telemetry.Events.emit_communication/3.

emit_ui(type, measurements, metadata)

See Arrea.Telemetry.Events.emit_ui/3.

emit_validation(type, measurements, metadata)

See Arrea.Telemetry.Events.emit_validation/3.

emit_worker(type, measurements, metadata)

See Arrea.Telemetry.Events.emit_worker/3.

get_current()

See Arrea.Telemetry.Metrics.get_current/0.

measure(fun, opts \\ [])

@spec measure(fun(), map() | keyword()) :: term()

Executes a function with telemetry measurement.

Options

  • :metadata - Additional metadata for the event

Examples

iex> Arrea.Telemetry.measure(fn -> Process.sleep(10) end)
:ok

measure_with_result(fun)

@spec measure_with_result(fun()) ::
  {:ok, term(), non_neg_integer()} | {:error, term(), non_neg_integer()}

Executes a function and returns the result, measuring execution time.

Examples

iex> Arrea.Telemetry.measure_with_result(fn -> {:ok, "data"} end)
{:ok, "data", 0}

setup()

See Arrea.Telemetry.Metrics.setup/0.