Skip to main content
Verify that your Arc node is syncing, diagnose issues from logs, and set up Prometheus metrics scraping.

Prerequisites

Step 1. Check service status

If your node runs as systemd services, check the status of both processes:
sudo systemctl status arc-execution
sudo systemctl status arc-consensus
Both services display Active: active (running) in their output. If either service has failed, review the logs in Step 3.

Step 2. Check block height

Query the local RPC endpoint to confirm the node is syncing:
cast block-number --rpc-url http://localhost:8545
Run this command several times over a few seconds. The block number increases steadily, confirming the node is syncing:
# First run:
1234567

# Second run (a few seconds later):
1234572
To view the latest block details:
cast block --rpc-url http://localhost:8545
Example output:
baseFeePerGas        7
difficulty           0
gasLimit             30000000
gasUsed              21000
hash                 0xabc123...
number               1234572
timestamp            1711234567
transactions:        [0xdef456...]

Step 3. View the logs

Stream real-time logs for each service:
# Execution Layer logs
sudo journalctl -u arc-execution -f

# Consensus Layer logs
sudo journalctl -u arc-consensus -f
If your node is not running as a systemd service, check the terminal output where each process is running. What to look for:
  • Healthy: Log entries showing new blocks being imported, increasing block heights
  • Unhealthy: Repeated connection errors to relay endpoints, IPC socket failures, or no new blocks for an extended period

Step 4. Set up metrics scraping

Both the Execution Layer and Consensus Layer expose Prometheus-compatible metrics endpoints:
EndpointDescription
http://localhost:9001/metricsExecution Layer metrics
http://localhost:29000/metricsConsensus Layer metrics
The metrics endpoints are only available if the --metrics flag was passed when starting the node. The Deploying a Node as a Service guide includes this flag in the systemd service files.Verify the endpoints are accessible:
curl -s http://localhost:9001/metrics | head -5
curl -s http://localhost:29000/metrics | head -5
Both commands return Prometheus-formatted text metrics. Example output:
# HELP reth_sync_stage_checkpoint Stage checkpoint block number
# TYPE reth_sync_stage_checkpoint gauge
reth_sync_stage_checkpoint{stage="Headers"} 1234567
If either returns an empty response or connection error, confirm the --metrics flag is set in your startup command.
Add the following scrape targets to your Prometheus configuration:
scrape_configs:
  - job_name: "arc-execution"
    static_configs:
      - targets: ["localhost:9001"]

  - job_name: "arc-consensus"
    static_configs:
      - targets: ["localhost:29000"]
After reloading Prometheus, verify that both targets appear as UP in the Prometheus targets page (http://localhost:9090/targets).