Panda Pulse
Panda Pulse is a comprehensive monitoring tool for Ethereum networks that checks node health and reports issues to Discord. The system runs automated checks against a Grafana instance configured with a Prometheus datasource to detect and alert on potential problems with client nodes.
- Primary Use Case: Monitoring client health on Ethereum testnets and devnets
- Target Users: Client developers, testnet operators, and Ethereum R&D teams
Overview
Panda Pulse helps maintain the health of Ethereum networks by:
- Automatically monitoring client nodes for issues
- Sending timely alerts to Discord channels
- Supporting both Consensus Layer (CL) and Execution Layer (EL) clients
- Providing customizable monitoring schedules
- Enabling targeted notifications through mentions
Command Categories
Panda Pulse offers several categories of commands:
- Build Commands: Trigger builds for clients and tools
- Check Commands: Manage monitoring alerts
- Mention Commands: Configure notification settings
- Hive Commands: Manage Hive test summaries
Build Commands
Trigger build of client images or tools
The build command is split into three subcommands:
For Consensus Layer clients
/build client-cl {client} {optional:repository} {optional:ref} {optional:docker_tag} {optional:build_args}
Parameters:
client
: The consensus client to build (e.g.,lighthouse
,prysm
,teku
,nimbus
,lodestar
)repository
: (Optional) Custom repository URL. Defaults to the client's standard repositoryref
: (Optional) Git branch or tag. Defaults to the client's standard branchdocker_tag
: (Optional) Custom Docker tag for the built imagebuild_args
: (Optional) Additional build arguments (currently supported bylighthouse
)
For Execution Layer clients
/build client-el {client} {optional:repository} {optional:ref} {optional:docker_tag} {optional:build_args}
Parameters:
client
: The execution client to build (e.g.,geth
,nethermind
,besu
,erigon
,reth
)repository
: (Optional) Custom repository URL. Defaults to the client's standard repositoryref
: (Optional) Git branch or tag. Defaults to the client's standard branchdocker_tag
: (Optional) Custom Docker tag for the built imagebuild_args
: (Optional) Additional build arguments
For tools and utilities
/build tool {workflow} {optional:repository} {optional:ref} {optional:docker_tag} {optional:build_args}
Parameters:
workflow
: The tool to build (e.g.,mev-rs
,reth-rbuilder
)repository
: (Optional) Custom repository URL. Defaults to the tool's standard repositoryref
: (Optional) Git branch or tag. Defaults to the tool's standard branchdocker_tag
: (Optional) Custom Docker tag for the built imagebuild_args
: (Optional) Additional build arguments (currently supported bymev-rs
,reth-rbuilder
)
Note:
- Users with any client team role or admin role can trigger builds for any client.
Check Commands
Register alerts for a new devnet
/checks register {network} {channel} {optional:client} {optional:schedule}
Parameters:
network
: The name of the network to monitorchannel
: The Discord channel where alerts should be sentclient
: (Optional) Specific client to monitor. If omitted, all clients will be monitoredschedule
: (Optional) When to run checks (in cron format). Defaults to 7am UTC
Note:
- The channel must be a text channel under the
bots
category - Each network can have multiple clients monitored
- Each client-network pair can only be registered once
Example:
/checks register pectra-devnet-8 #pectra-devnet-8-alerts prysm "0 9 * * *"
Deregister alerts for a devnet
/checks deregister {network} {optional:client}
Parameters:
network
: The name of the network to stop monitoringclient
: (Optional) Specific client to stop monitoring. If omitted, all clients will be deregistered
Example:
/checks deregister pectra-devnet-8 prysm
List all registered alerts
/checks list
This command displays all currently registered monitoring checks, organized by network and client.
Run a check manually
/checks run {network} {client}
Parameters:
network
: The name of the network to checkclient
: The client to check
This command is useful for testing or verifying fixes without waiting for the scheduled check.
Debug an alert
/checks debug {id}
Parameters:
id
: The ID of the alert to debug
This command provides detailed information about a specific alert, including the query used, thresholds, and current values.
Mention Commands
Enable mentions for a network/client
/mentions enable {network} {client}
Parameters:
network
: The network nameclient
: The client name
Note:
- By default, mentions are disabled for all clients/networks
- Even if mentions are enabled, users/roles need to be configured separately
- Users/roles configured for mentions will be tagged in every alert for the network/client
Disable mentions for a network/client
/mentions disable {network} {client}
Parameters:
network
: The network nameclient
: The client name
Add mentions for a specific network/client/user
/mentions add {network} {client} {user|role}
Parameters:
network
: The network nameclient
: The client nameuser|role
: The Discord user or role to mention
Remove mentions for a specific network/client/user
/mentions remove {network} {client} {user|role}
Parameters:
network
: The network nameclient
: The client nameuser|role
: The Discord user or role to remove from mentions
List all mentions configured for a network/client
/mentions list {network} {client}
Parameters:
network
: The network nameclient
: The client name
Hive Commands
Register Hive summary for a new devnet
/hive register {network} {channel} {optional:schedule}
Parameters:
network
: The name of the network for Hive summarieschannel
: The Discord channel where summaries should be sentschedule
: (Optional) When to run summaries (in cron format). Defaults to 7am UTC
Note:
- The channel must be a text channel
- Hive summaries provide aggregated test results for client compatibility
Deregister Hive summaries for a devnet
/hive deregister {network}
Parameters:
network
: The name of the network to stop Hive summaries for
List all registered Hive summaries
/hive list
This command displays all currently registered Hive summaries.
Run a Hive summary manually
/hive run {network}
Parameters:
network
: The name of the network to generate a Hive summary for
Permissions
Permissions in Panda Pulse are based on Discord roles in the EthR&D guild:
Role | Permissions |
---|---|
mod | Full access to all commands |
admin | Full access to all commands |
ef | Full access to all commands |
Client team roles | Access only to commands for their specific client |
For example, a user with the prysmatic
role can only interact with commands for the prysm
client.