Commit 884876d9 authored by protolambda's avatar protolambda Committed by GitHub

interop-devnet: remove in favor of kurtosis devnet (#13841)

parent 477dbc66
#!/bin/bash
set -eu
export OP_INTEROP_MNEMONIC="test test test test test test test test test test test junk"
log_info() { echo "[INFO] $1"; }
log_error() { echo "[ERROR] $1" >&2; }
# Run this with workdir set as root of the repo
if [ -f "../mise.toml" ]; then
log_info "Running create-chains script."
else
log_error "Cannot run create-chains script, must be in interop-devnet dir, but currently in:"
pwd
exit 1
fi
# Navigate to repository root
cd ..
# Check if already created
if [ -d ".devnet-interop" ]; then
log_error "Already created chains. Cleanup .devnet-interop dir if you want to force a re-creation."
exit 1
else
log_info "Creating new interop devnet chain configs"
fi
go run ./op-node/cmd interop dev-setup \
--artifacts-dir=packages/contracts-bedrock/forge-artifacts \
--foundry-dir=packages/contracts-bedrock \
--l1.chainid=900100 \
--l2.chainids=900200,900201 \
--out-dir=".devnet-interop" \
--log.format=logfmt \
--log.level=info
# create L1 CL genesis
eth2-testnet-genesis deneb \
--config=./ops-bedrock/beacon-data/config.yaml \
--preset-phase0=minimal \
--preset-altair=minimal \
--preset-bellatrix=minimal \
--preset-capella=minimal \
--preset-deneb=minimal \
--eth1-config=.devnet-interop/genesis/l1/genesis.json \
--state-output=.devnet-interop/genesis/l1/beaconstate.ssz \
--tranches-dir=.devnet-interop/genesis/l1/tranches \
--mnemonics=./ops-bedrock/mnemonics.yaml \
--eth1-withdrawal-address=0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
--eth1-match-genesis-time
log_info "Writing env files now..."
# write env files for each L2 service
chain_env=".devnet-interop/env/l2/900200"
mkdir -p "$chain_env"
key_cmd="go run ./op-node/cmd interop devkey secret --domain=chain-operator --chainid=900200"
# op-node
echo "OP_NODE_P2P_SEQUENCER_KEY=$($key_cmd --name=sequencer-p2p)" >> "$chain_env/op-node.env"
# proposer
echo "OP_PROPOSER_PRIVATE_KEY=$($key_cmd --name=proposer)" >> "$chain_env/op-proposer.env"
echo "OP_PROPOSER_GAME_FACTORY_ADDRESS=$(jq -r .DisputeGameFactoryProxy .devnet-interop/deployments/l2/900200/addresses.json)" >> "$chain_env/op-proposer.env"
# batcher
echo "OP_BATCHER_PRIVATE_KEY=$($key_cmd --name=batcher)" >> "$chain_env/op-batcher.env"
chain_env=".devnet-interop/env/l2/900201"
mkdir -p "$chain_env"
key_cmd="go run ./op-node/cmd interop devkey secret --domain=chain-operator --chainid=900201"
# op-node
echo "OP_NODE_P2P_SEQUENCER_KEY=$($key_cmd --name=sequencer-p2p)" >> "$chain_env/op-node.env"
# proposer
echo "OP_PROPOSER_PRIVATE_KEY=$($key_cmd --name=proposer)" >> "$chain_env/op-proposer.env"
echo "OP_PROPOSER_GAME_FACTORY_ADDRESS=$(jq -r .DisputeGameFactoryProxy .devnet-interop/deployments/l2/900201/addresses.json)" >> "$chain_env/op-proposer.env"
# batcher
echo "OP_BATCHER_PRIVATE_KEY=$($key_cmd --name=batcher)" >> "$chain_env/op-batcher.env"
log_info "Interop devnet setup is complete!"
{
"dependencies": {
"900200": {
"chainIndex": "900200",
"activationTime": 0,
"historyMinTime": 0
},
"900201": {
"chainIndex": "900201",
"activationTime": 0,
"historyMinTime": 0
}
}
}
# This Compose file is expected to be used with the devnet-up.sh script.
# The volumes below mount the configs generated by the script into each
# service.
volumes:
l1_data:
l1_bn_data:
l1_vc_data:
l2_a_data:
safedb_a_data:
l2_b_data:
safedb_b_data:
supervisor_data:
op_log_a:
op_log_b:
services:
l1:
build:
context: ../ops-bedrock
dockerfile: l1-geth.Dockerfile
ports:
- "8545:8545"
- "8546:8546"
- "7060:6060"
volumes:
- "l1_data:/db"
- "${PWD}/../.devnet-interop/genesis/l1/genesis.json:/genesis.json"
- "${PWD}/../ops-bedrock/test-jwt-secret.txt:/config/jwt-secret.txt"
environment:
GETH_MINER_RECOMMIT: 100ms
l1-bn:
depends_on:
- l1
build:
context: ../ops-bedrock
dockerfile: l1-lighthouse.Dockerfile
ports:
- "9000:9000"
- "5052:5052"
volumes:
- "l1_bn_data:/db"
- "${PWD}/../ops-bedrock/test-jwt-secret.txt:/config/jwt-secret.txt"
- "${PWD}/../ops-bedrock/beacon-data/config.yaml:/genesis/config.yaml"
- "${PWD}/../ops-bedrock/beacon-data/deposit_contract_block.txt:/genesis/deposit_contract_block.txt"
- "${PWD}/../.devnet-interop/genesis/l1/beaconstate.ssz:/genesis/genesis.ssz"
environment:
LH_EXECUTION_ENDPOINT: "http://l1:8551"
entrypoint:
- "/bin/sh"
- "/entrypoint-bn.sh"
l1-vc:
depends_on:
- l1
- l1-bn
build:
context: ../ops-bedrock
dockerfile: l1-lighthouse.Dockerfile
volumes:
- "l1_vc_data:/db"
- "${PWD}/../ops-bedrock/beacon-data/data/keys:/validator_setup/validators"
- "${PWD}/../ops-bedrock/beacon-data/data/secrets:/validator_setup/secrets"
- "${PWD}/../ops-bedrock/beacon-data/config.yaml:/genesis/config.yaml"
- "${PWD}/../ops-bedrock/beacon-data/deposit_contract_block.txt:/genesis/deposit_contract_block.txt"
- "${PWD}/../.devnet-interop/genesis/l1/beaconstate.ssz:/genesis/genesis.ssz"
environment:
LH_BEACON_NODES: "http://l1-bn:5052/"
entrypoint:
- "/bin/sh"
- "/entrypoint-vc.sh"
op-supervisor:
depends_on:
- l1
build:
context: ../
dockerfile: ops/docker/op-stack-go/Dockerfile
target: op-supervisor-target
ports:
- "9045:8545"
volumes:
- "supervisor_data:/db"
- "./depset.json:/depset.json"
- "${PWD}/../ops-bedrock/test-jwt-secret.txt:/config/jwt-secret.txt"
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-supervisor:devnet
command: >
op-supervisor
--datadir="/db"
--dependency-set="/depset.json"
--rpc.addr="0.0.0.0"
--rpc.port=8545
--rpc.enable-admin
--l1-rpc="http://l1:8545"
--l2-consensus.nodes="http://op-node-a:9645,http://op-node-b:9645"
--l2-consensus.jwt-secret=/config/jwt-secret.txt
environment:
OP_SUPERVISOR_METRICS_ENABLED: "true"
l2-a:
depends_on:
- op-supervisor
build:
context: ../ops-bedrock/
dockerfile: l2-op-geth-interop.Dockerfile
ports:
- "9145:8545"
- "8160:6060"
volumes:
- "l2_a_data:/db"
- "${PWD}/../.devnet-interop/genesis/l2/900200/genesis.json:/genesis.json"
- "${PWD}/../ops-bedrock/test-jwt-secret.txt:/config/jwt-secret.txt"
entrypoint: # pass the L2 specific flags by overriding the entry-point and adding extra arguments
- "/bin/sh"
- "/entrypoint.sh"
environment:
GETH_MINER_RECOMMIT: 100ms
GETH_ROLLUP_INTEROPRPC: "ws://op-supervisor:8545"
l2-b:
depends_on:
- op-supervisor
build:
context: ../ops-bedrock/
dockerfile: l2-op-geth-interop.Dockerfile
ports:
- "9245:8545"
- "8260:6060"
volumes:
- "l2_b_data:/db"
- "${PWD}/../.devnet-interop/genesis/l2/900201/genesis.json:/genesis.json"
- "${PWD}/../ops-bedrock/test-jwt-secret.txt:/config/jwt-secret.txt"
entrypoint: # pass the L2 specific flags by overriding the entry-point and adding extra arguments
- "/bin/sh"
- "/entrypoint.sh"
environment:
GETH_MINER_RECOMMIT: 100ms
GETH_ROLLUP_INTEROPRPC: "ws://op-supervisor:8545"
op-node-a:
depends_on:
- l1
- l1-bn
- l1-vc
- l2-a
- op-supervisor
build:
context: ../
dockerfile: ops/docker/op-stack-go/Dockerfile
target: op-node-target
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:devnet
command: >
op-node
--l1=ws://l1:8546
--l1.beacon=http://l1-bn:5052
--l1.epoch-poll-interval=12s
--l1.http-poll-interval=6s
--l2=http://l2-a:8551
--l2.jwt-secret=/config/jwt-secret.txt
--interop.supervisor=http://op-supervisor:8545
--interop.rpc.addr=0.0.0.0
--interop.rpc.port=9645
--interop.jwt-secret=/config/jwt-secret.txt
--sequencer.enabled
--sequencer.l1-confs=0
--verifier.l1-confs=0
--rollup.config=/rollup.json
--rpc.addr=0.0.0.0
--rpc.port=8545
--p2p.listen.ip=0.0.0.0
--p2p.listen.tcp=9003
--p2p.listen.udp=9003
--p2p.scoring.peers=light
--p2p.ban.peers=true
--metrics.enabled
--metrics.addr=0.0.0.0
--metrics.port=7300
--pprof.enabled
--rpc.enable-admin
--safedb.path=/db
ports:
- "7145:8545"
- "9103:9003"
- "7100:7300"
- "6160:6060"
- "9645:9645"
volumes:
- "safedb_a_data:/db"
- "${PWD}/../ops-bedrock/test-jwt-secret.txt:/config/jwt-secret.txt"
- "${PWD}/../.devnet-interop/genesis/l2/900200/rollup.json:/rollup.json"
- op_log_a:/op_log
env_file:
- "${PWD}/../.devnet-interop/env/l2/900200/op-node.env"
op-node-b:
depends_on:
- l1
- l1-bn
- l1-vc
- l2-b
- op-supervisor
build:
context: ../
dockerfile: ops/docker/op-stack-go/Dockerfile
target: op-node-target
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:devnet
command: >
op-node
--l1=ws://l1:8546
--l1.beacon=http://l1-bn:5052
--l1.epoch-poll-interval=12s
--l1.http-poll-interval=6s
--l2=http://l2-b:8551
--l2.jwt-secret=/config/jwt-secret.txt
--interop.supervisor=http://op-supervisor:8545
--interop.rpc.addr=0.0.0.0
--interop.rpc.port=9645
--interop.jwt-secret=/config/jwt-secret.txt
--sequencer.enabled
--sequencer.l1-confs=0
--verifier.l1-confs=0
--rollup.config=/rollup.json
--rpc.addr=0.0.0.0
--rpc.port=8545
--p2p.listen.ip=0.0.0.0
--p2p.listen.tcp=9003
--p2p.listen.udp=9003
--p2p.scoring.peers=light
--p2p.ban.peers=true
--metrics.enabled
--metrics.addr=0.0.0.0
--metrics.port=7300
--pprof.enabled
--rpc.enable-admin
--safedb.path=/db
ports:
- "7245:8545"
- "9203:9003"
- "7200:7300"
- "6260:6060"
- "9645:9645"
volumes:
- "safedb_b_data:/db"
- "${PWD}/../ops-bedrock/test-jwt-secret.txt:/config/jwt-secret.txt"
- "${PWD}/../.devnet-interop/genesis/l2/900201/rollup.json:/rollup.json"
- op_log_b:/op_log
env_file:
- "${PWD}/../.devnet-interop/env/l2/900201/op-node.env"
op-proposer-a:
depends_on:
- l1
- op-node-a
build:
context: ../
dockerfile: ops/docker/op-stack-go/Dockerfile
target: op-proposer-target
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:devnet
ports:
- "6162:6060"
- "7102:7300"
- "6146:8545"
environment:
OP_PROPOSER_L1_ETH_RPC: http://l1:8545
OP_PROPOSER_ROLLUP_RPC: http://op-node-a:8545
OP_PROPOSER_POLL_INTERVAL: 1s
OP_PROPOSER_NUM_CONFIRMATIONS: 1
OP_PROPOSER_GAME_TYPE: "254"
OP_PROPOSER_PROPOSAL_INTERVAL: "12s"
OP_PROPOSER_PPROF_ENABLED: "true"
OP_PROPOSER_METRICS_ENABLED: "true"
OP_PROPOSER_ALLOW_NON_FINALIZED: "true"
OP_PROPOSER_RPC_ENABLE_ADMIN: "true"
env_file:
- "${PWD}/../.devnet-interop/env/l2/900200/op-proposer.env"
op-proposer-b:
depends_on:
- l1
- op-node-b
build:
context: ../
dockerfile: ops/docker/op-stack-go/Dockerfile
target: op-proposer-target
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-proposer:devnet
ports:
- "6262:6060"
- "7202:7300"
- "6246:8545"
environment:
OP_PROPOSER_L1_ETH_RPC: http://l1:8545
OP_PROPOSER_ROLLUP_RPC: http://op-node-b:8545
OP_PROPOSER_POLL_INTERVAL: 1s
OP_PROPOSER_NUM_CONFIRMATIONS: 1
OP_PROPOSER_GAME_TYPE: "254"
OP_PROPOSER_PROPOSAL_INTERVAL: "12s"
OP_PROPOSER_PPROF_ENABLED: "true"
OP_PROPOSER_METRICS_ENABLED: "true"
OP_PROPOSER_ALLOW_NON_FINALIZED: "true"
OP_PROPOSER_RPC_ENABLE_ADMIN: "true"
env_file:
- "${PWD}/../.devnet-interop/env/l2/900201/op-proposer.env"
op-batcher-a:
depends_on:
- l1
- l2-a
- op-node-a
build:
context: ../
dockerfile: ops/docker/op-stack-go/Dockerfile
target: op-batcher-target
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:devnet
ports:
- "6161:6060"
- "7101:7300"
- "6145:8545"
environment:
OP_BATCHER_L1_ETH_RPC: http://l1:8545
OP_BATCHER_L2_ETH_RPC: http://l2-a:8545
OP_BATCHER_ROLLUP_RPC: http://op-node-a:8545
OP_BATCHER_MAX_CHANNEL_DURATION: 2
OP_BATCHER_SUB_SAFETY_MARGIN: 4 # SWS is 15, ChannelTimeout is 40
OP_BATCHER_POLL_INTERVAL: 1s
OP_BATCHER_NUM_CONFIRMATIONS: 1
OP_BATCHER_PPROF_ENABLED: "true"
OP_BATCHER_METRICS_ENABLED: "true"
OP_BATCHER_RPC_ENABLE_ADMIN: "true"
OP_BATCHER_BATCH_TYPE:
OP_BATCHER_THROTTLE_INTERVAL: 0
# uncomment to use blobs
# OP_BATCHER_DATA_AVAILABILITY_TYPE: blobs
env_file:
- "${PWD}/../.devnet-interop/env/l2/900200/op-batcher.env"
op-batcher-b:
depends_on:
- l1
- l2-b
- op-node-b
build:
context: ../
dockerfile: ops/docker/op-stack-go/Dockerfile
target: op-batcher-target
image: us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:devnet
ports:
- "6261:6060"
- "7201:7300"
- "6245:8545"
environment:
OP_BATCHER_L1_ETH_RPC: http://l1:8545
OP_BATCHER_L2_ETH_RPC: http://l2-b:8545
OP_BATCHER_ROLLUP_RPC: http://op-node-b:8545
OP_BATCHER_MAX_CHANNEL_DURATION: 2
OP_BATCHER_SUB_SAFETY_MARGIN: 4 # SWS is 15, ChannelTimeout is 40
OP_BATCHER_POLL_INTERVAL: 1s
OP_BATCHER_NUM_CONFIRMATIONS: 1
OP_BATCHER_PPROF_ENABLED: "true"
OP_BATCHER_METRICS_ENABLED: "true"
OP_BATCHER_RPC_ENABLE_ADMIN: "true"
OP_BATCHER_BATCH_TYPE:
OP_BATCHER_THROTTLE_INTERVAL: 0
# uncomment to use blobs
# OP_BATCHER_DATA_AVAILABILITY_TYPE: blobs
env_file:
- "${PWD}/../.devnet-interop/env/l2/900201/op-batcher.env"
grafana:
image: grafana/grafana:11.1.0
restart: unless-stopped
env_file:
- monitoring/grafana.env
volumes:
- ./monitoring/grafana/provisioning/:/etc/grafana/provisioning/:ro
- ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards
# - grafana_data:/var/lib/grafana
ports:
- 3300:3000
prometheus:
image: prom/prometheus:latest
restart: unless-stopped
volumes:
- ./monitoring/prometheus:/etc/prometheus
# - prometheus_data:/prometheus
ports:
- 3090:9090
command: --config.file=/etc/prometheus/prometheus.yml --log.level=debug
loki:
image: grafana/loki:3.1.1
restart: unless-stopped
volumes:
- ./monitoring/loki:/etc/loki
ports:
- 3200:3200
command: -config.file=/etc/loki/config.yaml
promtail:
image: grafana/promtail:3.1.1
restart: unless-stopped
volumes:
# uncomment to scrape system logs
# - /var/log:/var/log
- ./monitoring/promtail:/etc/promtail
- /var/run/docker.sock:/var/run/docker.sock # Mount Docker socket to read container logs
command: -config.file=/etc/promtail/config.yaml
devnet-setup:
bash create-chains.sh
devnet-build-images:
PWD="$(pwd)" DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 \
docker compose build --progress plain \
--build-arg GIT_COMMIT={git_commit} \
--build-arg GIT_DATE={git_date}
devnet-up:
docker compose up -d l1 l1-bn l1-vc
docker compose up -d \
op-supervisor \
op-node-a op-batcher-a op-proposer-a \
op-node-b op-batcher-b op-proposer-b
devnet-down:
# stops services, does not remove containers/networks
docker compose stop
devnet-metrics-up:
docker compose up -d prometheus grafana loki promtail
devnet-metrics-down:
docker compose down -d prometheus grafana loki promtail
devnet-clean:
# Stops services, and removes containers/networks
docker compose down
# Now manually clean up the related images and volumes
# Note: `justfile` interprets the curly brackets. So we escape them, by wrapping it with more, as a string, like Jinja2.
docker image ls 'interop-devnet*' --format='{{ '{{.Repository}}' }}' | xargs -r docker rmi
docker volume ls --filter name=interop-devnet --format='{{ '{{.Name}}' }}' | xargs -r docker volume rm
# docker compose down needs the env files before being able to shut down, so remove the devnet config resources last
rm -rf ../.devnet-interop
devnet-logs:
docker compose logs -f
GF_SECURITY_ADMIN_PASSWORD=admin
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "grafana",
"uid": "-- Grafana --"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"links": [],
"panels": [
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 31,
"panels": [],
"title": "Logs",
"type": "row"
},
{
"datasource": {
"type": "loki",
"uid": "loki-datasource"
},
"gridPos": {
"h": 10,
"w": 24,
"x": 0,
"y": 1
},
"id": 24,
"options": {
"dedupStrategy": "none",
"enableLogDetails": true,
"prettifyLogMessage": false,
"showCommonLabels": false,
"showLabels": false,
"showTime": false,
"sortOrder": "Descending",
"wrapLogMessage": false
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "loki-datasource"
},
"expr": "{container=\"ops-bedrock-op-batcher-1\"}",
"queryType": "range",
"refId": "A"
}
],
"title": "Batcher Logs",
"type": "logs"
},
{
"datasource": {
"type": "loki",
"uid": "loki-datasource"
},
"gridPos": {
"h": 10,
"w": 24,
"x": 0,
"y": 11
},
"id": 32,
"options": {
"dedupStrategy": "none",
"enableLogDetails": true,
"prettifyLogMessage": false,
"showCommonLabels": false,
"showLabels": false,
"showTime": false,
"sortOrder": "Descending",
"wrapLogMessage": false
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "loki-datasource"
},
"editorMode": "code",
"expr": "{container=\"ops-bedrock-op-proposer-1\"}",
"queryType": "range",
"refId": "A"
}
],
"title": "Proposer Logs",
"type": "logs"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 21
},
"id": 14,
"panels": [],
"title": "Batcher",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 0,
"y": 22
},
"id": 20,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "table",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_pending_blocks_count",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "pending_blocks_count {{stage}}",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Number of pending blocks, not added to a channel yet.",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 12,
"y": 22
},
"id": 19,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_input_bytes",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "input {{stage}}",
"range": true,
"refId": "A",
"useBackend": false
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_output_bytes",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "output",
"range": true,
"refId": "B",
"useBackend": false
}
],
"title": "Total number of input/output bytes per channel.",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 0,
"y": 30
},
"id": 17,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_pending_blocks_bytes_total",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "A",
"useBackend": false
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"exemplar": false,
"expr": "op_batcher_default_pending_blocks_bytes_current",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "B",
"useBackend": false
}
],
"title": "Total size of transactions in pending blocks as they are fetched from L2",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 12,
"y": 30
},
"id": 16,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_blocks_added_count",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Total number of blocks added to current channel.",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 0,
"y": 38
},
"id": 18,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_channel_num_frames",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Total number of frames of closed channel.",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 12,
"x": 12,
"y": 38
},
"id": 25,
"interval": "2s",
"options": {
"displayMode": "basic",
"maxVizHeight": 300,
"minVizHeight": 16,
"minVizWidth": 8,
"namePlacement": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [],
"fields": "",
"values": false
},
"showUnfilled": true,
"sizing": "auto",
"valueMode": "color"
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_blob_used_bytes_bucket",
"format": "heatmap",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": false,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "B",
"useBackend": false
}
],
"title": "Blob sizes",
"type": "bargauge"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 50
},
"id": 26,
"panels": [],
"title": "Batcher txmgr",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 0,
"y": 51
},
"id": 21,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_txmgr_last_confirm_unix",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "A",
"useBackend": false
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_txmgr_last_publish_unix",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "B",
"useBackend": false
}
],
"title": "Batcher Tx Publish/Confirm Times",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"description": "TODO: batcher_tx_total is 2x txs sent b/c of bug. See https://github.com/ethereum-optimism/optimism/pull/11438",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 12,
"y": 51
},
"id": 15,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_batcher_tx_total",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "A",
"useBackend": false
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_txmgr_confirm_total",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "B",
"useBackend": false
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_txmgr_current_nonce",
"fullMetaSearch": false,
"hide": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "C",
"useBackend": false
}
],
"title": "Batcher Txs",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 0,
"y": 59
},
"id": 23,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_txmgr_pending_txs",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Batcher Pending Txs",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": 8,
"w": 12,
"x": 12,
"y": 59
},
"id": 22,
"interval": "2s",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_txmgr_tx_confirmed_latency_ms",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "{{__name__}}",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Tx confirmation latency",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 67
},
"id": 6,
"panels": [],
"title": "Sequencer",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 5,
"x": 0,
"y": 68
},
"id": 7,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 54
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_node_default_refs_number{type=\"l2_unsafe\", layer=\"l2\"}",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "L2 Unsafe Block",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 5,
"x": 5,
"y": 68
},
"id": 10,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 54
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_node_default_refs_number{type=\"l2_safe\", layer=\"l2\"}",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "L2 Safe Block",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 5,
"x": 10,
"y": 68
},
"id": 9,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 54
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_node_default_refs_number{type=\"l2_finalized\", layer=\"l2\"}",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "L2 Finalized Block",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": [
{
"matcher": {
"id": "byFrameRefID",
"options": "A"
},
"properties": [
{
"id": "displayName",
"value": "Balance"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 9,
"x": 15,
"y": 68
},
"id": 13,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hoverProximity": -46,
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "rate(op_node_default_l1_reorg_depth_count[$__rate_interval])",
"fullMetaSearch": false,
"includeNullMetadata": false,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "L1 Reorg Count",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 5,
"x": 0,
"y": 72
},
"id": 8,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 54
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_node_default_refs_number{type=\"l1_head\"}",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "L1 Head",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 5,
"x": 5,
"y": 72
},
"id": 11,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 54
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_node_default_refs_number{type=\"l1_safe\"}",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "L1 Safe Block",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 5,
"x": 10,
"y": 72
},
"id": 12,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 54
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_node_default_refs_number{type=\"l1_finalized\"}",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "L1 Finalized Block",
"type": "stat"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 76
},
"id": 5,
"panels": [],
"title": "Balances",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 4,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 0.5
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 77
},
"id": 3,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 54
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_balance",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Batcher Balance",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 4,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "yellow",
"value": 1
},
{
"color": "green",
"value": 1
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
"x": 0,
"y": 80
},
"id": 4,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 54
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "11.1.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_proposer_default_balance",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Proposer Balance",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": [
{
"matcher": {
"id": "byFrameRefID",
"options": "A"
},
"properties": [
{
"id": "displayName",
"value": "Balance"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 83
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hoverProximity": -46,
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_batcher_default_balance",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Batcher Balance",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": 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": [
{
"matcher": {
"id": "byFrameRefID",
"options": "A"
},
"properties": [
{
"id": "displayName",
"value": "Balance"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 83
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "ddshms3dlineoe"
},
"disableTextWrap": false,
"editorMode": "builder",
"expr": "op_proposer_default_balance",
"fullMetaSearch": false,
"includeNullMetadata": true,
"instant": false,
"legendFormat": "__auto",
"range": true,
"refId": "A",
"useBackend": false
}
],
"title": "Proposer Balance",
"type": "timeseries"
}
],
"refresh": "10s",
"schemaVersion": 39,
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-5m",
"to": "now"
},
"timepicker": {},
"timezone": "browser",
"title": "OP Stack Compose",
"uid": "ddshn0bgt86ioc",
"version": 1,
"weekStart": ""
}
apiVersion: 1
providers:
- name: 'default'
orgId: 1
folder: ''
type: file
disableDeletion: true
editable: true
options:
path: /var/lib/grafana/dashboards
apiVersion: 1
deleteDatasources:
- name: "Prometheus"
datasources:
- access: "proxy"
editable: true
is_default: true
name: "Prometheus"
uid: "ddshms3dlineoe"
org_id: 1
type: "prometheus"
url: "http://prometheus:9090"
version: 1
- access: "proxy"
editable: true
name: "Loki"
uid: "loki-datasource"
org_id: 1
type: "loki"
url: "http://loki:3200"
version: 1
auth_enabled: false
server:
http_listen_port: 3200
common:
instance_addr: 127.0.0.1
path_prefix: /loki
storage:
filesystem:
chunks_directory: /loki/chunks
rules_directory: /loki/rules
replication_factor: 1
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2020-10-24
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
analytics:
reporting_enabled: false
global:
scrape_interval: 4s
evaluation_interval: 15s
scrape_configs:
- job_name: "l1-geth"
static_configs:
- targets: ["l1:6060"]
metrics_path: /debug/metrics/prometheus
- job_name: "l2-a-geth"
static_configs:
- targets: ["l2-a:6060"]
metrics_path: /debug/metrics/prometheus
- job_name: "l2-b-geth"
static_configs:
- targets: ["l2-b:6060"]
metrics_path: /debug/metrics/prometheus
- job_name: "op-node-a"
static_configs:
- targets: ["op-node-a:7300"]
- job_name: "op-node-b"
static_configs:
- targets: ["op-node-b:7300"]
- job_name: "op-batcher-a"
static_configs:
- targets: ["op-batcher-a:7300"]
- job_name: "op-batcher-b"
static_configs:
- targets: ["op-batcher-b:7300"]
- job_name: "op-proposer-a"
static_configs:
- targets: ["op-proposer-a:7300"]
- job_name: "op-proposer-b"
static_configs:
- targets: ["op-proposer-b:7300"]
- job_name: "op-supervisor"
static_configs:
- targets: ["op-supervisor:7300"]
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3200/loki/api/v1/push
scrape_configs:
# Uncomment to scrape system logs
# - job_name: system
# static_configs:
# - targets:
# - localhost
# labels:
# job: varlogs
# __path__: /var/log/*log
# This scrapes docker container logs
# copied from https://stackoverflow.com/questions/74776432/with-promtail-how-do-i-only-keep-log-messages-for-specified-docker-containers
- job_name: docker
docker_sd_configs:
- host: unix:///var/run/docker.sock
filters:
- name: name
# Filter logging to just our containers
values: ["op-batcher-*", "op-proposer-*", "op-node-*", "op-supervisor-*", "l1-*", "l1-bn-*", "l1-vc-*", "l2-a-*", "l2-b-*"]
relabel_configs:
- source_labels: ["__meta_docker_container_name"]
regex: "/(.*)"
target_label: "container"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment