Skip to main content
A facilitator has a small set of numbers worth watching. This page names them, says why each matters, and what to alert on.

Metrics

All metrics are Prometheus-scrapable at :$METRICS_PORT/metrics.

Request-level

Alerting: settle_duration p95 > 15s for 5 minutes is an incident. Verify p95 > 500ms is a warning. Alerting: x402_sponsor_balance_xlm < SPONSOR_MIN_BALANCE_XLM is a page.

RPC health

Bazaar

Tracing

OpenTelemetry OTLP export via OTEL_EXPORTER_OTLP_ENDPOINT. Spans emitted:
  • x402.verify (parent for a verify request)
  • x402.settle (parent for a settle request)
  • x402.rpc.submit (Soroban submit)
  • x402.rpc.get_transaction (Soroban polling)
  • x402.bazaar.index (async catalog write)
Attach x402.tx_hash on settle spans as soon as it is known.

Dashboards

A reference Grafana dashboard ships in dashboards/facilitator.json. It has four rows:
  1. Traffic — verify/settle rate and error rate.
  2. Latency — verify and settle latency percentiles.
  3. Sponsor — balance and burn rate.
  4. Bazaar — listing count, index lag, search QPS.
  • Verify success rate > 99.5% (excluding client-side codes like insufficient_funds).
  • Settle success rate > 99% given verify succeeded.
  • Settle p95 latency < 10s on mainnet.
  • Bazaar index lag p95 < 30s.