A Dash web app to browse Sacred experiments stored in MongoDB. Features a clean Bootstrap UI, saved credentials, config filtering, metrics visualization, and CSV export.
- Connect to any MongoDB instance with Sacred data
- Browse experiments by name
- Filter runs by configuration keys (boolean, number, string filters)
- View and select metrics for detailed per-step analysis
- Export data as CSV
- Open datasets in Pygwalker for interactive exploration
- Credentials saved in browser local storage
- Python 3.9+ recommended
- pip
-
Create and activate a virtual environment:
Windows (PowerShell):
python -m venv .venv .\.venv\Scripts\Activate.ps1macOS/Linux:
python3 -m venv .venv source .venv/bin/activate -
Install dependencies:
pip install -r requirements.txt
python app.pyOpen your browser to http://127.0.0.1:8050/
You can either:
- Paste a full MongoDB URI (e.g.,
mongodb+srv://user:pass@cluster/yourdb?authSource=admin), or - Fill in individual fields: host, port, username, password, and auth source
Specify the database name (defaults to sacred) and click Connect.
- Database credentials panel: Toggle visibility with the "Database credentials" button
- Save credentials: Check to persist connection settings in browser localStorage
- Config keys selection: Choose which configuration keys to display and filter by
- Experiments table: View runs with selected config columns, sort and paginate
- Metrics section: Select metrics to view per-step data
- Export: Download as CSV or open in Pygwalker
AltarExtractor is integrated into the AltarDocker stack and can be deployed alongside MongoDB and Omniboard.
cd ../AltarDocker
docker compose --profile extractor up -dAccess at http://localhost:8050
When running inside AltarDocker, use these connection settings:
- Host:
mongo(Docker service name) - Port:
27017 - Username: your
MONGO_ROOT_USER - Password: your
MONGO_ROOT_PASSWORD - Auth source:
admin
See AltarDocker/DEPLOY.md for full deployment instructions.
-
Build and run:
docker-compose up -d --build
-
Access the app at http://localhost:8050
-
Stop:
docker-compose down
-
Build the image:
docker build -t altar-extractor . -
Run the container:
docker run -d -p 8050:8050 --name altar-extractor altar-extractor
-
Access at http://localhost:8050
-
Stop and remove:
docker stop altar-extractor docker rm altar-extractor
| Variable | Description | Default |
|---|---|---|
PORT |
Port the app listens on | 8050 |
SACRED_DB_NAME |
Default database name | sacred |
Example:
docker run -d -p 8050:8050 -e SACRED_DB_NAME=my_db altar-extractorOr in docker-compose.yml:
environment:
- SACRED_DB_NAME=my_sacred_dbIf your Sacred data uses a different structure than the standard runs collection with experiment.name, update the query logic in app.py (see fetch_sacred_experiment_names function).
- AltarDocker — Deploy MongoDB, MinIO, Omniboard, and AltarExtractor
- AltarSender — GUI to send experiments to Sacred