panda-pulse

module
v0.0.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2025 License: GPL-3.0

README

panda-pulse 🐼

A monitoring tool for Ethereum networks that checks node health and reports issues to Discord.

The checks are run against a Grafana instance, which is configured with a Prometheus datasource. The checks themselves are rather specific to the custom Prometheus metrics ethPandaOps has setup, so your mileage may vary as a public user.

Quick Start

docker run -it \
  -e GRAFANA_SERVICE_TOKEN=your_token \
  -e DISCORD_BOT_TOKEN=your_token \
  -e AWS_ACCESS_KEY_ID=your_key \
  -e AWS_SECRET_ACCESS_KEY=your_secret \
  -e S3_BUCKET=your_bucket \
  ethpandaops/panda-pulse:latest

Bot Commands

The Discord bot responds to the following slash commands:

  • /checks list {optional:network} - List out all checks registered
  • /checks register {network} {channel} {optional:client} - Register checks for a network in a given channel
  • /checks deregister {network} {optional:client} - Deregister checks for a network
  • /checks debug {id} - Shows debug information for a check
  • /checks run {network} {client} - Run a manual check for a network and client
Local Development with Localstack

A docker-compose setup is provided for local development using Localstack:

docker-compose up s3  # Starts localstack

Configuration

Required Environment Variables
  • GRAFANA_SERVICE_TOKEN: Grafana service account token
  • DISCORD_BOT_TOKEN: Discord bot token
  • AWS_ACCESS_KEY_ID: S3 access key
  • AWS_SECRET_ACCESS_KEY: S3 secret key
  • S3_BUCKET: S3 bucket name
Optional Environment Variables
  • GRAFANA_BASE_URL: Grafana instance URL
  • PROMETHEUS_DATASOURCE_ID: Grafana Prometheus datasource ID
  • S3_BUCKET_PREFIX: Prefix for S3 objects
  • AWS_REGION: S3 region (default: us-east-1)
  • AWS_ENDPOINT_URL: Custom S3 endpoint (eg: for localstack or non-AWS buckets)
  • METRICS_ADDRESS: Prometheus metrics endpoint (default: :9091)
  • HEALTH_CHECK_ADDRESS: Health check endpoint (default: :9191)

Directories

Path Synopsis
pkg
discord/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
grafana/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL