Skip to main content

Panda Pulse

Repository
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 repository
  • ref: (Optional) Git branch or tag. Defaults to the client's standard branch
  • docker_tag: (Optional) Custom Docker tag for the built image
  • build_args: (Optional) Additional build arguments (currently supported by lighthouse)

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 repository
  • ref: (Optional) Git branch or tag. Defaults to the client's standard branch
  • docker_tag: (Optional) Custom Docker tag for the built image
  • build_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 repository
  • ref: (Optional) Git branch or tag. Defaults to the tool's standard branch
  • docker_tag: (Optional) Custom Docker tag for the built image
  • build_args: (Optional) Additional build arguments (currently supported by mev-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 monitor
  • channel: The Discord channel where alerts should be sent
  • client: (Optional) Specific client to monitor. If omitted, all clients will be monitored
  • schedule: (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 monitoring
  • client: (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 check
  • client: 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 name
  • client: 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 name
  • client: The client name
Add mentions for a specific network/client/user
/mentions add {network} {client} {user|role}

Parameters:

  • network: The network name
  • client: The client name
  • user|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 name
  • client: The client name
  • user|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 name
  • client: 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 summaries
  • channel: The Discord channel where summaries should be sent
  • schedule: (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:

RolePermissions
modFull access to all commands
adminFull access to all commands
efFull access to all commands
Client team rolesAccess only to commands for their specific client

For example, a user with the prysmatic role can only interact with commands for the prysm client.