Skip to content

Commit 25444f0

Browse files
committed
add config to run with metrics
note: may be out of date now add example metrics output
1 parent fa2adc8 commit 25444f0

10 files changed

Lines changed: 2535 additions & 0 deletions

File tree

config/chains/eth1/start-node.sh

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#!/bin/sh
2+
# This script launches ETH1 clients for Rocket Pool's docker stack; only edit if you know what you're doing ;)
3+
4+
5+
prep_term()
6+
{
7+
unset term_child_pid
8+
unset term_kill_needed
9+
trap 'handle_term' TERM INT
10+
}
11+
12+
handle_term()
13+
{
14+
if [ "${term_child_pid}" ]; then
15+
kill -TERM "${term_child_pid}" 2>/dev/null
16+
else
17+
term_kill_needed="yes"
18+
fi
19+
}
20+
21+
wait_term()
22+
{
23+
term_child_pid=$!
24+
if [ "${term_kill_needed}" ]; then
25+
kill -TERM "${term_child_pid}" 2>/dev/null
26+
fi
27+
wait ${term_child_pid} 2>/dev/null
28+
trap - TERM INT
29+
wait ${term_child_pid} 2>/dev/null
30+
}
31+
32+
33+
# Geth startup
34+
if [ "$CLIENT" = "geth" ]; then
35+
36+
CMD="exec /usr/local/bin/geth --goerli --datadir /ethclient/geth \
37+
--metrics --metrics.addr 0.0.0.0 --metrics.port 6060 --pprof.addr 0.0.0.0"
38+
39+
if [ ! -z "$ETHSTATS_LABEL" ] && [ ! -z "$ETHSTATS_LOGIN" ]; then
40+
CMD="$CMD --ethstats $ETHSTATS_LABEL:$ETHSTATS_LOGIN"
41+
fi
42+
43+
prep_term
44+
eval "$CMD" &
45+
wait_term
46+
47+
fi
48+
49+
50+
# Infura startup
51+
if [ "$CLIENT" = "infura" ]; then
52+
53+
exec /go/bin/rocketpool-pow-proxy --port 8545 --network goerli --projectId $INFURA_PROJECT_ID
54+
55+
fi
56+
57+
58+
# Custom provider startup
59+
if [ "$CLIENT" = "custom" ]; then
60+
61+
exec /go/bin/rocketpool-pow-proxy --port 8545 --providerUrl $PROVIDER_URL
62+
63+
fi
64+

config/chains/eth2/start-beacon.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/sh
2+
# This script launches ETH2 beacon clients for Rocket Pool's docker stack; only edit if you know what you're doing ;)
3+
4+
5+
# Lighthouse startup
6+
if [ "$CLIENT" = "lighthouse" ]; then
7+
8+
exec /usr/local/bin/lighthouse beacon --network pyrmont --datadir /ethclient/lighthouse --port 9001 --discovery-port 9001 --eth1 --eth1-endpoint "$ETH1_PROVIDER" --http --http-address 0.0.0.0 --http-port 5052 --metrics --metrics-address 0.0.0.0 --metrics-port 5053 --http-allow-origin '*'
9+
10+
fi
11+
12+
13+
# Prysm startup
14+
if [ "$CLIENT" = "prysm" ]; then
15+
16+
exec /app/beacon-chain/beacon-chain --accept-terms-of-use --pyrmont --datadir /ethclient/prysm --p2p-tcp-port 9001 --p2p-udp-port 9001 --http-web3provider "$ETH1_PROVIDER" --rpc-host 0.0.0.0 --rpc-port 5052
17+
18+
fi
19+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/sh
2+
# This script launches ETH2 validator clients for Rocket Pool's docker stack; only edit if you know what you're doing ;)
3+
4+
5+
# RP version number for graffiti
6+
ROCKET_POOL_VERSION="v0.0.9"
7+
8+
9+
# Get graffiti text
10+
GRAFFITI="RP $ROCKET_POOL_VERSION"
11+
if [ ! -z "$CUSTOM_GRAFFITI" ]; then
12+
GRAFFITI="$GRAFFITI ($CUSTOM_GRAFFITI)"
13+
fi
14+
15+
16+
# Lighthouse startup
17+
if [ "$CLIENT" = "lighthouse" ]; then
18+
19+
exec /usr/local/bin/lighthouse validator --network pyrmont --datadir /data/validators/lighthouse --init-slashing-protection --beacon-node "http://$ETH2_PROVIDER" --graffiti "$GRAFFITI" --metrics --metrics-address 0.0.0.0 --metrics-port 5064 --metrics-allow-origin '*'
20+
21+
fi
22+
23+
24+
# Prysm startup
25+
if [ "$CLIENT" = "prysm" ]; then
26+
27+
exec /app/validator/validator --accept-terms-of-use --pyrmont --wallet-dir /data/validators/prysm-non-hd --wallet-password-file /data/password --beacon-rpc-provider "$ETH2_PROVIDER" --graffiti "$GRAFFITI"
28+
29+
fi
30+

