Docs
One trace, every rail. This page is the condensed technical reference — the source docs (PRD, ARCHITECTURE, SIGNOZ_LAYER) live in the repo.
A company running fiat-to-crypto payments can, for the first time, see a stuck payment as one connected story and tell instantly which system failed. Meridian instruments a Nigerian-merchant settlement pipeline — NGN payment → processor → FX → real Celo Sepolia transaction — end to end with OpenTelemetry, emitting one distributed trace per payment into self-hosted SigNoz. The blockchain leg is genuinely real; everything else is a mock service this project owns. No LLM sits in the diagnosis path — a published rule table maps observed signals to a named verdict, deterministically.
A published rule table maps observed span signals to a named verdict with confidence and evidence. Same telemetry in, same verdict out — every time.
| Observed signal | Verdict | Confidence | Visibility | Evidence |
|---|---|---|---|---|
| send ok, no receipt after N blocks | confirmation_timeout | low | inferred | no mempool visibility from provider |
| estimate_gas returns revert data | contract_revert_pre_broadcast | high | observed | revert reason string |
| submitted nonce < pending account nonce | stale_nonce | high | observed | getTransactionCount vs submitted nonce |
| provider.charge ok, no webhook after T | provider_stall | medium | inferred | no visibility past processor boundary |
receive_payment → provider.charge → on_confirmation → chain.settle → balance.update → merchant.notify. Shows conversion rate and drop-off point across many settlements — the fleet view.
chain.wait_for_receipt p95 breach, provider.charge error-rate spike, and a business-framed alert: settlements delayed in the last 10 minutes.
Per-provider p95 latency side by side, and a value-delayed gauge in NGN — the ₦ figure that makes a stall legible to a non-technical judge.
Structured logs at each stage carry the same trace ID, so SigNoz's trace-to-logs view connects them automatically.
Deployed alongside SigNoz via Foundry, wired into this project's .mcp.json — used for direct trace/log investigation during development.
SigNoz is self-hosted via Foundry. The repo includes casting.yaml and casting.yaml.lock — running foundryctl cast against them reproduces this exact deployment, SigNoz app plus MCP server, in one step.