# Validator Public Key Targets

## Validator Public Key Targets

Prometheus collects individual validator balances and status information from consensus clients via json\_exporter. Validators may be specified by public key or validator index.

Edit the validator configuration file in the `/etc/prometheus/files_sd/stakelocal/` directory.

```bash
sudo nano /etc/prometheus/files_sd/stakelocal/validators.yml
```

It should look like the following.

```yaml
    - targets: [ ]
      labels:
        network: 'Mainnet'
        host: 'Default Host'
        service: ''
        group: 'Default Group'
        instance: '127.0.0.1:3500'
        explorer: 'beaconcha.in'
```

Update the `targets` line to include a comma-delimited list of validator public keys or indices to be monitored in between the square brackets.

Example values:

* `-targets: [ 1, 2, 3, 4, 5 ]`
* `-targets: [ 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000 ]`
* `-targets: [ 1, "2", '3', 0x0000000000000000000000000000000000000000, "0x0000000000000000000000000000000000000000", '0x0000000000000000000000000000000000000000']`

If the consensus client being queried is not on the local host or uses a non-standard port, update those on the `instance` line.

Update the `network`, `host`, `service`, `group`, and `explorer` labels, as needed. See [About Stake Local Labels](https://docs.stakelocal.io/dashboard-installation/prometheus-jobs-and-targets/about-stake-local-labels) for label definitions.

{% hint style="info" %}
The service label is optional. It only serves to identify the type of client being queried in Ethereum address requests, but the value itself is not presently used in the dashboard.
{% endhint %}

An example `validators.yml` file for the Goerli network could look like the following.

```
    - targets: [ 1, 2, 3 ]
      labels:
        network: 'Goerli'
        host: 'nuc'
        service: 'Prysm Beacon'
        group: 'Goerli Prysm/Geth'
        instance: '127.0.0.1:3500'
        explorer: 'goerli.beaconcha.in'
```

Save the file and exit the editor.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stakelocal.io/dashboard-installation/prometheus-jobs-and-targets/validator-public-key-targets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
