# About Stake Local 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.

{% hint style="warning" %}
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.
{% endhint %}

### 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

{% hint style="info" %}
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.
{% endhint %}

### 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

{% hint style="warning" %}
Do not modify the client labels from their default values. This may negatively affect GitHub integration.
{% endhint %}

### 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

{% hint style="info" %}
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.
{% endhint %}

### 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.

{% hint style="info" %}
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.
{% endhint %}

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.

{% hint style="info" %}
Keep the default value unless you are running json\_exporter on a different host than Prometheus.
{% endhint %}

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

{% hint style="warning" %}
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.
{% endhint %}
