FAQ
Frequently Asked Questions about Snakemon.
General Questions
What is Snakemon?
Snakemon is a lightweight service designed to monitor the execution of Snakemake workflows, specifically for versions using the legacy WMS monitoring protocol (generally prior to v9.x).
Why would I use Snakemon?
Snakemon helps you track and monitor Snakemake workflow executions by:
Providing a persistent record of workflow runs
Storing logs and execution details
Offering a simple UI to view workflow status and history
Working with older Snakemake versions that use the legacy monitoring protocol
What versions of Snakemake does Snakemon support?
Snakemon is designed for Snakemake versions that use the legacy --wms-monitor parameter, typically versions prior to v9.x. It is not compatible with newer versions that use the Monitor Schema protocol.
Technical Questions
How does Snakemon detect workflow success or failure?
Snakemon uses a heuristic approach:
Success: Workflow is marked as successful if a progress message indicating 100% completion is received AND no error messages are detected
Error: Workflow is marked as failed if a log message containing “Error in rule” or “Error in group” is received
Can Snakemon be used with Snakemake v9.x and newer?
No, Snakemon is specifically designed for older Snakemake versions using the legacy --wms-monitor protocol. Newer versions of Snakemake (approximately v9.x onwards) use a different monitoring API (Monitor Schema) which is not compatible with Snakemon.
How do I configure PostgreSQL instead of SQLite?
Set the DATABASE_URL environment variable to your PostgreSQL connection string:
# Format: postgresql://user:password@host:port/database
DATABASE_URL="postgresql://postgres:password@localhost:5432/snakemon"
In a Docker environment, update the environment section in your docker-compose.yml.
Docker Questions
How do I persist data when using Docker?
For SQLite database persistence, add a volume mount to your docker-compose.yml:
backend:
volumes:
- ./data:/app/data # Adjust path as needed
For PostgreSQL, use a named volume:
postgres:
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Can I run only the backend without the frontend?
Yes, you can run just the backend service:
docker-compose up -d backend
How do I update to a new version?
To update your Snakemon instance:
# Pull the latest code
git pull
# Rebuild and restart containers
docker-compose down
docker-compose build
docker-compose up -d
Troubleshooting
Why isn’t my workflow status updating?
Common reasons include:
Incorrect
--wms-monitorURL in your Snakemake commandNetwork connectivity issues between Snakemake and Snakemon
Using a Snakemake version that doesn’t support the legacy monitoring protocol
How can I debug issues with the Docker setup?
Check the container logs:
# View backend logs
docker-compose logs backend
# Follow logs in real-time
docker-compose logs -f
Why am I getting database errors?
For SQLite, ensure your database file is writable and the container has proper permissions to the data directory.
For PostgreSQL, verify connection parameters and that the PostgreSQL service is running and accessible