Sentinel v0.2.2 Release Notes
Installation
nix profile add github:4ster-light/sentinel/v0.2.2uv tool install git+https://github.com/4ster-light/sentinel@v0.2.2Or with pip:
pip install git+https://github.com/4ster-light/sentinel@v0.2.2Metrics Export
Sentinel now supports exporting process metrics in JSON and table formats for monitoring and automation workflows.
How It Works
- Formats: export as a formatted table (default) or as JSON
- Output: write to stdout or a file with
--output - Snapshot: quick one-shot metrics table via
sentinel metrics snapshot
Usage
# Show metrics as a table (default)
sentinel metrics export
# Export as JSON
sentinel metrics export --format json
# Write metrics to a file
sentinel metrics export --output metrics.json
# Export JSON to a file
sentinel metrics export --format json --output metrics.jsonExample Scenarios
# Pipe JSON metrics into jq for analysis
sentinel metrics export --format json | jq '.[] | {name, cpu_percent, memory_mb}'
# Quick health snapshot
sentinel metrics snapshot
# Write to a monitoring directory
sentinel metrics export --format json --output /var/log/sentinel/metrics.jsonRemote Management
Sentinel now includes a sentinel remote command for managing processes on remote hosts via SSH. Remote hosts must have Sentinel installed and accessible via SSH.
How It Works
- Registration: add, list, and remove remote hosts
- SSH configuration: specify custom user and port per host
- Remote commands: run
sentinel list,sentinel run, andsentinel stopon remote hosts - Persistence: remote host state is stored alongside process and port state
Usage
# Register a remote host
sentinel remote add server1.example.com
# Register with SSH user and custom port
sentinel remote add server1.example.com --user deploy --port 2222
# List registered hosts
sentinel remote list
# List processes on a remote host
sentinel remote list server1.example.com
# Start a process on a remote host
sentinel remote run server1.example.com "python server.py"
# Stop a process on a remote host
sentinel remote stop server1.example.com 1
# Remove a remote host
sentinel remote remove server1.example.comExample Scenarios
# Register and manage a production server
sentinel remote add prod.example.com --user deploy
sentinel remote run prod.example.com "gunicorn app:app --bind 0.0.0.0:8000"
sentinel remote list prod.example.com
# Register a staging server with a non-standard port
sentinel remote add staging.example.com --user admin --port 2222
sentinel remote run staging.example.com "python worker.py"
# Quick inventory of all remote processes
sentinel remote list prod.example.com
sentinel remote list staging.example.comBug Fixes & Documentation
This release also includes general stability improvements and expanded documentation.
Bug Fixes
- Proper error handling for missing SSH binary and connection timeouts
- Validation for metrics format option (must be 'json' or 'table')
- Early rejection of duplicate remote host registrations
- Added tests covering all new metrics and remote functionality
Documentation
- README updated with
sentinel metricsandsentinel remoteusage and examples - ROADMAP updated to mark v0.2.2 as completed
Combining All Process Controls
All of the process controls introduced so far compose cleanly together:
sentinel daemon start # Enable continuous monitoring
sentinel run "python app.py" \
--name api \
--instances 2 \
--startup-timeout 10 \
--nice -5 \
--ionice best_effort:2 \
--restart \
--health-http http://127.0.0.1:8000/health \
--health-interval 30 \
--health-failures 3 \
# Export metrics to your monitoring pipeline
sentinel metrics export --format json --output /var/log/sentinel/metrics.json
# Manage the same process on a remote host
sentinel remote add prod.example.com --user deploy
sentinel remote run prod.example.com "python app.py" --name api --instances 2 --restart
# Check remote status
sentinel remote list prod.example.com
# Result:
# - Two managed process instances are started with derived names
# - Startup confirms each process is running within 10 seconds
# - CPU priority gives process more resources
# - I/O priority prevents disk operations from blocking
# - Logs auto-rotate at 10MB
# - Health checks every 30 seconds
# - Restarts after 3 consecutive failures
# - Daemon monitors continuously
# - Metrics exportable for external monitoring
# - Remote hosts manageable via SSHTesting & Coverage
Tests were updated across the CLI and core modules to cover the new version scope. Full coverage for:
- Metrics collection, JSON export, and stdout table rendering
- Metrics snapshot command
- Remote host registration, listing, and removal
- Remote sentinel command execution (list, run, stop)
- Invalid format option rejection
- Duplicate remote host rejection
- SSH binary not found and connection timeout handling
- Existing process management coverage remains intact