Use metrics to monitor performance
Enable the Prometheus monitoring and alerting service for
Web3Signer metrics using the --metrics-enabled
option.
Web3Signer provides metrics for secp256k1 and BLS12-381 key types.
Install Prometheus
To use Prometheus with Web3Signer, install the Prometheus main component. On MacOS, install with Homebrew:
brew install prometheus
Setting up and running Prometheus with Web3Signer
To configure Prometheus and run with Web3Signer:
-
Configure Prometheus to poll Web3Signer. For example, add the following YAML fragment to the
scrape_configs
block of theprometheus.yml
file:Example configuration
global: scrape_interval: 15s scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: "web3signer-dev" scrape_timeout: 10s metrics_path: /metrics scheme: http static_configs: - targets: ["localhost:9001"]
-
Start Teku by specifying the Web3Signer details.
-
Start Web3Signer with the
--metrics-enabled
option.web3signer --key-store-path=/Users/me/keyFiles/ --metrics-enabled
The
HTTP
,SIGNING
,JVM
, andPROCESS
metrics categories are enabled by default. Use the--metrics-category
command line option to update the available categories. -
In another terminal, run Prometheus specifying the
prometheus.yml
file:prometheus --config.file=prometheus.yml
-
View the Prometheus graphical interface.
View Prometheus graphical interface
-
Open a web browser to
http://localhost:9090
to view the Prometheus graphical interface. -
Choose Graph from the menu bar and click the Console tab below.
-
From the Insert metric at cursor drop-down, select a metric and click Execute. The values display.
The following Web3Signer metrics are available.
Filecoin JSON RPC metrics:
Name | Definition |
---|---|
<keytype>_signing_request_count |
Number of signing requests made for the key type. |
wallet_list_count |
Number of Filecoin.WalletList API requests received. |
wallet_has_count |
Number of Filecoin.WalletHas API requests received. |
wallet_sign_message_count |
Number of Filecoin.WalletSignMessage API requests received. |
wallet_sign_duration |
The duration of signing operations. |
total_request_count |
Total number of Filecoin requests received. |
HTTP API metrics:
Name | Definition |
---|---|
<keytype>_malformed_request_count |
Number of requests received which had illegally formatted body. |
<keytype>_signing_duration |
Duration of a signing event. |
<keytype>_missing_identifier_count |
Number of signing requests for which no keys were available. |
signers_loaded_count |
Total number of SECP256k1 and BLS12-381 keys loaded. |
signing_private_key_retrieval_time |
Time taken to retrieve BLS signing keys. |
Eth2 Slashing protection metrics:
Name | Definition |
---|---|
permitted_signings |
The number of slashing checks which have reported ‘safe to sign’. |
prevented_signings |
The number of prevented signings due to violation of slashing conditions. |
Process metrics:
Name | Definition |
---|---|
process_release |
The number of the release version running. |
Visualize collected data
Use Grafana to visualize the collected data. See the sample Web3Signer Grafana dashboard.