Skip to content

Monitoring & Logging

Logging System

The Hereby Platform uses Pino logger with structured JSON output.

Log Levels

LevelPurpose
debugDetailed debugging information
infoGeneral operational info (default)
warnWarnings (no immediate action needed)
errorErrors (action required)

Change Log Level

Set via environment variable:

bash
# .env
LOG_LEVEL=info   # debug, info, warn, error

Docker Container Logs

bash
# All logs
docker-compose logs

# Specific service (real-time)
docker-compose logs -f postgres
docker-compose logs -f redis

# Last 100 lines only
docker-compose logs --tail=100 postgres

Health Checks

PostgreSQL

bash
docker exec hereby_postgres pg_isready -U hereby_admin
docker exec hereby_postgres psql -U hereby_admin -d hereby_platform -c "SELECT 1;"

Redis

bash
docker exec hereby_redis redis-cli ping
# Response: PONG

docker exec hereby_redis redis-cli info memory

Container Status

bash
docker-compose ps
docker stats --no-stream

Performance Monitoring

PostgreSQL Performance

sql
-- Cache hit ratio
SELECT
  sum(heap_blks_read) as heap_read,
  sum(heap_blks_hit) as heap_hit,
  round(sum(heap_blks_hit) / (sum(heap_blks_hit) + sum(heap_blks_read))::numeric, 4) as ratio
FROM pg_statio_user_tables;

-- Index usage
SELECT relname, idx_scan as index_scans, seq_scan as sequential_scans
FROM pg_stat_user_tables
ORDER BY seq_scan DESC LIMIT 10;

Disk Usage

bash
# Database size
docker exec hereby_postgres psql -U hereby_admin -d hereby_platform \
  -c "SELECT pg_size_pretty(pg_database_size('hereby_platform'));"

# Docker volume sizes
docker system df -v

Monitoring Scripts

Disk Space Monitor

bash
#!/bin/bash
# scripts/check-disk.sh
THRESHOLD=80
USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')

if [ "$USAGE" -gt "$THRESHOLD" ]; then
  echo "WARNING: Disk usage ${USAGE}% exceeds threshold ${THRESHOLD}%"
fi

Connection Count Monitor

bash
#!/bin/bash
# scripts/check-connections.sh
MAX_CONNECTIONS=100
CURRENT=$(docker exec hereby_postgres psql -U hereby_admin -d hereby_platform \
  -t -c "SELECT count(*) FROM pg_stat_activity;")

if [ "$CURRENT" -gt "$MAX_CONNECTIONS" ]; then
  echo "WARNING: DB connections ${CURRENT} exceeds threshold"
fi