X402.Telemetry (X402 v0.3.3)

Copy Markdown View Source

Telemetry event definitions and emission helpers for x402 operations.

All events emitted by this library use the [:x402, module, operation] format and include %{count: 1} as measurements.

Emitted events:

  • [:x402, :payment_required, :encode]
  • [:x402, :payment_required, :decode]
  • [:x402, :payment_signature, :decode]
  • [:x402, :payment_signature, :validate]
  • [:x402, :payment_signature, :decode_and_validate]
  • [:x402, :payment_response, :encode]
  • [:x402, :payment_response, :decode]

Metadata always includes :status (:ok or :error) and may include additional operation-specific fields such as :reason, :header, or :fields.

Summary

Functions

Returns the telemetry event name for a module and operation.

Types

module_name()

@type module_name() :: :payment_required | :payment_signature | :payment_response

operation()

@type operation() :: :encode | :decode | :validate | :decode_and_validate

status()

@type status() :: :ok | :error

Functions

emit(module_name, operation, status, metadata \\ %{})

(since 0.1.0)
@spec emit(module_name(), operation(), status(), map()) :: :ok

Emits an x402 telemetry event.

Examples

iex> X402.Telemetry.emit(:payment_required, :encode, :ok, %{header: "PAYMENT-REQUIRED"})
:ok

event_name(module_name, operation)

(since 0.1.0)
@spec event_name(module_name(), operation()) :: [atom()]

Returns the telemetry event name for a module and operation.

Examples

iex> X402.Telemetry.event_name(:payment_required, :encode)
[:x402, :payment_required, :encode]