config/config.yml

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
rocketpool:
2+
storageAddress: 0x70a5F2eB9e4C003B105399b471DAeDbC8d00B1c5
3+
smartnode:
4+
projectName: rocketpool
5+
image: rocketpool/smartnode:v0.0.9
6+
passwordPath: /.rocketpool/data/password
7+
walletPath: /.rocketpool/data/wallet
8+
validatorKeychainPath: /.rocketpool/data/validators
9+
chains:
10+
eth1:
11+
provider: http://eth1:8545
12+
chainID: 5 # goerli chain
13+
client:
14+
options:
15+
- id: geth
16+
name: Geth
17+
desc: made by the Ethereum Foundation
18+
image: ethereum/client-go:v1.9.24
19+
link: https://geth.ethereum.org/
20+
params:
21+
- name: Ethstats Label
22+
desc: optional - for reporting Eth 1.0 node status to ethstats.net
23+
env: ETHSTATS_LABEL
24+
- name: Ethstats Login
25+
desc: optional - for reporting Eth 1.0 node status to ethstats.net
26+
env: ETHSTATS_LOGIN
27+
- id: infura
28+
name: Infura
29+
desc: use infura.io as a light client for Eth 1.0 - not recommended for use in production
30+
image: rocketpool/smartnode-pow-proxy:v0.0.3
31+
link: https://infura.io/
32+
params:
33+
- name: Infura Project ID
34+
desc: the ID of your project created in Infura
35+
env: INFURA_PROJECT_ID
36+
regex: ^[0-9a-fA-F]{32}$
37+
required: true
38+
- id: custom
39+
name: Custom
40+
desc: use a custom Eth 1.0 client at a specified address (does not work on localhost)
41+
image: rocketpool/smartnode-pow-proxy:v0.0.3
42+
params:
43+
- name: Provider URL
44+
desc: the Eth 1.0 client HTTP server address
45+
env: PROVIDER_URL
46+
required: true
47+
eth2:
48+
provider: eth2:5052
49+
client:
50+
options:
51+
- id: lighthouse
52+
name: Lighthouse
53+
desc: made by Sigma Prime
54+
image: sigp/lighthouse:v1.0.3
55+
link: https://sigmaprime.io/
56+
params:
57+
- name: Custom Graffiti
58+
desc: optional - for adding custom text to signed Eth 2.0 blocks - 16 chars max
59+
env: CUSTOM_GRAFFITI
60+
regex: ^.{0,16}$
61+
- id: prysm
62+
name: Prysm
63+
desc: made by Prysmatic Labs
64+
beaconImage: prysmaticlabs/prysm-beacon-chain:HEAD-fc7c67-debug #v1.0.3
65+
validatorImage: prysmaticlabs/prysm-validator:HEAD-fc7c67-debug #v1.0.3
66+
link: https://prysmaticlabs.com/
67+
params:
68+
- name: Custom Graffiti
69+
desc: optional - for adding custom text to signed Eth 2.0 blocks - 16 chars max
70+
env: CUSTOM_GRAFFITI
71+
regex: ^.{0,16}$

config/docker-compose.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
version: "3.8"
2+
services:
3+
api:
4+
image: ${SMARTNODE_IMAGE}
5+
container_name: ${COMPOSE_PROJECT_NAME}_api
6+
hostname: ${COMPOSE_PROJECT_NAME}_api
7+
restart: unless-stopped
8+
expose:
9+
- 2112/tcp
10+
volumes:
11+
- .:/.rocketpool
12+
networks:
13+
- net
14+
command: "metrics"
15+
prometheus:
16+
image: prom/prometheus
17+
container_name: ${COMPOSE_PROJECT_NAME}_prometheus
18+
hostname: ${COMPOSE_PROJECT_NAME}_prometheus
19+
restart: "unless-stopped"
20+
expose:
21+
- 9090/tcp
22+
volumes:
23+
- prom-data:/prometheus
24+
- ./prometheus:/setup:ro
25+
networks:
26+
- net
27+
entrypoint: "/setup/start-prometheus.sh"
28+
grafana:
29+
image: grafana/grafana
30+
container_name: ${COMPOSE_PROJECT_NAME}_grafana
31+
hostname: ${COMPOSE_PROJECT_NAME}_grafana
32+
restart: "unless-stopped"
33+
ports:
34+
- 3000:3000/tcp
35+
volumes:
36+
- grafana-data:/var/lib/grafana
37+
networks:
38+
- net
39+
depends_on:
40+
- prometheus
41+
networks:
42+
net:
43+
external: true
44+
name: rocketpool_net
45+
volumes:
46+
grafana-data:
47+
prom-data:

