X402.Telemetry (X402 v0.6.0)

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]
  • [:x402, :client, :select]
  • [:x402, :client, :sign]
  • [:x402, :client, :build]
  • [:x402, :client, :request]
  • [:x402, :rpc, :request]
  • [:x402, :verify, :evm]
  • [:x402, :verify, :svm]
  • [:x402, :facilitator_engine, :verify]
  • [:x402, :facilitator_engine, :settle]

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
  | :client
  | :rpc
  | :verify
  | :facilitator_engine

operation()

@type operation() ::
  :encode
  | :decode
  | :validate
  | :decode_and_validate
  | :select
  | :sign
  | :build
  | :request
  | :evm
  | :svm
  | :verify
  | :settle

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]