Monitoring and Logging
This section covers how to monitor the behaviour and performance of your validator once deployed.
Monitoring
The validator deployment includes a complete monitoring stack:
- Prometheus: Metrics collection (port 9090)
- Grafana: Visualization dashboards (port 3000)
- Watchtower: Automatic container updates (checks every 30 seconds)
Accessing Grafana
- Open your browser to
http://your-server-ip:3000
- Default credentials:
- Username:
admin
- Password:
admin
(you'll be prompted to change it)
- Username:
- Navigate to the "General" dashboard for validator metrics
The dashboard displays:
- Request latency percentiles
- Error rates
- Throughput metrics
- Resource utilization
Available Services and Ports
Service | Port | Purpose |
---|---|---|
Caddy (web) | 80, 443 | SSL/TLS termination and reverse proxy |
Grafana | 3000 | Monitoring dashboards |
Prometheus | 9090 | Metrics collection |
Proxy | 19100 | Internal validator proxy (not exposed externally) |
ScyllaDB | 9042 | Database (internal only) |
Logging
Logging is handled by Docker Compose, capturing stdout/stderr from all services.
Viewing Logs
# View all logs
docker compose logs
# View logs for specific service
docker compose logs web # Caddy web server
docker compose logs proxy # Validator proxy
docker compose logs scylla # ScyllaDB
docker compose logs shard # Validator shards (all replicas)
# Follow logs in real-time
docker compose logs -f
# View last 100 lines
docker compose logs --tail=100
# View logs for multiple services
docker compose logs web proxy
# View logs with timestamps
docker compose logs -t
Common Log Checks
# Check SSL certificate status
docker compose logs web | grep -i "certificate"
# Check for errors
docker compose logs | grep -i error
# Check ScyllaDB initialization
docker compose logs scylla | grep -i "started"
# Monitor shard health
docker compose logs shard | grep -i "health"
Log Rotation
Docker automatically rotates logs. To configure log rotation, add to your
docker-compose.yml
:
services:
proxy:
logging:
driver: 'json-file'
options:
max-size: '100m'
max-file: '10'