From 97f2e0ad89a132095574e6936b0968760c4c192c Mon Sep 17 00:00:00 2001 From: xenowits Date: Mon, 20 Jun 2022 22:29:35 +0530 Subject: [PATCH 1/2] change ports --- cmd/bootnode.go | 2 +- cmd/cmd_internal_test.go | 12 +- cmd/run.go | 8 +- config.json | 19 + docs/configuration.md | 8 +- grafana/dash_alerts.json | 812 +++++++++++++++ grafana/dash_simnet.json | 950 ++++++++++++++++++ grafana/dashboards.yml | 8 + grafana/datasource.yml | 44 + grafana/grafana.ini | 9 + grafana/notifiers.yml | 14 + lighthouse/Dockerfile | 10 + lighthouse/run.sh | 27 + prometheus/prometheus.yml | 17 + testutil/compose/docker-compose.template | 6 +- testutil/compose/lock.go | 10 +- testutil/compose/run.go | 2 +- testutil/compose/static/lighthouse/run.sh | 8 +- .../compose/static/prometheus/prometheus.yml | 8 +- ...TestDockerCompose_lock_dkg_template.golden | 40 +- .../TestDockerCompose_lock_dkg_yml.golden | 46 +- .../TestDockerCompose_run_template.golden | 44 +- .../testdata/TestDockerCompose_run_yml.golden | 50 +- 23 files changed, 2032 insertions(+), 122 deletions(-) create mode 100755 config.json create mode 100644 grafana/dash_alerts.json create mode 100644 grafana/dash_simnet.json create mode 100644 grafana/dashboards.yml create mode 100644 grafana/datasource.yml create mode 100644 grafana/grafana.ini create mode 100644 grafana/notifiers.yml create mode 100644 lighthouse/Dockerfile create mode 100755 lighthouse/run.sh create mode 100644 prometheus/prometheus.yml diff --git a/cmd/bootnode.go b/cmd/bootnode.go index 02a1c1833..1c27ce7a0 100644 --- a/cmd/bootnode.go +++ b/cmd/bootnode.go @@ -67,7 +67,7 @@ func newBootnodeCmd(runFunc func(context.Context, BootnodeConfig) error) *cobra. } func bindBootnodeFlag(flags *pflag.FlagSet, config *BootnodeConfig) { - flags.StringVar(&config.HTTPAddr, "bootnode-http-address", "127.0.0.1:16005", "Listening address (ip and port) for the bootnode http server serving runtime ENR") + flags.StringVar(&config.HTTPAddr, "bootnode-http-address", "127.0.0.1:3640", "Listening address (ip and port) for the bootnode http server serving runtime ENR") flags.BoolVar(&config.AutoP2PKey, "auto-p2pkey", true, "Automatically create a p2pkey (ecdsa private key used for p2p authentication and ENR) if none found in data directory") flags.BoolVar(&config.P2PRelay, "p2p-relay", true, "Enable libp2p tcp host providing circuit relay to charon clusters") flags.IntVar(&config.MaxResPerPeer, "max-reservations", 30, "Updates max circuit reservations per peer (each valid for 30min)") diff --git a/cmd/cmd_internal_test.go b/cmd/cmd_internal_test.go index 6090f3b39..bc362584e 100644 --- a/cmd/cmd_internal_test.go +++ b/cmd/cmd_internal_test.go @@ -69,8 +69,8 @@ func TestCmdFlags(t *testing.T) { }, P2P: p2p.Config{ UDPBootnodes: []string{"http://bootnode.gcp.obol.tech:16000/enr"}, - UDPAddr: "127.0.0.1:16004", - TCPAddrs: []string{"127.0.0.1:16003"}, + UDPAddr: "127.0.0.1:3630", + TCPAddrs: []string{"127.0.0.1:3600"}, Allowlist: "", Denylist: "", }, @@ -81,8 +81,8 @@ func TestCmdFlags(t *testing.T) { }, LockFile: ".charon/cluster-lock.json", DataDir: "from_env", - MonitoringAddr: "127.0.0.1:16001", - ValidatorAPIAddr: "127.0.0.1:16002", + MonitoringAddr: "127.0.0.1:3620", + ValidatorAPIAddr: "127.0.0.1:3610", BeaconNodeAddr: "http://localhost/", JaegerAddr: "", JaegerService: "charon", @@ -94,8 +94,8 @@ func TestCmdFlags(t *testing.T) { Datadir: ".charon", P2PConfig: &p2p.Config{ UDPBootnodes: []string{"http://bootnode.gcp.obol.tech:16000/enr"}, - UDPAddr: "127.0.0.1:16004", - TCPAddrs: []string{"127.0.0.1:16003"}, + UDPAddr: "127.0.0.1:3630", + TCPAddrs: []string{"127.0.0.1:3600"}, Allowlist: "", Denylist: "", }, diff --git a/cmd/run.go b/cmd/run.go index 0c42c85db..19e6741a2 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -56,8 +56,8 @@ func newRunCmd(runFunc func(context.Context, app.Config) error) *cobra.Command { func bindRunFlags(flags *pflag.FlagSet, config *app.Config) { flags.StringVar(&config.LockFile, "lock-file", ".charon/cluster-lock.json", "The path to the cluster lock file defining distributed validator cluster") flags.StringVar(&config.BeaconNodeAddr, "beacon-node-endpoint", "http://localhost/", "Beacon node endpoint URL") - flags.StringVar(&config.ValidatorAPIAddr, "validator-api-address", "127.0.0.1:16002", "Listening address (ip and port) for validator-facing traffic proxying the beacon-node API") - flags.StringVar(&config.MonitoringAddr, "monitoring-address", "127.0.0.1:16001", "Listening address (ip and port) for the monitoring API (prometheus, pprof)") + flags.StringVar(&config.ValidatorAPIAddr, "validator-api-address", "127.0.0.1:3610", "Listening address (ip and port) for validator-facing traffic proxying the beacon-node API") + flags.StringVar(&config.MonitoringAddr, "monitoring-address", "127.0.0.1:3620", "Listening address (ip and port) for the monitoring API (prometheus, pprof)") flags.StringVar(&config.JaegerAddr, "jaeger-address", "", "Listening address for jaeger tracing") flags.StringVar(&config.JaegerService, "jaeger-service", "charon", "Service name used for jaeger tracing") flags.BoolVar(&config.SimnetBMock, "simnet-beacon-mock", false, "Enables an internal mock beacon node for running a simnet.") @@ -77,10 +77,10 @@ func bindP2PFlags(flags *pflag.FlagSet, config *p2p.Config) { flags.StringSliceVar(&config.UDPBootnodes, "p2p-bootnodes", []string{"http://bootnode.gcp.obol.tech:16000/enr"}, "Comma-separated list of discv5 bootnode URLs or ENRs.") flags.BoolVar(&config.BootnodeRelay, "p2p-bootnode-relay", false, "Enables using bootnodes as libp2p circuit relays. Useful if some charon nodes are not have publicly accessible.") flags.BoolVar(&config.UDPBootLock, "p2p-bootnodes-from-lockfile", false, "Enables using cluster lock ENRs as discv5 bootnodes. Allows skipping explicit bootnodes if key generation ceremony included correct IPs.") - flags.StringVar(&config.UDPAddr, "p2p-udp-address", "127.0.0.1:16004", "Listening UDP address (ip and port) for discv5 discovery.") + flags.StringVar(&config.UDPAddr, "p2p-udp-address", "127.0.0.1:3630", "Listening UDP address (ip and port) for discv5 discovery.") flags.StringVar(&config.ExternalIP, "p2p-external-ip", "", "The IP address advertised by libp2p. This may be used to advertise an external IP.") flags.StringVar(&config.ExternalHost, "p2p-external-hostname", "", "The DNS hostname advertised by libp2p. This may be used to advertise an external DNS.") - flags.StringSliceVar(&config.TCPAddrs, "p2p-tcp-address", []string{"127.0.0.1:16003"}, "Comma-separated list of listening TCP addresses (ip and port) for libP2P traffic.") + flags.StringSliceVar(&config.TCPAddrs, "p2p-tcp-address", []string{"127.0.0.1:3600"}, "Comma-separated list of listening TCP addresses (ip and port) for libP2P traffic.") flags.StringVar(&config.Allowlist, "p2p-allowlist", "", "Comma-separated list of CIDR subnets for allowing only certain peer connections. Example: 192.168.0.0/16 would permit connections to peers on your local network only. The default is to accept all connections.") flags.StringVar(&config.Denylist, "p2p-denylist", "", "Comma-separated list of CIDR subnets for disallowing certain peer connections. Example: 192.168.0.0/16 would disallow connections to peers on your local network. The default is to accept all connections.") } diff --git a/config.json b/config.json new file mode 100755 index 000000000..0cb74e7d1 --- /dev/null +++ b/config.json @@ -0,0 +1,19 @@ +{ + "version": "obol/charon/compose/1.0.0", + "step": "defined", + "num_nodes": 4, + "threshold": 3, + "num_validators": 1, + "image_tag": "latest", + "build_binary": false, + "prebuilt_binary": false, + "key_gen": "create", + "split_keys_dir": "", + "beacon_node": "mock", + "validator_clients": [ + "teku", + "lighthouse", + "mock" + ], + "feature_set": "alpha" +} diff --git a/docs/configuration.md b/docs/configuration.md index 8f7c5a8e3..bdf468ea3 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -98,7 +98,7 @@ Flags: --lock-file string The path to the cluster lock file defining distributed validator cluster (default ".charon/cluster-lock.json") --log-format string Log format; console, logfmt or json (default "console") --log-level string Log level; debug, info, warn or error (default "info") - --monitoring-address string Listening address (ip and port) for the monitoring API (prometheus, pprof) (default "127.0.0.1:16001") + --monitoring-address string Listening address (ip and port) for the monitoring API (prometheus, pprof) (default "127.0.0.1:3620") --p2p-allowlist string Comma-separated list of CIDR subnets for allowing only certain peer connections. Example: 192.168.0.0/16 would permit connections to peers on your local network only. The default is to accept all connections. --p2p-bootnode-relay Enables using bootnodes as libp2p circuit relays. Useful if some charon nodes are not have publicly accessible. --p2p-bootnodes strings Comma-separated list of discv5 bootnode URLs or ENRs. (default [http://bootnode.gcp.obol.tech:16000/enr]) @@ -106,11 +106,11 @@ Flags: --p2p-denylist string Comma-separated list of CIDR subnets for disallowing certain peer connections. Example: 192.168.0.0/16 would disallow connections to peers on your local network. The default is to accept all connections. --p2p-external-hostname string The DNS hostname advertised by libp2p. This may be used to advertise an external DNS. --p2p-external-ip string The IP address advertised by libp2p. This may be used to advertise an external IP. - --p2p-tcp-address strings Comma-separated list of listening TCP addresses (ip and port) for libP2P traffic. (default [127.0.0.1:16003]) - --p2p-udp-address string Listening UDP address (ip and port) for discv5 discovery. (default "127.0.0.1:16004") + --p2p-tcp-address strings Comma-separated list of listening TCP addresses (ip and port) for libP2P traffic. (default [127.0.0.1:3600]) + --p2p-udp-address string Listening UDP address (ip and port) for discv5 discovery. (default "127.0.0.1:3630") --simnet-beacon-mock Enables an internal mock beacon node for running a simnet. --simnet-validator-mock Enables an internal mock validator client when running a simnet. Requires simnet-beacon-mock. - --validator-api-address string Listening address (ip and port) for validator-facing traffic proxying the beacon-node API (default "127.0.0.1:16002") + --validator-api-address string Listening address (ip and port) for validator-facing traffic proxying the beacon-node API (default "127.0.0.1:3610") ```` diff --git a/grafana/dash_alerts.json b/grafana/dash_alerts.json new file mode 100644 index 000000000..d0f616547 --- /dev/null +++ b/grafana/dash_alerts.json @@ -0,0 +1,812 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "links": [], + "liveNow": false, + "panels": [ + { + "alert": { + "alertRuleTags": {}, + "conditions": [ + { + "evaluator": { + "params": [ + 5 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "A", + "5m", + "now" + ] + }, + "reducer": { + "params": [], + "type": "max" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "0m", + "frequency": "15s", + "handler": 1, + "name": "Error Log Rate alert", + "noDataState": "ok", + "notifications": [] + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 9, + "x": 0, + "y": 0 + }, + "id": 2, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(app_log_error_total[30s]) ", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "op": "gt", + "value": 5, + "visible": true + } + ], + "title": "Error Log Rate", + "type": "timeseries" + }, + { + "alert": { + "alertRuleTags": {}, + "conditions": [ + { + "evaluator": { + "params": [ + 5 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "A", + "5m", + "now" + ] + }, + "reducer": { + "params": [], + "type": "avg" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "0", + "frequency": "15s", + "handler": 1, + "name": "Warn Log Rate alert", + "noDataState": "ok", + "notifications": [] + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 9, + "y": 0 + }, + "id": 3, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(app_log_warn_total[30s]) ", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "op": "gt", + "value": 5, + "visible": true + } + ], + "title": "Warn Log Rate", + "type": "timeseries" + }, + { + "alert": { + "alertRuleTags": {}, + "conditions": [ + { + "evaluator": { + "params": [ + 1 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "A", + "5m", + "now" + ] + }, + "reducer": { + "params": [], + "type": "max" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "0", + "frequency": "15s", + "handler": 1, + "name": "Validator API Error Rate alert", + "noDataState": "ok", + "notifications": [] + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 9, + "x": 0, + "y": 6 + }, + "id": 4, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(core_validatorapi_request_error_total{endpoint!=\"proxy\"}[30s]) ", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "op": "gt", + "value": 1, + "visible": true + } + ], + "title": "Validator API Error Rate", + "type": "timeseries" + }, + { + "alert": { + "alertRuleTags": {}, + "conditions": [ + { + "evaluator": { + "params": [ + 5 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "A", + "5m", + "now" + ] + }, + "reducer": { + "params": [], + "type": "max" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "0s", + "frequency": "15s", + "handler": 1, + "name": "Proxy API Error Rate alert", + "noDataState": "ok", + "notifications": [] + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 9, + "y": 6 + }, + "id": 7, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(core_validatorapi_request_error_total{endpoint=\"proxy\"}[30s]) ", + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "op": "gt", + "value": 5, + "visible": true + } + ], + "title": "Proxy API Error Rate", + "type": "timeseries" + }, + { + "alert": { + "alertRuleTags": {}, + "conditions": [ + { + "evaluator": { + "params": [ + 0.5 + ], + "type": "lt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "A", + "5m", + "now" + ] + }, + "reducer": { + "params": [], + "type": "avg" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "0s", + "frequency": "30s", + "handler": 1, + "name": "Broadcast Duty Rate alert", + "noDataState": "ok", + "notifications": [] + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 9, + "x": 0, + "y": 12 + }, + "id": 8, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(core_bcast_broadcast_total[30s])", + "interval": "", + "legendFormat": "{{job}} - {{type}}", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "op": "lt", + "value": 0.5, + "visible": true + } + ], + "title": "Broadcast Duty Rate", + "type": "timeseries" + }, + { + "alert": { + "alertRuleTags": {}, + "conditions": [ + { + "evaluator": { + "params": [ + 40 + ], + "type": "gt" + }, + "operator": { + "type": "and" + }, + "query": { + "params": [ + "A", + "5m", + "now" + ] + }, + "reducer": { + "params": [], + "type": "max" + }, + "type": "query" + } + ], + "executionErrorState": "alerting", + "for": "0s", + "frequency": "15s", + "handler": 1, + "name": "Outstanding Duty Count alert", + "noDataState": "ok", + "notifications": [] + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 9, + "y": 12 + }, + "id": 6, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "core_bcast_broadcast_total - core_scheduler_duty_total", + "interval": "", + "legendFormat": "{{job}} - {{type}}", + "refId": "A" + } + ], + "thresholds": [ + { + "colorMode": "critical", + "op": "gt", + "value": 40, + "visible": true + } + ], + "title": "Outstanding Duty Count", + "type": "timeseries" + } + ], + "schemaVersion": 35, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-5m", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Alerts", + "uid": "a9mqsmrnk", + "version": 1, + "weekStart": "" +} diff --git a/grafana/dash_simnet.json b/grafana/dash_simnet.json new file mode 100644 index 000000000..40bdbbba2 --- /dev/null +++ b/grafana/dash_simnet.json @@ -0,0 +1,950 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "iteration": 1649349193420, + "links": [], + "liveNow": false, + "panels": [ + { + "collapsed": false, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 12, + "panels": [], + "repeat": "node", + "title": "$node", + "type": "row" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "continuous-BlPu" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 0, + "y": 1 + }, + "id": 3, + "options": { + "colorMode": "background", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "vertical", + "reduceOptions": { + "calcs": [ + "lastNotNull" + ], + "fields": "", + "values": false + }, + "textMode": "auto" + }, + "pluginVersion": "8.4.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "core_scheduler_current_slot{job=\"$node\"}", + "instant": true, + "interval": "", + "legendFormat": "Slot", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": false, + "expr": "core_scheduler_current_epoch{job=\"$node\"}", + "hide": false, + "instant": true, + "interval": "", + "legendFormat": "Epoch", + "refId": "B" + } + ], + "title": "Slot/Epoch", + "type": "stat" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "align": "auto", + "displayMode": "auto" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 4, + "x": 4, + "y": 1 + }, + "id": 19, + "options": { + "footer": { + "fields": "", + "reducer": [ + "sum" + ], + "show": false + }, + "frameIndex": 0, + "showHeader": false + }, + "pluginVersion": "8.4.4", + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "(\n sum(app_git_commit{job=\"$node\"}) by (hash)\n)\n + on(job) group_left(version)\n(\n 0 * sum(app_version{job=\"$node\"}) by (version)\n)", + "hide": false, + "interval": "", + "legendFormat": "", + "refId": "B" + } + ], + "title": "Version Info", + "transformations": [ + { + "id": "labelsToFields", + "options": { + "mode": "rows" + } + } + ], + "type": "table" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 8, + "x": 8, + "y": 1 + }, + "id": 13, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(app_log_error_total{job=\"$node\"}[30s]) ", + "interval": "", + "legendFormat": "{{topic}}", + "refId": "A" + } + ], + "title": "Errors by topic", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 4, + "w": 8, + "x": 16, + "y": 1 + }, + "id": 14, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "right" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(app_log_warn_total{job=\"$node\"}[30s]) ", + "interval": "", + "legendFormat": "{{topic}}", + "refId": "A" + } + ], + "title": "Warnings by topic", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "bars", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 5 + }, + "id": 5, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(core_scheduler_duty_total{job=\"$node\"}[30s])", + "interval": "", + "legendFormat": "{{type}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(core_scheduler_current_epoch{job=\"$node\"}[30s]) * 0.2", + "hide": false, + "interval": "", + "legendFormat": "epoch boundary", + "refId": "B" + } + ], + "title": "Scheduled duties (started) by type", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 5 + }, + "id": 15, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "rate(core_validatorapi_request_latency_seconds_count{job=\"$node\"}[30s])", + "interval": "", + "legendFormat": "{{endpoint}}", + "refId": "A" + } + ], + "title": "Validator API requests rate", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 5 + }, + "id": 16, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "histogram_quantile(0.90, sum(rate(core_validatorapi_request_latency_seconds_bucket[30s])) by (le,endpoint)) ", + "interval": "", + "legendFormat": "{{endpoint}}", + "refId": "A" + } + ], + "title": "Validator API request latency (90%)", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "bars", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 12 + }, + "id": 7, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(core_bcast_broadcast_total{job=\"$node\"}[30s]) ", + "interval": "", + "legendFormat": "{{type}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "increase(core_scheduler_current_epoch{job=\"$node\"}[30s]) * 0.2", + "hide": false, + "interval": "", + "legendFormat": "epoch boundry", + "refId": "B" + } + ], + "title": "Broadcast duties (completed) by type ", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 12 + }, + "id": 17, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "rate(app_eth2_latency_seconds_count{job=\"$node\"}[30s]) ", + "interval": "", + "legendFormat": "{{endpoint}}", + "refId": "A" + } + ], + "title": "Beacon API requests rate", + "type": "timeseries" + }, + { + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "lineInterpolation": "linear", + "lineWidth": 2, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 12 + }, + "id": 18, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom" + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus", + "uid": "PBFA97CFB590B2093" + }, + "exemplar": true, + "expr": "histogram_quantile(0.90, sum(rate(app_eth2_latency_seconds_bucket[30s])) by (le,endpoint)) ", + "interval": "", + "legendFormat": "{{endpoint}}", + "refId": "A" + } + ], + "title": "Beacon API request latency (90%)", + "type": "timeseries" + } + ], + "refresh": "30s", + "schemaVersion": 35, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "current": { + "selected": true, + "text": [ + "node0" + ], + "value": [ + "node0" + ] + }, + "hide": 0, + "includeAll": false, + "label": "Node", + "multi": true, + "name": "node", + "options": [ + { + "selected": true, + "text": "node0", + "value": "node0" + }, + { + "selected": false, + "text": "node1", + "value": "node1" + }, + { + "selected": false, + "text": "node2", + "value": "node2" + }, + { + "selected": false, + "text": "node3", + "value": "node3" + } + ], + "query": "node0,node1,node2,node3", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + } + ] + }, + "time": { + "from": "now-30m", + "to": "now" + }, + "timepicker": {}, + "timezone": "", + "title": "Simnet", + "uid": "B2zGKKs7k", + "version": 1, + "weekStart": "" +} diff --git a/grafana/dashboards.yml b/grafana/dashboards.yml new file mode 100644 index 000000000..6bbd5e73e --- /dev/null +++ b/grafana/dashboards.yml @@ -0,0 +1,8 @@ +apiVersion: 1 + +providers: + - name: dashboards + type: file + updateIntervalSeconds: 30 + options: + path: /etc/dashboards diff --git a/grafana/datasource.yml b/grafana/datasource.yml new file mode 100644 index 000000000..878b0f29d --- /dev/null +++ b/grafana/datasource.yml @@ -0,0 +1,44 @@ +# config file version +apiVersion: 1 + +# list of datasources that should be deleted from the database +deleteDatasources: + - name: Prometheus + orgId: 1 + +# list of datasources to insert/update depending +# whats available in the database +datasources: + # name of the datasource. Required + - name: Prometheus + # datasource type. Required + type: prometheus + # org id. will default to orgId 1 if not specified + orgId: 1 + # url + url: http://prometheus:9090 + # database password, if used + password: + # database user, if used + user: + # database name, if used + database: + # enable/disable basic auth + basicAuth: false + # enable/disable with credentials headers + withCredentials: + # mark as default datasource. Max one per org + isDefault: true + # fields that will be converted to json and stored in json_data + jsonData: + graphiteVersion: "1.1" + tlsAuth: false + tlsAuthWithCACert: false + # json object of data that will be encrypted. + secureJsonData: + tlsCACert: "..." + tlsClientCert: "..." + tlsClientKey: "..." + version: 1 + # allow users to edit datasources from the UI. + editable: true diff --git a/grafana/grafana.ini b/grafana/grafana.ini new file mode 100644 index 000000000..2ab0213ab --- /dev/null +++ b/grafana/grafana.ini @@ -0,0 +1,9 @@ +[auth.anonymous] +enabled = true +org_role = Admin + +[log] +level = warn + +[unified_alerting] +enabled = false diff --git a/grafana/notifiers.yml b/grafana/notifiers.yml new file mode 100644 index 000000000..be27b1dc6 --- /dev/null +++ b/grafana/notifiers.yml @@ -0,0 +1,14 @@ +apiVersion: 1 + +notifiers: + - name: compose-webhook + type: webhook + uid: compose-webhook + org_id: 1 + is_default: true + send_reminder: false + frequency: 1s + disable_resolve_message: true + settings: + url: http://host.docker.internal:26354 + httpMethod: POST diff --git a/lighthouse/Dockerfile b/lighthouse/Dockerfile new file mode 100644 index 000000000..76ce08220 --- /dev/null +++ b/lighthouse/Dockerfile @@ -0,0 +1,10 @@ +FROM sigp/lighthouse:latest + +RUN apt-get update && apt-get install -y curl jq wget + +ENV YQ_VERSION=v4.23.1 +ENV YQ_BINARY=yq_linux_amd64 +RUN wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${YQ_BINARY} -O /usr/bin/yq \ + && chmod +x /usr/bin/yq + +ENTRYPOINT ["/compose/lighthouse/run.sh"] diff --git a/lighthouse/run.sh b/lighthouse/run.sh new file mode 100755 index 000000000..6ae106fe2 --- /dev/null +++ b/lighthouse/run.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +while ! curl "http://${NODE}:16002/up" 2>/dev/null; do + echo "Waiting for http://${NODE}:16002/up to become available..." + sleep 5 +done + +echo "Creating testnet config" +rm -rf /tmp/testnet || true +mkdir /tmp/testnet/ +curl "http://${NODE}:16002/eth/v1/config/spec" | jq -r .data | yq -P > /tmp/testnet/config.yaml +echo "0" > /tmp/testnet/deploy_block.txt + +for f in /compose/"${NODE}"/keystore-*.json; do + echo "Importing key ${f}" + cat "$(echo "${f}" | sed 's/json/txt/')" | lighthouse account validator import \ + --testnet-dir "/tmp/testnet" \ + --stdin-inputs \ + --keystore "${f}" +done + + +echo "Starting lighthouse validator client for ${NODE}" +exec lighthouse validator \ + --testnet-dir "/tmp/testnet" \ + --beacon-node "http://${NODE}:16002" \ + --suggested-fee-recipient "0x0000000000000000000000000000000000000000" diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml new file mode 100644 index 000000000..b8e615254 --- /dev/null +++ b/prometheus/prometheus.yml @@ -0,0 +1,17 @@ +global: + scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute. + evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute. + +scrape_configs: + - job_name: 'node0' + static_configs: + - targets: ['node0:16001'] + - job_name: 'node1' + static_configs: + - targets: ['node1:16001'] + - job_name: 'node2' + static_configs: + - targets: ['node2:16001'] + - job_name: 'node3' + static_configs: + - targets: ['node3:16001'] diff --git a/testutil/compose/docker-compose.template b/testutil/compose/docker-compose.template index 5c39e831d..bd6dd8fe0 100644 --- a/testutil/compose/docker-compose.template +++ b/testutil/compose/docker-compose.template @@ -35,12 +35,12 @@ services: command: bootnode depends_on: [] environment: - CHARON_BOOTNODE_HTTP_ADDRESS: 0.0.0.0:16000 + CHARON_BOOTNODE_HTTP_ADDRESS: 0.0.0.0:3640 CHARON_DATA_DIR: /compose/bootnode CHARON_P2P_BOOTNODES: "" CHARON_P2P_EXTERNAL_HOSTNAME: bootnode - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 {{end -}} {{- range $i, $vc := .VCs}} {{- if $vc.Label}} diff --git a/testutil/compose/lock.go b/testutil/compose/lock.go index d435b9a9e..ef2825bfe 100644 --- a/testutil/compose/lock.go +++ b/testutil/compose/lock.go @@ -115,12 +115,12 @@ func newNodeEnvs(index int, validatorMock bool, conf Config) []kv { {"jaeger-address", "jaeger:6831"}, {"definition-file", "/compose/cluster-definition.json"}, {"lock-file", lockFile}, - {"monitoring-address", "0.0.0.0:16001"}, - {"validator-api-address", "0.0.0.0:16002"}, + {"monitoring-address", "0.0.0.0:3620"}, + {"validator-api-address", "0.0.0.0:3610"}, {"p2p-external-hostname", fmt.Sprintf("node%d", index)}, - {"p2p-tcp-address", "0.0.0.0:16003"}, - {"p2p_udp_address", "0.0.0.0:16004"}, - {"p2p-bootnodes", "http://bootnode:16000/enr"}, + {"p2p-tcp-address", "0.0.0.0:3600"}, + {"p2p_udp_address", "0.0.0.0:3630"}, + {"p2p-bootnodes", "http://bootnode:3640/enr"}, {"beacon-node-endpoint", beaconNode}, {"simnet-validator-mock", fmt.Sprintf(`"%v"`, validatorMock)}, {"simnet-beacon_mock", fmt.Sprintf(`"%v"`, beaconMock)}, diff --git a/testutil/compose/run.go b/testutil/compose/run.go index a2375eea7..1f193cb3f 100644 --- a/testutil/compose/run.go +++ b/testutil/compose/run.go @@ -83,7 +83,7 @@ func getVC(typ VCType, nodeIdx int, numVals int) (vc, error) { Command: `| validator-client --network=auto - --beacon-node-api-endpoint="http://node{{.NodeIdx}}:16002" + --beacon-node-api-endpoint="http://node{{.NodeIdx}}:3610" {{range .TekuKeys}}--validator-keys="{{.}}" {{end -}} --validators-proposer-default-fee-recipient="0x0000000000000000000000000000000000000000"`, diff --git a/testutil/compose/static/lighthouse/run.sh b/testutil/compose/static/lighthouse/run.sh index 9fd35f8df..c10884381 100755 --- a/testutil/compose/static/lighthouse/run.sh +++ b/testutil/compose/static/lighthouse/run.sh @@ -1,14 +1,14 @@ #!/usr/bin/env bash -while ! curl "http://${NODE}:16002/up" 2>/dev/null; do - echo "Waiting for http://${NODE}:16002/up to become available..." +while ! curl "http://${NODE}:3610/up" 2>/dev/null; do + echo "Waiting for http://${NODE}:3610/up to become available..." sleep 5 done echo "Creating testnet config" rm -rf /tmp/testnet || true mkdir /tmp/testnet/ -curl "http://${NODE}:16002/eth/v1/config/spec" | jq -r .data | yq -P > /tmp/testnet/config.yaml +curl "http://${NODE}:3610/eth/v1/config/spec" | jq -r .data | yq -P > /tmp/testnet/config.yaml echo "0" > /tmp/testnet/deploy_block.txt for f in /compose/"${NODE}"/validator_keys/keystore-*.json; do @@ -23,5 +23,5 @@ done echo "Starting lighthouse validator client for ${NODE}" exec lighthouse validator \ --testnet-dir "/tmp/testnet" \ - --beacon-node "http://${NODE}:16002" \ + --beacon-node "http://${NODE}:3610" \ --suggested-fee-recipient "0x0000000000000000000000000000000000000000" diff --git a/testutil/compose/static/prometheus/prometheus.yml b/testutil/compose/static/prometheus/prometheus.yml index 33cb48335..a613ced50 100644 --- a/testutil/compose/static/prometheus/prometheus.yml +++ b/testutil/compose/static/prometheus/prometheus.yml @@ -5,16 +5,16 @@ global: scrape_configs: - job_name: 'node0' static_configs: - - targets: ['node0:16001'] + - targets: ['node0:3620'] - job_name: 'node1' static_configs: - - targets: ['node1:16001'] + - targets: ['node1:3620'] - job_name: 'node2' static_configs: - - targets: ['node2:16001'] + - targets: ['node2:3620'] - job_name: 'node3' static_configs: - - targets: ['node3:16001'] + - targets: ['node3:3620'] rule_files: - /etc/prometheus/rules.yml diff --git a/testutil/compose/testdata/TestDockerCompose_lock_dkg_template.golden b/testutil/compose/testdata/TestDockerCompose_lock_dkg_template.golden index 1f82c1e37..75e8ead03 100644 --- a/testutil/compose/testdata/TestDockerCompose_lock_dkg_template.golden +++ b/testutil/compose/testdata/TestDockerCompose_lock_dkg_template.golden @@ -30,11 +30,11 @@ }, { "Key": "monitoring-address", - "Value": "0.0.0.0:16001" + "Value": "0.0.0.0:3620" }, { "Key": "validator-api-address", - "Value": "0.0.0.0:16002" + "Value": "0.0.0.0:3610" }, { "Key": "p2p-external-hostname", @@ -42,15 +42,15 @@ }, { "Key": "p2p-tcp-address", - "Value": "0.0.0.0:16003" + "Value": "0.0.0.0:3600" }, { "Key": "p2p_udp_address", - "Value": "0.0.0.0:16004" + "Value": "0.0.0.0:3630" }, { "Key": "p2p-bootnodes", - "Value": "http://bootnode:16000/enr" + "Value": "http://bootnode:3640/enr" }, { "Key": "beacon-node-endpoint", @@ -101,11 +101,11 @@ }, { "Key": "monitoring-address", - "Value": "0.0.0.0:16001" + "Value": "0.0.0.0:3620" }, { "Key": "validator-api-address", - "Value": "0.0.0.0:16002" + "Value": "0.0.0.0:3610" }, { "Key": "p2p-external-hostname", @@ -113,15 +113,15 @@ }, { "Key": "p2p-tcp-address", - "Value": "0.0.0.0:16003" + "Value": "0.0.0.0:3600" }, { "Key": "p2p_udp_address", - "Value": "0.0.0.0:16004" + "Value": "0.0.0.0:3630" }, { "Key": "p2p-bootnodes", - "Value": "http://bootnode:16000/enr" + "Value": "http://bootnode:3640/enr" }, { "Key": "beacon-node-endpoint", @@ -172,11 +172,11 @@ }, { "Key": "monitoring-address", - "Value": "0.0.0.0:16001" + "Value": "0.0.0.0:3620" }, { "Key": "validator-api-address", - "Value": "0.0.0.0:16002" + "Value": "0.0.0.0:3610" }, { "Key": "p2p-external-hostname", @@ -184,15 +184,15 @@ }, { "Key": "p2p-tcp-address", - "Value": "0.0.0.0:16003" + "Value": "0.0.0.0:3600" }, { "Key": "p2p_udp_address", - "Value": "0.0.0.0:16004" + "Value": "0.0.0.0:3630" }, { "Key": "p2p-bootnodes", - "Value": "http://bootnode:16000/enr" + "Value": "http://bootnode:3640/enr" }, { "Key": "beacon-node-endpoint", @@ -243,11 +243,11 @@ }, { "Key": "monitoring-address", - "Value": "0.0.0.0:16001" + "Value": "0.0.0.0:3620" }, { "Key": "validator-api-address", - "Value": "0.0.0.0:16002" + "Value": "0.0.0.0:3610" }, { "Key": "p2p-external-hostname", @@ -255,15 +255,15 @@ }, { "Key": "p2p-tcp-address", - "Value": "0.0.0.0:16003" + "Value": "0.0.0.0:3600" }, { "Key": "p2p_udp_address", - "Value": "0.0.0.0:16004" + "Value": "0.0.0.0:3630" }, { "Key": "p2p-bootnodes", - "Value": "http://bootnode:16000/enr" + "Value": "http://bootnode:3640/enr" }, { "Key": "beacon-node-endpoint", diff --git a/testutil/compose/testdata/TestDockerCompose_lock_dkg_yml.golden b/testutil/compose/testdata/TestDockerCompose_lock_dkg_yml.golden index f86171582..08875cb7a 100644 --- a/testutil/compose/testdata/TestDockerCompose_lock_dkg_yml.golden +++ b/testutil/compose/testdata/TestDockerCompose_lock_dkg_yml.golden @@ -18,12 +18,12 @@ services: CHARON_JAEGER_ADDRESS: jaeger:6831 CHARON_DEFINITION_FILE: /compose/cluster-definition.json CHARON_LOCK_FILE: /compose/node0/cluster-lock.json - CHARON_MONITORING_ADDRESS: 0.0.0.0:16001 - CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:16002 + CHARON_MONITORING_ADDRESS: 0.0.0.0:3620 + CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:3610 CHARON_P2P_EXTERNAL_HOSTNAME: node0 - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 - CHARON_P2P_BOOTNODES: http://bootnode:16000/enr + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 + CHARON_P2P_BOOTNODES: http://bootnode:3640/enr CHARON_BEACON_NODE_ENDPOINT: CHARON_SIMNET_VALIDATOR_MOCK: "true" CHARON_SIMNET_BEACON_MOCK: "true" @@ -39,12 +39,12 @@ services: CHARON_JAEGER_ADDRESS: jaeger:6831 CHARON_DEFINITION_FILE: /compose/cluster-definition.json CHARON_LOCK_FILE: /compose/node1/cluster-lock.json - CHARON_MONITORING_ADDRESS: 0.0.0.0:16001 - CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:16002 + CHARON_MONITORING_ADDRESS: 0.0.0.0:3620 + CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:3610 CHARON_P2P_EXTERNAL_HOSTNAME: node1 - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 - CHARON_P2P_BOOTNODES: http://bootnode:16000/enr + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 + CHARON_P2P_BOOTNODES: http://bootnode:3640/enr CHARON_BEACON_NODE_ENDPOINT: CHARON_SIMNET_VALIDATOR_MOCK: "true" CHARON_SIMNET_BEACON_MOCK: "true" @@ -60,12 +60,12 @@ services: CHARON_JAEGER_ADDRESS: jaeger:6831 CHARON_DEFINITION_FILE: /compose/cluster-definition.json CHARON_LOCK_FILE: /compose/node2/cluster-lock.json - CHARON_MONITORING_ADDRESS: 0.0.0.0:16001 - CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:16002 + CHARON_MONITORING_ADDRESS: 0.0.0.0:3620 + CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:3610 CHARON_P2P_EXTERNAL_HOSTNAME: node2 - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 - CHARON_P2P_BOOTNODES: http://bootnode:16000/enr + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 + CHARON_P2P_BOOTNODES: http://bootnode:3640/enr CHARON_BEACON_NODE_ENDPOINT: CHARON_SIMNET_VALIDATOR_MOCK: "true" CHARON_SIMNET_BEACON_MOCK: "true" @@ -81,12 +81,12 @@ services: CHARON_JAEGER_ADDRESS: jaeger:6831 CHARON_DEFINITION_FILE: /compose/cluster-definition.json CHARON_LOCK_FILE: /compose/node3/cluster-lock.json - CHARON_MONITORING_ADDRESS: 0.0.0.0:16001 - CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:16002 + CHARON_MONITORING_ADDRESS: 0.0.0.0:3620 + CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:3610 CHARON_P2P_EXTERNAL_HOSTNAME: node3 - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 - CHARON_P2P_BOOTNODES: http://bootnode:16000/enr + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 + CHARON_P2P_BOOTNODES: http://bootnode:3640/enr CHARON_BEACON_NODE_ENDPOINT: CHARON_SIMNET_VALIDATOR_MOCK: "true" CHARON_SIMNET_BEACON_MOCK: "true" @@ -98,12 +98,12 @@ services: command: bootnode depends_on: [] environment: - CHARON_BOOTNODE_HTTP_ADDRESS: 0.0.0.0:16000 + CHARON_BOOTNODE_HTTP_ADDRESS: 0.0.0.0:3640 CHARON_DATA_DIR: /compose/bootnode CHARON_P2P_BOOTNODES: "" CHARON_P2P_EXTERNAL_HOSTNAME: bootnode - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 networks: compose: diff --git a/testutil/compose/testdata/TestDockerCompose_run_template.golden b/testutil/compose/testdata/TestDockerCompose_run_template.golden index 14c82d11e..b1d18dd09 100644 --- a/testutil/compose/testdata/TestDockerCompose_run_template.golden +++ b/testutil/compose/testdata/TestDockerCompose_run_template.golden @@ -30,11 +30,11 @@ }, { "Key": "monitoring-address", - "Value": "0.0.0.0:16001" + "Value": "0.0.0.0:3620" }, { "Key": "validator-api-address", - "Value": "0.0.0.0:16002" + "Value": "0.0.0.0:3610" }, { "Key": "p2p-external-hostname", @@ -42,15 +42,15 @@ }, { "Key": "p2p-tcp-address", - "Value": "0.0.0.0:16003" + "Value": "0.0.0.0:3600" }, { "Key": "p2p_udp_address", - "Value": "0.0.0.0:16004" + "Value": "0.0.0.0:3630" }, { "Key": "p2p-bootnodes", - "Value": "http://bootnode:16000/enr" + "Value": "http://bootnode:3640/enr" }, { "Key": "beacon-node-endpoint", @@ -101,11 +101,11 @@ }, { "Key": "monitoring-address", - "Value": "0.0.0.0:16001" + "Value": "0.0.0.0:3620" }, { "Key": "validator-api-address", - "Value": "0.0.0.0:16002" + "Value": "0.0.0.0:3610" }, { "Key": "p2p-external-hostname", @@ -113,15 +113,15 @@ }, { "Key": "p2p-tcp-address", - "Value": "0.0.0.0:16003" + "Value": "0.0.0.0:3600" }, { "Key": "p2p_udp_address", - "Value": "0.0.0.0:16004" + "Value": "0.0.0.0:3630" }, { "Key": "p2p-bootnodes", - "Value": "http://bootnode:16000/enr" + "Value": "http://bootnode:3640/enr" }, { "Key": "beacon-node-endpoint", @@ -172,11 +172,11 @@ }, { "Key": "monitoring-address", - "Value": "0.0.0.0:16001" + "Value": "0.0.0.0:3620" }, { "Key": "validator-api-address", - "Value": "0.0.0.0:16002" + "Value": "0.0.0.0:3610" }, { "Key": "p2p-external-hostname", @@ -184,15 +184,15 @@ }, { "Key": "p2p-tcp-address", - "Value": "0.0.0.0:16003" + "Value": "0.0.0.0:3600" }, { "Key": "p2p_udp_address", - "Value": "0.0.0.0:16004" + "Value": "0.0.0.0:3630" }, { "Key": "p2p-bootnodes", - "Value": "http://bootnode:16000/enr" + "Value": "http://bootnode:3640/enr" }, { "Key": "beacon-node-endpoint", @@ -243,11 +243,11 @@ }, { "Key": "monitoring-address", - "Value": "0.0.0.0:16001" + "Value": "0.0.0.0:3620" }, { "Key": "validator-api-address", - "Value": "0.0.0.0:16002" + "Value": "0.0.0.0:3610" }, { "Key": "p2p-external-hostname", @@ -255,15 +255,15 @@ }, { "Key": "p2p-tcp-address", - "Value": "0.0.0.0:16003" + "Value": "0.0.0.0:3600" }, { "Key": "p2p_udp_address", - "Value": "0.0.0.0:16004" + "Value": "0.0.0.0:3630" }, { "Key": "p2p-bootnodes", - "Value": "http://bootnode:16000/enr" + "Value": "http://bootnode:3640/enr" }, { "Key": "beacon-node-endpoint", @@ -294,7 +294,7 @@ "Label": "teku", "Image": "consensys/teku:latest", "Build": "", - "Command": "|\n validator-client\n --network=auto\n --beacon-node-api-endpoint=\"http://node0:16002\"\n --validator-keys=\"/compose/node0/validator_keys/keystore-0.json:/compose/node0/validator_keys/keystore-0.txt\"\n --validator-keys=\"/compose/node0/validator_keys/keystore-1.json:/compose/node0/validator_keys/keystore-1.txt\"\n --validators-proposer-default-fee-recipient=\"0x0000000000000000000000000000000000000000\"", + "Command": "|\n validator-client\n --network=auto\n --beacon-node-api-endpoint=\"http://node0:3610\"\n --validator-keys=\"/compose/node0/validator_keys/keystore-0.json:/compose/node0/validator_keys/keystore-0.txt\"\n --validator-keys=\"/compose/node0/validator_keys/keystore-1.json:/compose/node0/validator_keys/keystore-1.txt\"\n --validators-proposer-default-fee-recipient=\"0x0000000000000000000000000000000000000000\"", "Ports": null }, { @@ -315,7 +315,7 @@ "Label": "teku", "Image": "consensys/teku:latest", "Build": "", - "Command": "|\n validator-client\n --network=auto\n --beacon-node-api-endpoint=\"http://node3:16002\"\n --validator-keys=\"/compose/node3/validator_keys/keystore-0.json:/compose/node3/validator_keys/keystore-0.txt\"\n --validator-keys=\"/compose/node3/validator_keys/keystore-1.json:/compose/node3/validator_keys/keystore-1.txt\"\n --validators-proposer-default-fee-recipient=\"0x0000000000000000000000000000000000000000\"", + "Command": "|\n validator-client\n --network=auto\n --beacon-node-api-endpoint=\"http://node3:3610\"\n --validator-keys=\"/compose/node3/validator_keys/keystore-0.json:/compose/node3/validator_keys/keystore-0.txt\"\n --validator-keys=\"/compose/node3/validator_keys/keystore-1.json:/compose/node3/validator_keys/keystore-1.txt\"\n --validators-proposer-default-fee-recipient=\"0x0000000000000000000000000000000000000000\"", "Ports": null } ], diff --git a/testutil/compose/testdata/TestDockerCompose_run_yml.golden b/testutil/compose/testdata/TestDockerCompose_run_yml.golden index 21cc13138..2c3889069 100644 --- a/testutil/compose/testdata/TestDockerCompose_run_yml.golden +++ b/testutil/compose/testdata/TestDockerCompose_run_yml.golden @@ -18,12 +18,12 @@ services: CHARON_JAEGER_ADDRESS: jaeger:6831 CHARON_DEFINITION_FILE: /compose/cluster-definition.json CHARON_LOCK_FILE: /compose/cluster-lock.json - CHARON_MONITORING_ADDRESS: 0.0.0.0:16001 - CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:16002 + CHARON_MONITORING_ADDRESS: 0.0.0.0:3620 + CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:3610 CHARON_P2P_EXTERNAL_HOSTNAME: node0 - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 - CHARON_P2P_BOOTNODES: http://bootnode:16000/enr + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 + CHARON_P2P_BOOTNODES: http://bootnode:3640/enr CHARON_BEACON_NODE_ENDPOINT: CHARON_SIMNET_VALIDATOR_MOCK: "false" CHARON_SIMNET_BEACON_MOCK: "true" @@ -39,12 +39,12 @@ services: CHARON_JAEGER_ADDRESS: jaeger:6831 CHARON_DEFINITION_FILE: /compose/cluster-definition.json CHARON_LOCK_FILE: /compose/cluster-lock.json - CHARON_MONITORING_ADDRESS: 0.0.0.0:16001 - CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:16002 + CHARON_MONITORING_ADDRESS: 0.0.0.0:3620 + CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:3610 CHARON_P2P_EXTERNAL_HOSTNAME: node1 - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 - CHARON_P2P_BOOTNODES: http://bootnode:16000/enr + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 + CHARON_P2P_BOOTNODES: http://bootnode:3640/enr CHARON_BEACON_NODE_ENDPOINT: CHARON_SIMNET_VALIDATOR_MOCK: "false" CHARON_SIMNET_BEACON_MOCK: "true" @@ -60,12 +60,12 @@ services: CHARON_JAEGER_ADDRESS: jaeger:6831 CHARON_DEFINITION_FILE: /compose/cluster-definition.json CHARON_LOCK_FILE: /compose/cluster-lock.json - CHARON_MONITORING_ADDRESS: 0.0.0.0:16001 - CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:16002 + CHARON_MONITORING_ADDRESS: 0.0.0.0:3620 + CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:3610 CHARON_P2P_EXTERNAL_HOSTNAME: node2 - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 - CHARON_P2P_BOOTNODES: http://bootnode:16000/enr + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 + CHARON_P2P_BOOTNODES: http://bootnode:3640/enr CHARON_BEACON_NODE_ENDPOINT: CHARON_SIMNET_VALIDATOR_MOCK: "true" CHARON_SIMNET_BEACON_MOCK: "true" @@ -81,12 +81,12 @@ services: CHARON_JAEGER_ADDRESS: jaeger:6831 CHARON_DEFINITION_FILE: /compose/cluster-definition.json CHARON_LOCK_FILE: /compose/cluster-lock.json - CHARON_MONITORING_ADDRESS: 0.0.0.0:16001 - CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:16002 + CHARON_MONITORING_ADDRESS: 0.0.0.0:3620 + CHARON_VALIDATOR_API_ADDRESS: 0.0.0.0:3610 CHARON_P2P_EXTERNAL_HOSTNAME: node3 - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 - CHARON_P2P_BOOTNODES: http://bootnode:16000/enr + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 + CHARON_P2P_BOOTNODES: http://bootnode:3640/enr CHARON_BEACON_NODE_ENDPOINT: CHARON_SIMNET_VALIDATOR_MOCK: "false" CHARON_SIMNET_BEACON_MOCK: "true" @@ -98,19 +98,19 @@ services: command: bootnode depends_on: [] environment: - CHARON_BOOTNODE_HTTP_ADDRESS: 0.0.0.0:16000 + CHARON_BOOTNODE_HTTP_ADDRESS: 0.0.0.0:3640 CHARON_DATA_DIR: /compose/bootnode CHARON_P2P_BOOTNODES: "" CHARON_P2P_EXTERNAL_HOSTNAME: bootnode - CHARON_P2P_TCP_ADDRESS: 0.0.0.0:16003 - CHARON_P2P_UDP_ADDRESS: 0.0.0.0:16004 + CHARON_P2P_TCP_ADDRESS: 0.0.0.0:3600 + CHARON_P2P_UDP_ADDRESS: 0.0.0.0:3630 vc0-teku: image: consensys/teku:latest command: | validator-client --network=auto - --beacon-node-api-endpoint="http://node0:16002" + --beacon-node-api-endpoint="http://node0:3610" --validator-keys="/compose/node0/validator_keys/keystore-0.json:/compose/node0/validator_keys/keystore-0.txt" --validator-keys="/compose/node0/validator_keys/keystore-1.json:/compose/node0/validator_keys/keystore-1.txt" --validators-proposer-default-fee-recipient="0x0000000000000000000000000000000000000000" @@ -135,7 +135,7 @@ services: command: | validator-client --network=auto - --beacon-node-api-endpoint="http://node3:16002" + --beacon-node-api-endpoint="http://node3:3610" --validator-keys="/compose/node3/validator_keys/keystore-0.json:/compose/node3/validator_keys/keystore-0.txt" --validator-keys="/compose/node3/validator_keys/keystore-1.json:/compose/node3/validator_keys/keystore-1.txt" --validators-proposer-default-fee-recipient="0x0000000000000000000000000000000000000000" From 0274b1a11da30a31e2ac3a9aaed3607e9b61f7fd Mon Sep 17 00:00:00 2001 From: xenowits Date: Mon, 20 Jun 2022 22:57:09 +0530 Subject: [PATCH 2/2] remove compose artifacts --- config.json | 19 - grafana/dash_alerts.json | 812 -------------------------------- grafana/dash_simnet.json | 950 -------------------------------------- grafana/dashboards.yml | 8 - grafana/datasource.yml | 44 -- grafana/grafana.ini | 9 - grafana/notifiers.yml | 14 - lighthouse/Dockerfile | 10 - lighthouse/run.sh | 27 -- prometheus/prometheus.yml | 17 - 10 files changed, 1910 deletions(-) delete mode 100755 config.json delete mode 100644 grafana/dash_alerts.json delete mode 100644 grafana/dash_simnet.json delete mode 100644 grafana/dashboards.yml delete mode 100644 grafana/datasource.yml delete mode 100644 grafana/grafana.ini delete mode 100644 grafana/notifiers.yml delete mode 100644 lighthouse/Dockerfile delete mode 100755 lighthouse/run.sh delete mode 100644 prometheus/prometheus.yml diff --git a/config.json b/config.json deleted file mode 100755 index 0cb74e7d1..000000000 --- a/config.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "version": "obol/charon/compose/1.0.0", - "step": "defined", - "num_nodes": 4, - "threshold": 3, - "num_validators": 1, - "image_tag": "latest", - "build_binary": false, - "prebuilt_binary": false, - "key_gen": "create", - "split_keys_dir": "", - "beacon_node": "mock", - "validator_clients": [ - "teku", - "lighthouse", - "mock" - ], - "feature_set": "alpha" -} diff --git a/grafana/dash_alerts.json b/grafana/dash_alerts.json deleted file mode 100644 index d0f616547..000000000 --- a/grafana/dash_alerts.json +++ /dev/null @@ -1,812 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "links": [], - "liveNow": false, - "panels": [ - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 5 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "5m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "max" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "0m", - "frequency": "15s", - "handler": 1, - "name": "Error Log Rate alert", - "noDataState": "ok", - "notifications": [] - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 9, - "x": 0, - "y": 0 - }, - "id": 2, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(app_log_error_total[30s]) ", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "op": "gt", - "value": 5, - "visible": true - } - ], - "title": "Error Log Rate", - "type": "timeseries" - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 5 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "5m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "avg" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "0", - "frequency": "15s", - "handler": 1, - "name": "Warn Log Rate alert", - "noDataState": "ok", - "notifications": [] - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 9, - "y": 0 - }, - "id": 3, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(app_log_warn_total[30s]) ", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "op": "gt", - "value": 5, - "visible": true - } - ], - "title": "Warn Log Rate", - "type": "timeseries" - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 1 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "5m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "max" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "0", - "frequency": "15s", - "handler": 1, - "name": "Validator API Error Rate alert", - "noDataState": "ok", - "notifications": [] - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 9, - "x": 0, - "y": 6 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(core_validatorapi_request_error_total{endpoint!=\"proxy\"}[30s]) ", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "op": "gt", - "value": 1, - "visible": true - } - ], - "title": "Validator API Error Rate", - "type": "timeseries" - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 5 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "5m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "max" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "0s", - "frequency": "15s", - "handler": 1, - "name": "Proxy API Error Rate alert", - "noDataState": "ok", - "notifications": [] - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 9, - "y": 6 - }, - "id": 7, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(core_validatorapi_request_error_total{endpoint=\"proxy\"}[30s]) ", - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "op": "gt", - "value": 5, - "visible": true - } - ], - "title": "Proxy API Error Rate", - "type": "timeseries" - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 0.5 - ], - "type": "lt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "5m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "avg" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "0s", - "frequency": "30s", - "handler": 1, - "name": "Broadcast Duty Rate alert", - "noDataState": "ok", - "notifications": [] - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 9, - "x": 0, - "y": 12 - }, - "id": 8, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(core_bcast_broadcast_total[30s])", - "interval": "", - "legendFormat": "{{job}} - {{type}}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "op": "lt", - "value": 0.5, - "visible": true - } - ], - "title": "Broadcast Duty Rate", - "type": "timeseries" - }, - { - "alert": { - "alertRuleTags": {}, - "conditions": [ - { - "evaluator": { - "params": [ - 40 - ], - "type": "gt" - }, - "operator": { - "type": "and" - }, - "query": { - "params": [ - "A", - "5m", - "now" - ] - }, - "reducer": { - "params": [], - "type": "max" - }, - "type": "query" - } - ], - "executionErrorState": "alerting", - "for": "0s", - "frequency": "15s", - "handler": 1, - "name": "Outstanding Duty Count alert", - "noDataState": "ok", - "notifications": [] - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 9, - "y": 12 - }, - "id": 6, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "core_bcast_broadcast_total - core_scheduler_duty_total", - "interval": "", - "legendFormat": "{{job}} - {{type}}", - "refId": "A" - } - ], - "thresholds": [ - { - "colorMode": "critical", - "op": "gt", - "value": 40, - "visible": true - } - ], - "title": "Outstanding Duty Count", - "type": "timeseries" - } - ], - "schemaVersion": 35, - "style": "dark", - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-5m", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Alerts", - "uid": "a9mqsmrnk", - "version": 1, - "weekStart": "" -} diff --git a/grafana/dash_simnet.json b/grafana/dash_simnet.json deleted file mode 100644 index 40bdbbba2..000000000 --- a/grafana/dash_simnet.json +++ /dev/null @@ -1,950 +0,0 @@ -{ - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "target": { - "limit": 100, - "matchAny": false, - "tags": [], - "type": "dashboard" - }, - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "iteration": 1649349193420, - "links": [], - "liveNow": false, - "panels": [ - { - "collapsed": false, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 0 - }, - "id": 12, - "panels": [], - "repeat": "node", - "title": "$node", - "type": "row" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "continuous-BlPu" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 4, - "x": 0, - "y": 1 - }, - "id": 3, - "options": { - "colorMode": "background", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "vertical", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "textMode": "auto" - }, - "pluginVersion": "8.4.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "core_scheduler_current_slot{job=\"$node\"}", - "instant": true, - "interval": "", - "legendFormat": "Slot", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": false, - "expr": "core_scheduler_current_epoch{job=\"$node\"}", - "hide": false, - "instant": true, - "interval": "", - "legendFormat": "Epoch", - "refId": "B" - } - ], - "title": "Slot/Epoch", - "type": "stat" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "align": "auto", - "displayMode": "auto" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 4, - "x": 4, - "y": 1 - }, - "id": 19, - "options": { - "footer": { - "fields": "", - "reducer": [ - "sum" - ], - "show": false - }, - "frameIndex": 0, - "showHeader": false - }, - "pluginVersion": "8.4.4", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "(\n sum(app_git_commit{job=\"$node\"}) by (hash)\n)\n + on(job) group_left(version)\n(\n 0 * sum(app_version{job=\"$node\"}) by (version)\n)", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "B" - } - ], - "title": "Version Info", - "transformations": [ - { - "id": "labelsToFields", - "options": { - "mode": "rows" - } - } - ], - "type": "table" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 8, - "y": 1 - }, - "id": 13, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(app_log_error_total{job=\"$node\"}[30s]) ", - "interval": "", - "legendFormat": "{{topic}}", - "refId": "A" - } - ], - "title": "Errors by topic", - "type": "timeseries" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 4, - "w": 8, - "x": 16, - "y": 1 - }, - "id": 14, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "right" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(app_log_warn_total{job=\"$node\"}[30s]) ", - "interval": "", - "legendFormat": "{{topic}}", - "refId": "A" - } - ], - "title": "Warnings by topic", - "type": "timeseries" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 5 - }, - "id": 5, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(core_scheduler_duty_total{job=\"$node\"}[30s])", - "interval": "", - "legendFormat": "{{type}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(core_scheduler_current_epoch{job=\"$node\"}[30s]) * 0.2", - "hide": false, - "interval": "", - "legendFormat": "epoch boundary", - "refId": "B" - } - ], - "title": "Scheduled duties (started) by type", - "type": "timeseries" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 5 - }, - "id": 15, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "rate(core_validatorapi_request_latency_seconds_count{job=\"$node\"}[30s])", - "interval": "", - "legendFormat": "{{endpoint}}", - "refId": "A" - } - ], - "title": "Validator API requests rate", - "type": "timeseries" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 5 - }, - "id": 16, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "histogram_quantile(0.90, sum(rate(core_validatorapi_request_latency_seconds_bucket[30s])) by (le,endpoint)) ", - "interval": "", - "legendFormat": "{{endpoint}}", - "refId": "A" - } - ], - "title": "Validator API request latency (90%)", - "type": "timeseries" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "bars", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 0, - "y": 12 - }, - "id": 7, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(core_bcast_broadcast_total{job=\"$node\"}[30s]) ", - "interval": "", - "legendFormat": "{{type}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "increase(core_scheduler_current_epoch{job=\"$node\"}[30s]) * 0.2", - "hide": false, - "interval": "", - "legendFormat": "epoch boundry", - "refId": "B" - } - ], - "title": "Broadcast duties (completed) by type ", - "type": "timeseries" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 8, - "y": 12 - }, - "id": 17, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "rate(app_eth2_latency_seconds_count{job=\"$node\"}[30s]) ", - "interval": "", - "legendFormat": "{{endpoint}}", - "refId": "A" - } - ], - "title": "Beacon API requests rate", - "type": "timeseries" - }, - { - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 2, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 7, - "w": 8, - "x": 16, - "y": 12 - }, - "id": 18, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom" - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "PBFA97CFB590B2093" - }, - "exemplar": true, - "expr": "histogram_quantile(0.90, sum(rate(app_eth2_latency_seconds_bucket[30s])) by (le,endpoint)) ", - "interval": "", - "legendFormat": "{{endpoint}}", - "refId": "A" - } - ], - "title": "Beacon API request latency (90%)", - "type": "timeseries" - } - ], - "refresh": "30s", - "schemaVersion": 35, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "current": { - "selected": true, - "text": [ - "node0" - ], - "value": [ - "node0" - ] - }, - "hide": 0, - "includeAll": false, - "label": "Node", - "multi": true, - "name": "node", - "options": [ - { - "selected": true, - "text": "node0", - "value": "node0" - }, - { - "selected": false, - "text": "node1", - "value": "node1" - }, - { - "selected": false, - "text": "node2", - "value": "node2" - }, - { - "selected": false, - "text": "node3", - "value": "node3" - } - ], - "query": "node0,node1,node2,node3", - "queryValue": "", - "skipUrlSync": false, - "type": "custom" - } - ] - }, - "time": { - "from": "now-30m", - "to": "now" - }, - "timepicker": {}, - "timezone": "", - "title": "Simnet", - "uid": "B2zGKKs7k", - "version": 1, - "weekStart": "" -} diff --git a/grafana/dashboards.yml b/grafana/dashboards.yml deleted file mode 100644 index 6bbd5e73e..000000000 --- a/grafana/dashboards.yml +++ /dev/null @@ -1,8 +0,0 @@ -apiVersion: 1 - -providers: - - name: dashboards - type: file - updateIntervalSeconds: 30 - options: - path: /etc/dashboards diff --git a/grafana/datasource.yml b/grafana/datasource.yml deleted file mode 100644 index 878b0f29d..000000000 --- a/grafana/datasource.yml +++ /dev/null @@ -1,44 +0,0 @@ -# config file version -apiVersion: 1 - -# list of datasources that should be deleted from the database -deleteDatasources: - - name: Prometheus - orgId: 1 - -# list of datasources to insert/update depending -# whats available in the database -datasources: - # name of the datasource. Required - - name: Prometheus - # datasource type. Required - type: prometheus - # org id. will default to orgId 1 if not specified - orgId: 1 - # url - url: http://prometheus:9090 - # database password, if used - password: - # database user, if used - user: - # database name, if used - database: - # enable/disable basic auth - basicAuth: false - # enable/disable with credentials headers - withCredentials: - # mark as default datasource. Max one per org - isDefault: true - # fields that will be converted to json and stored in json_data - jsonData: - graphiteVersion: "1.1" - tlsAuth: false - tlsAuthWithCACert: false - # json object of data that will be encrypted. - secureJsonData: - tlsCACert: "..." - tlsClientCert: "..." - tlsClientKey: "..." - version: 1 - # allow users to edit datasources from the UI. - editable: true diff --git a/grafana/grafana.ini b/grafana/grafana.ini deleted file mode 100644 index 2ab0213ab..000000000 --- a/grafana/grafana.ini +++ /dev/null @@ -1,9 +0,0 @@ -[auth.anonymous] -enabled = true -org_role = Admin - -[log] -level = warn - -[unified_alerting] -enabled = false diff --git a/grafana/notifiers.yml b/grafana/notifiers.yml deleted file mode 100644 index be27b1dc6..000000000 --- a/grafana/notifiers.yml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: 1 - -notifiers: - - name: compose-webhook - type: webhook - uid: compose-webhook - org_id: 1 - is_default: true - send_reminder: false - frequency: 1s - disable_resolve_message: true - settings: - url: http://host.docker.internal:26354 - httpMethod: POST diff --git a/lighthouse/Dockerfile b/lighthouse/Dockerfile deleted file mode 100644 index 76ce08220..000000000 --- a/lighthouse/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM sigp/lighthouse:latest - -RUN apt-get update && apt-get install -y curl jq wget - -ENV YQ_VERSION=v4.23.1 -ENV YQ_BINARY=yq_linux_amd64 -RUN wget https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/${YQ_BINARY} -O /usr/bin/yq \ - && chmod +x /usr/bin/yq - -ENTRYPOINT ["/compose/lighthouse/run.sh"] diff --git a/lighthouse/run.sh b/lighthouse/run.sh deleted file mode 100755 index 6ae106fe2..000000000 --- a/lighthouse/run.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -while ! curl "http://${NODE}:16002/up" 2>/dev/null; do - echo "Waiting for http://${NODE}:16002/up to become available..." - sleep 5 -done - -echo "Creating testnet config" -rm -rf /tmp/testnet || true -mkdir /tmp/testnet/ -curl "http://${NODE}:16002/eth/v1/config/spec" | jq -r .data | yq -P > /tmp/testnet/config.yaml -echo "0" > /tmp/testnet/deploy_block.txt - -for f in /compose/"${NODE}"/keystore-*.json; do - echo "Importing key ${f}" - cat "$(echo "${f}" | sed 's/json/txt/')" | lighthouse account validator import \ - --testnet-dir "/tmp/testnet" \ - --stdin-inputs \ - --keystore "${f}" -done - - -echo "Starting lighthouse validator client for ${NODE}" -exec lighthouse validator \ - --testnet-dir "/tmp/testnet" \ - --beacon-node "http://${NODE}:16002" \ - --suggested-fee-recipient "0x0000000000000000000000000000000000000000" diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml deleted file mode 100644 index b8e615254..000000000 --- a/prometheus/prometheus.yml +++ /dev/null @@ -1,17 +0,0 @@ -global: - scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute. - evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute. - -scrape_configs: - - job_name: 'node0' - static_configs: - - targets: ['node0:16001'] - - job_name: 'node1' - static_configs: - - targets: ['node1:16001'] - - job_name: 'node2' - static_configs: - - targets: ['node2:16001'] - - job_name: 'node3' - static_configs: - - targets: ['node3:16001']