A lightweight, realtime dashboard for monitoring Dassault Systèmes License Server (DSLS) usage.
- Realtime parsing of DSLS license server logs
- Tracking of active license sessions
- Persistent historical archive (append-only)
- Web-based dashboard built with Streamlit
- Support for log rotation
- Environment-based configuration via
.env
- Runs continuously in the background
- Monitors a directory for rotating DSLS log files
- Parses log entries in real time using regular expressions
- Maintains a live database of active sessions
- Appends events to the historical database
- One-time or manual execution
- Scans all existing DSLS log files
- Backfills the historical database
- Intended to be run before starting real-time monitoring
- Built with Streamlit
- Displays active license sessions
- Provides a searchable historical view
-
license_manager.db
Contains only currently active license sessions -
history.db
Append-only archive containing:- License grants
- Detachments
- Timeouts
Both databases are created automatically at runtime and must not be committed.
- Linux server (Ubuntu / Debian recommended)
- Python 3.8+
- Read access to the DSLS log directory
git clone https://github.com/DaveeCity/License-Monitor-Lite.git
cd license-monitorpython3 -m venv venv
source venv/bin/activatepip install -r requirements.txtThis project uses environment variables for configuration.
cp .env.example .envLOG_DIRECTORY=/path/to/dsls/logs
LOG_PATTERN_FILE=LicenseServer*.log
POLL_INTERVAL=1.0
LIVE_DB=license_manager.db
HISTORY_DB=history.dbRun this once to populate the history database from existing log files:
python import_history.pyRuns continuously and processes new log entries:
nohup ./venv/bin/python monitor.py > monitor.log 2>&1 &Starts the Streamlit web interface (default port: 8501):
nohup ./venv/bin/streamlit run dashboard.py --server.port 8501 > dashboard.log 2>&1 &Open your browser and navigate to:
http://<SERVER_IP>:8501
pkill -f monitor.py
pkill -f streamlitnohup ./venv/bin/python monitor.py > monitor.log 2>&1 &
nohup ./venv/bin/streamlit run dashboard.py --server.port 8501 > dashboard.log 2>&1 &- Backend errors:
monitor.log - Dashboard errors:
dashboard.log
This public version intentionally excludes:
- Real filesystem paths
- Hostnames and domains
- Company identifiers
- Real user or license data
Before deploying in a real environment, configure all paths and patterns locally via .env.