<!-- Canonical: https://docs.linea.build/stack/how-to/monitor-a-deployment -->

> For the complete Linea documentation index, see [llms.txt](/llms.txt).
> Agents can fetch this page as Markdown at [https://docs.linea.build/stack/how-to/monitor-a-deployment.md](https://docs.linea.build/stack/how-to/monitor-a-deployment.md).

# Monitor a deployment

This page describes how to expose health and metrics endpoints on a [Lineth](/protocol/reference/zero-knowledge-glossary#lineth)**Lineth** (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. [Operators](/protocol/reference/zero-knowledge-glossary#operator)**Operator** 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](/stack/how-to/run-local-lineth-stack)
-   [Prometheus](https://prometheus.io/docs/introduction/overview/), 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](https://prometheus.io/docs/instrumenting/exposition_formats/). For each component you operate, do the following:

1.  Set the option that opens the HTTP server. Linea Besu and the prover also require setting an option to enable metrics.
2.  Allow Prometheus (or another scraper) to reach that host and port.
3.  Poll `http://<host>:<port><endpoint>` with HTTP `GET` on an interval, or add that URL as a Prometheus scrape target.
4.  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 |
| --- | --- | --- | --- | --- | --- |
| [Coordinator](/protocol/reference/zero-knowledge-glossary#coordinator)**Coordinator** 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`](../../reference/component-configuration/linea-coordinator-options#api) | `9545` | `/health` | `/metrics` | `linea_` |
| [Maru](/protocol/reference/zero-knowledge-glossary#maru)**Maru** 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`](../../reference/component-configuration/linea-maru-options#observability) | `9545` | `/health` | `/metrics` | `maru_` |
| [Linea Besu](/protocol/reference/zero-knowledge-glossary#linea-besu)**Linea 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`](https://docs.besu-eth.org/public-networks/reference/options#metrics-enabled)
[`--metrics-port`](https://docs.besu-eth.org/public-networks/reference/options#metrics-port) | `9545` | Unsupported | `/metrics` | `besu_` |
| [Prover](/protocol/reference/zero-knowledge-glossary#prover)**Prover** 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.enabled`](../../reference/component-configuration/linea-prover-options#controller)
[`controller.prometheus.port`](../../reference/component-configuration/linea-prover-options#controller) | `9090` | Unsupported | `/metrics` | `prover_` |
| [Postman](/protocol/reference/zero-knowledge-glossary#postman)**Postman** 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`](../../reference/component-configuration/linea-postman-options#api) | `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 layer](/protocol/reference/zero-knowledge-glossary#finalization-layer)**Finalization 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`](/reference/component-configuration/linea-coordinator-options#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 `/health` endpoint on the coordinator and Maru to confirm each process is up and serving. Linea Besu, the prover, and the Postman don't have a `/health` endpoint. Poll their `/metrics` endpoint 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](/stack/deployment/data-availability-finalization) for blob posting success and gas.
-   **Finalization:** Watch the `linea_aggregation_*` metrics on the coordinator to see whether proofs are settling. Confirm [`currentL2BlockNumber`](/api/linea-smart-contracts/zkevmv2#currentl2blocknumber) advances after a successful [`finalizeBlocks`](/api/linea-smart-contracts/linearollup#finalizeblocks) on 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](/stack/how-to/set-up-distributed-sequencing#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](/stack/deployment/high-availability#within-region-redundancy).

## Next steps

-   Review example failure behavior in [High availability](/stack/deployment/high-availability).
-   Restore Maru quorum using [Set up distributed sequencing](/stack/how-to/set-up-distributed-sequencing#restore-lost-quorum).
