Server PulseMonitor Django and other web services directly from VS Code. Server Pulse displays real-time service status in your status bar, automatically detects errors from logs (including Python tracebacks), and supports Docker container monitoring. Features🔍 Intelligent Log Monitoring
🐳 Docker Support
🎯 Service State Detection
🏥 Health Monitoring
📊 Real-Time Status Bar
InstallationFrom VS Code Marketplace
From Source
Quick StartAutomatic Service DetectionServer Pulse automatically detects services in your workspace:
The extension will show a setup wizard on first use, allowing you to:
Manual ConfigurationYou can also manually configure services in VS Code settings (
ConfigurationBasic Service Configuration
Docker-Based Service
Server Pulse will automatically run Container Name Handling: If your Custom Log Patterns
Configuration OptionsGlobal Settings
Service Configuration
Docker Configuration (
|
| Property | Type | Description |
|---|---|---|
pathToComposeFile |
string | Path to docker-compose.yml (supports ${workspaceFolder}) |
selectedContainerName |
string | Container name to monitor |
Commands
Access commands via Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
- Server Pulse: Refresh Service Detection - Re-scan for services
- Server Pulse: Configure Services - Open settings
- Server Pulse: Show Service Logs - View service status details
Architecture
Server Pulse consists of several coordinated components:
┌─────────────────────────────────────────────────────────┐
│ Extension Host │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ LogWatcher │───▶│ Traceback │ │
│ │ │ │ Parser │ │
│ │ - File Watch │ └──────────────┘ │
│ │ - Docker Logs│ │
│ │ - Streams │ ┌──────────────┐ │
│ └──────────────┘ │ PortChecker │ │
│ │ │ │ │
│ │ │ - TCP Check │ │
│ │ │ - HTTP Health│ │
│ │ └──────────────┘ │
│ │ │ │
│ └───────┬───────────┘ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Status │ │
│ │ Manager │ │
│ │ │ │
│ │ - State │ │
│ │ - Uptime │ │
│ └──────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ StatusBar │ │
│ │ (UI) │ │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
- LogWatcher: Monitors log files, Docker containers, and command output
- TracebackParser: Intelligently parses Python tracebacks from log streams
- PortChecker: Performs TCP/HTTP health checks at configurable intervals
- StatusManager: Coordinates log events and port checks to determine overall state
- StatusBar: Displays service status with visual indicators in VS Code status bar
- ServiceDetectionService: Automatically discovers Django projects and Docker configurations
- ServiceConfigurationManager: Handles interactive service setup and configuration management
- Logger: Centralized logging and user notification system
Interactive Setup
Server Pulse includes an interactive setup wizard that runs when you first open a workspace with detectable services.
First-Time Setup Process
Auto-Detection: The extension scans your workspace for:
- Django projects (
manage.pyfiles) - Docker Compose configurations (
docker-compose.ymlfiles)
- Django projects (
Service Selection: Choose which detected services to monitor from a quick-pick menu
Container Selection (for Docker Compose): Select specific containers from your compose file. The UI shows:
- Custom container names (from
container_namein compose file) - Predicted container names (auto-generated, e.g.,
web_1)
- Custom container names (from
Health Check Configuration: Set up health monitoring:
- Port number for the service
- HTTP health check endpoint (optional)
Container Name Prediction
For Docker Compose services without explicit container_name:
- Server Pulse predicts:
{service_name}_1 - Example:
webservice →web_1container - The setup wizard clearly indicates predicted vs. custom names
Troubleshooting
Service Not Detected
Problem: Django service not showing in status bar
Solutions:
- Ensure
manage.pyexists in workspace - Check that
serverpulse.autoDetectis enabled - Try manually configuring the service in settings
- Run "Server Pulse: Refresh Service Detection" command
Docker Logs Not Working
Problem: Docker container logs not being monitored
Solutions:
- Verify Docker is running:
docker ps - Check container name matches
selectedContainerName - Ensure
docker-compose.ymlpath is correct - Verify user has Docker permissions
- Container Name Issues: If using predicted container names, verify they match actual running containers. Add explicit
container_nameto your compose file for reliability
Patterns Not Matching
Problem: Service state not updating when logs appear
Solutions:
- Open VS Code Developer Console (Help > Toggle Developer Tools)
- Look for
[LogWatcher]messages showing:Initialized with patterns:- Verify patterns loadedChecking line against patterns:- See what lines are checkedMatched X pattern- Confirm pattern matches
- Check for container prefixes: logs like
web-1 | Starting...are automatically normalized - Verify regex patterns in configuration are valid
Error State Not Showing
Problem: Traceback appears but status shows "Starting" or "Ready"
Solutions:
- Check console for
[LogWatcher] Collecting tracebackmessages - Ensure traceback ends with a line like
Exception:orError: - Verify the error pattern includes
TracebackandException - Check if port health check is overriding error state
Debug Logging
Enable detailed logging by opening VS Code Developer Console:
- Go to Help > Toggle Developer Tools
- Select Console tab
- Filter by
LogWatcher,StatusManager, orTracebackParser - Look for state transitions and pattern matching activity
Common log messages:
[LogWatcher] Initialized with patterns:- Pattern configuration[LogWatcher] Collecting traceback- Traceback detection in progress[LogWatcher] Parsed traceback from- Completed traceback[LogWatcher] Matched X pattern- Pattern successfully matched[StatusManager] Log state change:- State transition details
Examples
Django with Docker Compose
{
"serverpulse.services": [
{
"name": "Django API",
"type": "django",
"port": 8000,
"useDocker": {
"pathToComposeFile": "${workspaceFolder}/docker-compose.yml",
"selectedContainerName": "web"
},
"healthCheckPath": "/api/health/"
}
]
}
Note: If your docker-compose.yml doesn't specify container_name, Server Pulse will predict the container name (usually {service_name}_1). During setup, you'll see clear indicators of whether container names are custom or predicted.
Multiple Services
{
"serverpulse.services": [
{
"name": "Backend",
"type": "django",
"port": 8000,
"healthCheckPath": "/health/"
},
{
"name": "Frontend",
"type": "generic",
"port": 3000,
"logPatterns": {
"starting": "webpack.*compiling",
"ready": "Compiled successfully|Local:.*http",
"error": "Failed to compile|ERROR"
}
}
]
}
TCP-Only Monitoring (No HTTP)
{
"serverpulse.services": [
{
"name": "Redis",
"type": "generic",
"port": 6379,
"enableHealthCheck": false
}
]
}
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog
See CHANGELOG.md for version history and release notes.
Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Requirements
- VS Code 1.74.0 or higher
- Docker (optional, for container monitoring)
- Python/Django (for Django-specific features)
Made with ❤️ for developers who want to keep an eye on their services without leaving their editor.