Monitor a deployment
This page describes how to expose health and metrics endpoints on a LinethLineth (Formerly the Linea Stack) The open-source ZK-rollup stack, codebase, and technical protocol that's the foundation of Linea Mainnet. Operators can deploy this stack to launch their own Ethereum-compatible L2 or L3 networks. deployment, and what signals to watch on each component. OperatorsOperator The entity or consortium responsible for deploying, administering, and running the network infrastructure, contracts, keys, access controls, and operational procedures for a network built on Lineth. define alert thresholds and recovery objectives for their own environment.
Prerequisites
- A running Lineth deployment, or the local evaluation stack
- Prometheus, or another metrics backend that can scrape Prometheus text format
Expose health and metrics
Some deployment components can expose /health and /metrics HTTP endpoints.
The /health endpoint confirms that the process is up and serving.
The /metrics endpoint exports named counters and gauges in
Prometheus text format.
For each component you operate, do the following:
- Set the option that opens the HTTP server. Linea Besu and the prover also require setting an option to enable metrics.
- Allow Prometheus (or another scraper) to reach that host and port.
- Poll
http://<host>:<port><endpoint>with HTTPGETon an interval, or add that URL as a Prometheus scrape target. - Filter series by the component metrics prefix.
The following table lists the options, default port, paths, and metrics prefix for each component.
| Component | Option(s) | Default port | Health endpoint | Metrics endpoint | Metrics prefix |
|---|---|---|---|---|---|
| CoordinatorCoordinator Lineth's coordination module for batching, proof generation, and finality submission. The coordinator monitors block production, manages conflation deadlines, batches blocks, combines batches into blobs, orchestrates execution, compression, and aggregation proofs, and submits proofs and data to the finalization layer. | api.observability-port | 9545 | /health | /metrics | linea_ |
| MaruMaru Lineth's consensus layer client, which implements the QBFT consensus algorithm. Maru drives its configured execution clients, propagates blocks to peers, and exposes API endpoints for monitoring and control. A single Maru node can drive more than one execution client. Each Maru node runs either as a validator, taking part in consensus, or as a non-validator, importing blocks from peers without voting. | observability.port | 9545 | /health | /metrics | maru_ |
| Linea BesuLinea Besu A build of the Besu execution client, extended with Lineth plugins such as the sequencer and tracer that add ZK-rollup functionality. Linea Besu is required to propose blocks and to generate traces, so every sequencer node must run it. Nodes that only import blocks or serve standard Ethereum JSON-RPC can run any Ethereum execution client. | --metrics-enabled--metrics-port | 9545 | Unsupported | /metrics | besu_ |
| ProverProver The Lineth component that generates ZK proofs of state transitions, handling proof-generation requests from the coordinator and Linea Besu. The prover produces three types of proofs (execution, compression, and aggregation) and combines them into a zk-SNARK that the finalization layer verifies. Provers may be scaled horizontally to meet throughput requirements. | controller.prometheus.enabledcontroller.prometheus.port | 9090 | Unsupported | /metrics | prover_ |
| PostmanPostman The service that relays messages between the canonical message service contracts on a Lineth network and its finalization layer. Postman listens for calls made to the contract on one network and passes the submitted information to the contract on the other network. It's currently centralized, but is intended to be decentralized. | API_PORT | 3000 | Unsupported | /metrics | linea_postman_ |
The coordinator, Maru, and Linea Besu default to port 9545.
Assign a different port or host when more than one of these processes shares a machine.
The coordinator also polls the
finalization layerFinalization layer The blockchain where a Lineth deployment submits proofs and state commitments for verification and hard finality. If the finalization layer is Ethereum (an L1), the deployment is an L2. If the finalization layer is Linea (an L2), the deployment is an L3.
to track finalized state.
Set the poll interval, retries, and warning thresholds in
l1-finalization-monitor.
Alert on these signals
Use these signals to see whether the deployment is producing blocks, posting data, and finalizing. Create alert rules in Prometheus or your other metrics backend for the signals you operate. Trigger a notification when a signal stops advancing or crosses a threshold you set based on your deployment's block time, finalization interval, and capacity.
- Service health: Poll the
/healthendpoint on the coordinator and Maru to confirm each process is up and serving. Linea Besu, the prover, and the Postman don't have a/healthendpoint. Poll their/metricsendpoint to confirm those processes are reachable. - Data availability posting: Watch the
linea_blob_*metrics on the coordinator to see whether it is submitting blobs or other data availability payloads. See Data availability and finalization for blob posting success and gas. - Finalization: Watch the
linea_aggregation_*metrics on the coordinator to see whether proofs are settling. ConfirmcurrentL2BlockNumberadvances after a successfulfinalizeBlockson the rollup contract, which is when the finalized head on the Lineth network moves. - Gas price: Watch the
linea_gas_price_cap_*metrics on the coordinator to see cost pressure on finalization layer submissions. - Consensus latency: Watch the Maru block-building window in a multi-validator deployment to confirm validators still have time to produce a block. See Monitor Maru for the key metrics and recommended threshold.
- Message relay: Watch the
linea_postman_*metrics on the Postman to see whether messages are being claimed and relayed between the Lineth network and the finalization layer. - Storage capacity: Check proving artifacts and databases to confirm they still have room to grow. See High availability.
Next steps
- Review example failure behavior in High availability.
- Restore Maru quorum using Set up distributed sequencing.