About Stake Local Labels

How Stake Local uses Prometheus Labels

About Stake Local Labels

In Prometheus, labels are used to tag data as it is collected. Labels can be defined by the data source, by Prometheus directly, by the Prometheus target configuration, and by the Prometheus job configuration. The Stake Local Dashboard uses labels extensively for categorization, filtering, configuration, and interoperability between data source. These labels are defined in the Prometheus target configuration files configured in the next few sections.

As you configure the Prometheus targets, update the labels as needed for your staking architecture.

Nearly all of the labels required by the dashboard have reasonable default values that will work as-is for monitoring a mainnet consensus/execution group. You can leave the default values or update them later to customize your dashboard.

Note: Changing the labels at a later time may cause the colors on some dashboard panels to change at the point in time where the label values changed.

network

The network label is used to tag the Ethereum network that applies to the data source. These labels are used to display the network name in some dashboard panels, and can be used for creating new panels that compare different networks.

Example values:

  • Mainnet

  • Goerli

  • Sepolia

Default value: Mainnet

Some of the Prometheus targets will not be associated with a specific network. For example, the GitHub target is not specific to a particular Ethereum network.

host

The host label is used to tag the host/system on which clients/services are running. This is primarily used for filtering node_exporter data to specific hosts, but it is also used to compare metrics across all software running on the same host.

Example values:

  • nuc01

  • Prysm/Geth Mainnet System

  • sir-stake-a-lot

Default value: Default Host

service

The service label is used to define the display name of the service being run. This is the name of the service as it will show up on the dashboard panels.

A unique name should be given to each client instance to ensure that clients can be distinguished from one another, particularly if you are running multiple instances of a client.

Consensus clients with separate beacon and validator metrics should be distinguished in their service label.

Example values:

  • Prysm Beacon

  • Teku

  • Nimbus

  • Lighthouse Beacon

  • Lodestar Beacon

  • Geth

  • Erigon

  • Nethermind

  • Besu

  • Prysm Validator

  • Lighthouse Validator

  • Prysm Mainnet

  • Lighthouse Goerli

  • Geth Sepolia

  • Internet Testnet 02

Default value: Client specific

client

The client label is used to match GitHub release information to the current running client. Values appear similar to the default service label values, these values should not be modified.

Example values:

  • Prysm

  • Geth

  • Lighthouse

  • Lodestar

  • Erigon

  • Besu

  • Teku

  • Nimbus

  • Nethermind

Default value: Client specific

Do not modify the client labels from their default values. This may negatively affect GitHub integration.

group

The group label is primarily used to name consensus/execution client pairs and their supporting software. This allows the dashboard to display results for only those services supporting a single client pair. To work correctly, the group label must be spelled identically for all software in the same group.

Example values:

  • Prysm/Geth Mainnet

  • Teku/Besu Goerli

  • Mainnet

Default value: Default Group

Some of the Prometheus targets will not be associated with a specific group. For example, the GitHub target is not specific to a particular consensus/execution client group.

explorer

The explorer label configures the domain name of the third-party consensus or execution layer explorer for external links in dashboard panels. The explorer label should be customized for the Ethereum network and layer (consensus/execution) of the data source.

By default, consensus clients are configured to go to beaconcha.in and execution clients are configured to go to etherscan.io. Other explorers can be used if their URL paths are the same as those for the current explorers.

Example values:

  • beaconcha.in

  • etherscan.io

  • goerli.beaconcha.in

  • goerli.etherscan.io

  • sepolia.beaconcha.in

  • sepolia.etherscan.io

Default values: beaconcha.in or etherscan.io

json_exporter

The json_exporter label is used to define the instance of json_exporter that will be handling API requests for the Prometheus target.

Keep the default value unless you are running json_exporter on a different host than Prometheus.

Example values:

  • 127.0.0.1:7979

  • 192.168.0.10:7979

  • localhost:7979

Default value: 127.0.0.1:7979

instance

The instance label defines the address and port of the client API from which Ethereum address and validator statuses/balances are collected. Ethereum address Prometheus targets must have the address and port of an execution client defined, while validator Prometheus targets must have the address and port of a consensus client defined.

Example values:

  • 127.0.0.1:5052

  • localhost:5051

  • 192.168.0.10:8545

Execution client default value: 127.0.0.1:8545

A port is not provided for the consensus client default value, because consensus clients do not all use the same port for their API. This value must be updated during the configuration process.

Last updated