Skip to main content

Operator Monitoring

The Operator Service supports monitoring using Prometheus by providing a /metrics endpoint that Prometheus can scrape to gather various metrics about your validator operations.

IconPrerequisites
  • Operator application running and accessible
  • Prometheus server installed and running
  • Basic knowledge of how to configure Prometheus targets

Setup Operator for Monitoring​

The Operator provides flexibility to define the host and port for the metrics endpoint via environment variables:

IconEnvironment Variables

ENABLE_METRICS — Whether the metrics endpoint is enabled (default: false)

METRICS_HOST — Hostname or IP for the metrics endpoint (default: 127.0.0.1)

METRICS_PORT — Port for the metrics endpoint (default: 9100)

METRICS_PREFIX — Namespace prefix for all metric names (default: sw_operator)

Ensure that these environment variables are set as per your requirements.

IconEnvironment Variables Example
export ENABLE_METRICS=true
export METRICS_HOST=0.0.0.0
export METRICS_PORT=9100
IconCommand-Line Flags

You can also specify them by providing --enable-metrics, --metrics-host, --metrics-port, and --metrics-prefix flags to the start command.

The Operator Service's metrics will be available at http://[METRICS_HOST]:[METRICS_PORT]/metrics.

Configure Prometheus​

To monitor the Operator, configure Prometheus to scrape metrics from the exposed /metrics endpoint.

Add the following job configuration to your Prometheus configuration file (prometheus.yml):

scrape_configs:
- job_name: 'operator'
scrape_interval: 30s
static_configs:
- targets: ['<METRICS_HOST>:<METRICS_PORT>']

Replace <METRICS_HOST> and <METRICS_PORT> with the values you've configured in the Operator.

This configuration tells Prometheus to scrape metrics from the Operator every 30 seconds.

Available Metrics​

The Operator Service exposes the following Prometheus metrics:

MetricTypeDescription
app_versionInfoOperator Service version
service_startedGaugeWhether the service is ready to register validators
block_numberGaugeCurrent block number
slot_numberGaugeCurrent slot number
wallet_balanceGaugeCurrent wallet balance
stakeable_assetsGaugeVault's available assets for staking
queued_assetsGaugeExit queue missing assets
unused_validator_keysGaugeNumber of unused validator keys in keystore
outdated_signaturesGaugeNumber of outdated signatures
last_registration_blockGaugeBlock number of the last validator registration
last_funding_blockGaugeBlock number of the last validator funding
last_withdrawal_blockGaugeBlock number of the last validator withdrawal
exception_countCounterNumber of exceptions occurred

All metrics are prefixed with the configured namespace (default sw_operator_) and include a network label. For example:

# TYPE sw_operator_slot_number gauge
sw_operator_slot_number{network="hoodi"} 2.74352e+06