Skip to content
LogoLogo

Monitoring from the client side

Turn on metrics

  • celestia-app Go client: metrics use OpenTelemetry. Set a global MeterProvider in your process, or pass ClientConfig.Meter. With neither, nothing is exported.
  • celestia-node: start the node with --metrics --metrics.endpoint <metrics_endpoint>. See node metrics.

What to watch

SignalWhere to get itAlert when
Escrow available_balancefibre.QueryEscrowAccount, or GET /fibre/v1/escrow-account/<address>Below your threshold
Wallet balancestate.Balance, or the bank queryToo low to pay gas
Upload success rate and latencyfibre.client.upload.duration (attribute success). Node: fibre_submit_duration_seconds, fibre_upload_duration_secondsError rate or latency rises
Failures per validatorfibre.client.upload_to.duration with success=false, by validator_addressMany validators fail at once
Download success rate and latencyfibre.client.download.durationError rate rises
SettlementTransaction result for each tx_hash, or EventPayForFibreAny blob unsettled after a few blocks
Unexpected chargesEventPaymentPromiseTimeout where escrow_signer is your addressAny occurrence
Core endpoint healthYour client logs: HTTP 429, timeouts, connection errorsSustained errors

EventPaymentPromiseTimeout means one of your promises was charged without a normal settlement. Usually an upload failed after the promise had already reached validators.

Your problem or the network's?

What you seeLikely causeWhat to do
Every upload fails with an escrow or balance errorYours: escrow empty, or too many promises in flightTop up escrow. Lower concurrency.
payment promise chain ID mismatchYours: client and endpoint are on different networksFix the endpoint or chain config
creation_timestamp ... must not be afterYours: host clock is ahead. Or the chain has stalled.Sync the clock. Check the status page.
Failures spread across most validators, all timeoutsUsually yours: outbound bandwidth or networkCheck egress. Compare with a second host.
Failures on a few specific validators onlyThose validatorsNothing, while quorum still holds
not enough voting power and many validators unreachableOften the networkCheck the dashboards and status page.
fibre storage budget exceeded from many validatorsNetwork capacityThe client retries on its own.
HTTP 429 from the core endpointEndpoint providerBack off. Use your own endpoint. Check whether the blob settled before resubmitting.
Download returns blob not found after retentionExpected behaviourRecover from your own copy

Cross-check with:

  • the network status page
  • the Mainnet Beta and Mocha community dashboards: Valopers (registered providers and reachability) and Tensile (endpoint reachability and whether validators serve their rows)