config/example_metrics.txt

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# HELP rocketpool_auction_balances_rpl the total RPL balance of the auction contract
2+
# TYPE rocketpool_auction_balances_rpl gauge
3+
rocketpool_auction_balances_rpl{category="AllottedRPL"} 0
4+
rocketpool_auction_balances_rpl{category="RemainingRPL"} 0
5+
rocketpool_auction_balances_rpl{category="TotalRPL"} 0
6+
# HELP rocketpool_auction_lot_count number of lots in auction Rocket Pool
7+
# TYPE rocketpool_auction_lot_count gauge
8+
rocketpool_auction_lot_count 0
9+
# HELP rocketpool_dao_member_count number of members in Rocket Pool dao
10+
# TYPE rocketpool_dao_member_count gauge
11+
rocketpool_dao_member_count 0
12+
# HELP rocketpool_dao_proposal_count number of proposals in Rocket Pool dao
13+
# TYPE rocketpool_dao_proposal_count gauge
14+
rocketpool_dao_proposal_count 0
15+
# HELP rocketpool_minipool_count minipools counts with various aggregations
16+
# TYPE rocketpool_minipool_count gauge
17+
rocketpool_minipool_count{status="dissolved"} 0
18+
rocketpool_minipool_count{status="initialized"} 0
19+
rocketpool_minipool_count{status="prelaunch"} 0
20+
rocketpool_minipool_count{status="staking"} 0
21+
rocketpool_minipool_count{status="total"} 0
22+
rocketpool_minipool_count{status="validatorActive"} 0
23+
rocketpool_minipool_count{status="validatorExists"} 0
24+
rocketpool_minipool_count{status="withdrawable"} 0
25+
# HELP rocketpool_minipool_queue_count number of minipools in queue for assignment
26+
# TYPE rocketpool_minipool_queue_count gauge
27+
rocketpool_minipool_queue_count{depositType="Empty"} 0
28+
rocketpool_minipool_queue_count{depositType="Full"} 0
29+
rocketpool_minipool_queue_count{depositType="Half"} 0
30+
# HELP rocketpool_minipool_total_count total number of minipools in Rocket Pool
31+
# TYPE rocketpool_minipool_total_count gauge
32+
rocketpool_minipool_total_count 0
33+
# HELP rocketpool_network_balance_eth network balances and supplies in given category
34+
# TYPE rocketpool_network_balance_eth gauge
35+
rocketpool_network_balance_eth{category="Deposit"} 0
36+
rocketpool_network_balance_eth{category="DepositExcess"} 0
37+
rocketpool_network_balance_eth{category="StakingETH"} 0
38+
rocketpool_network_balance_eth{category="TotalETH"} 0
39+
rocketpool_network_balance_eth{category="TotalRETH"} 0
40+
# HELP rocketpool_network_balance_updated_block block of current submitted balances
41+
# TYPE rocketpool_network_balance_updated_block gauge
42+
rocketpool_network_balance_updated_block 0
43+
# HELP rocketpool_network_fee_rate network fees as rate of amount staked
44+
# TYPE rocketpool_network_fee_rate gauge
45+
rocketpool_network_fee_rate{range="current"} 0.1
46+
rocketpool_network_fee_rate{range="max"} 0.2
47+
rocketpool_network_fee_rate{range="min"} 0.05
48+
rocketpool_network_fee_rate{range="target"} 0.1
49+
# HELP rocketpool_network_rpl_price_eth RPL price in ETH
50+
# TYPE rocketpool_network_rpl_price_eth gauge
51+
rocketpool_network_rpl_price_eth 0.01
52+
# HELP rocketpool_network_rpl_price_updated_block block of current submitted RPL price
53+
# TYPE rocketpool_network_rpl_price_updated_block gauge
54+
rocketpool_network_rpl_price_updated_block 0
55+
# HELP rocketpool_node_score_hist_eth_count
56+
# TYPE rocketpool_node_score_hist_eth_count gauge
57+
rocketpool_node_score_hist_eth_count 0
58+
# HELP rocketpool_node_score_hist_eth_sum
59+
# TYPE rocketpool_node_score_hist_eth_sum gauge
60+
rocketpool_node_score_hist_eth_sum 0
61+
# HELP rocketpool_node_total_count total number of nodes in Rocket Pool
62+
# TYPE rocketpool_node_total_count gauge
63+
rocketpool_node_total_count 0
64+
# HELP rocketpool_settings_flags_bool settings flags on rocketpool contracts
65+
# TYPE rocketpool_settings_flags_bool gauge
66+
rocketpool_settings_flags_bool{flag="AssignDepositEnabled"} 1
67+
rocketpool_settings_flags_bool{flag="DepositEnabled"} 1
68+
rocketpool_settings_flags_bool{flag="MinipoolWithdrawEnabled"} 1
69+
rocketpool_settings_flags_bool{flag="NodeDepositEnabled"} 1
70+
rocketpool_settings_flags_bool{flag="NodeRegistrationEnabled"} 1
71+
rocketpool_settings_flags_bool{flag="ProcessWithdrawalEnabled"} 1
72+
rocketpool_settings_flags_bool{flag="SubmitBalancesEnabled"} 1
73+
# HELP rocketpool_settings_maximum_pool_eth maximum size of deposit pool
74+
# TYPE rocketpool_settings_maximum_pool_eth gauge
75+
rocketpool_settings_maximum_pool_eth 1000
76+
# HELP rocketpool_settings_minimum_deposit_eth minimum deposit size
77+
# TYPE rocketpool_settings_minimum_deposit_eth gauge
78+
rocketpool_settings_minimum_deposit_eth 0.01

0 commit comments

Comments
 (0)