A monitoring tool for Ethereum networks that checks node health and reports issues to Discord. The system integrates with Grafana/Prometheus for metrics collection, uses AWS S3 for data storage, and provides Discord bot commands for network monitoring management.
Claude MUST read the .cursor/rules/project_architecture.mdc file before making any structural changes to the project.
Claude MUST read the .cursor/rules/code_standards.mdc file before writing any code in this project.
Claude MUST read the .cursor/rules/development_workflow.mdc file before making changes to build, test, or deployment configurations.
Individual components have their own CLAUDE.md files with component-specific rules. Always check for and read component-level documentation when working on specific parts of the codebase.
- Service: Main application orchestration (
pkg/service/) - Analyzer: Health check processing (
pkg/analyzer/) - Cartographoor: Client management (
pkg/cartographoor/) - Checks: Health check implementations (
pkg/checks/) - Discord Bot: Discord integration (
pkg/discord/) - Store: Data persistence with S3 (
pkg/store/)
- Go 1.24 with standard library patterns
- Discord Bot API for user interaction
- Grafana/Prometheus for metrics collection
- AWS S3 for data storage
- Docker for containerization
Essential configuration via environment variables:
GRAFANA_SERVICE_TOKEN: Grafana API accessDISCORD_BOT_TOKEN: Discord bot authenticationAWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY: S3 accessS3_BUCKET: Storage bucket name
- Run tests:
go test ./... - Integration tests use testcontainers
- Mocks generated with uber-go/mock
- Local development with localstack for S3