Execution Client Targets

Customize the default execution client targets

Execution Client Targets

Execution client data is collected by Prometheus from three different sources:

  1. Directly from the client metrics page

  2. Indirectly from the client API via json_exporter

  3. Indirectly from the client API via Ethereum Metrics Exporter

We will set up the first two here. Ethereum Metrics Exporter is covered in a later section.

If you would like to monitor more than one instance of the same client, please see the Additional Modifications section for details.

Execution Client Metrics Configuration

To configure the Prometheus target for client metrics, follow the instructions for your client below.

Edit the Besu configuration file in the /etc/prometheus/files_sd/stakelocal/execution_metrics directory.

sudo nano /etc/prometheus/files_sd/stakelocal/execution_metrics/besu.yml

It should look like the following.

    - targets: ['127.0.0.1:9545']
      labels:
        network: 'Mainnet'
        host: 'Default Host'
        service: 'Besu'
        group: 'Default Group'
        explorer: 'etherscan.io'

If this instance of Besu is accessible at a different IP address or port, update those in the targets line.

Update the network, host, service, group and explorer labels, as needed. See About Stake Local Labels for label definitions.

Save the file and exit the editor.

An example execution client API target file for the Sepolia network could look like the following.

    - targets: ['localhost:8080']
      labels:
        network: 'Sepolia'
        host: 'nuc'
        service: 'Nethermind'
        group: 'Sepolia Nimbus/Nethermind'
        explorer: 'sepolia.etherscan.io'

Execution Client API Configuration

To configure the Prometheus target for client APIs, follow the instructions for your client below.

Edit the Besu configuration file in the /etc/prometheus/files_sd/stakelocal/execution_apis directory.

sudo nano /etc/prometheus/files_sd/stakelocal/execution_apis/besu.yml

It should look like the following.

    - targets: ['127.0.0.1:8545']
      labels:
        network: 'Mainnet'
        host: 'Default Host'
        service: 'Besu'
        group: 'Default Group'
        explorer: 'etherscan.io'
        json_exporter: '127.0.0.1:7979'
        client: 'Besu'

If this instance of Besu is accessible at a different IP address or port, update those in the targets line.

Update the network, host, service, group and explorer labels, as needed. See About Stake Local Labels for label definitions. The json_exporter and client labels may be left as-is.

Save the file and exit the editor.

An example execution client metrics target file for the Goerli network could look like the following.

    - targets: ['192.168.0.12:8545']
      labels:
        network: 'Goerli'
        host: 'mrwhiskers'
        service: 'Erigon'
        group: 'Goerli Lighthouse/Erigon'
        explorer: 'goerli.etherscan.io'
        json_exporter: '127.0.0.1:7979'
        client: 'Erigon'

Last updated