Monitoring
Monitor your application's health, performance, and resource usage in real-time. Get visibility into CPU, memory, network traffic, and response times to proactively detect and resolve issues.
Real-Time Metrics
Temps provides real-time metrics for every deployed container, giving you instant visibility into your application's performance.
Available Metrics:
- CPU Usage - Percentage of CPU resources used
- Memory Usage - RAM consumption in MB and percentage
- Network Traffic - Inbound and outbound data transfer
- Container Status - Running state and health
Metrics update in real-time via Server-Sent Events (SSE), so you always see current performance data.
Where to View:
- Navigate to your project in the dashboard
- Select an environment (production, staging, etc.)
- Open the Metrics tab for any container
- View real-time charts and current values
Accessing Metrics
Via Dashboard
- Go to Projects → Select your project
- Choose an Environment (production, staging, preview)
- Click on a Container to view its details
- Open the Metrics tab to see real-time performance data
The metrics dashboard shows:
- Live CPU graph - CPU usage over time
- Memory graph - RAM consumption trends
- Network activity - Data transfer rates
- Current values - Real-time snapshots
Via API
Access metrics programmatically using the API:
# Get real-time metrics stream
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://your-temps-instance.com/api/projects/{project_id}/environments/{environment_id}/containers/{container_id}/metrics/stream"
The metrics stream uses Server-Sent Events (SSE) and provides JSON updates in real-time:
{
"cpu_percent": 45.2,
"memory_bytes": 536870912,
"memory_percent": 62.5,
"network_rx_bytes": 1048576,
"network_tx_bytes": 524288,
"container_name": "my-app-production"
}
Understanding Metrics
- Name
CPU Usage- Description
What it shows: Percentage of CPU resources your container is using
When to worry:
- Consistently above 80% may indicate performance issues
- Spikes above 90% during traffic surges are normal
- Sustained 100% usage suggests you need more CPU resources
Action: If CPU is consistently high, consider:
- Increasing CPU allocation in project settings
- Optimizing application code
- Adding horizontal scaling
- Name
Memory Usage- Description
What it shows: RAM consumption in bytes and percentage of allocated memory
When to worry:
- Approaching 90% of allocated memory
- Memory usage continuously growing (potential memory leak)
- Container restarts due to OOM (Out of Memory) errors
Action: If memory is high:
- Increase memory allocation
- Investigate memory leaks in your code
- Review application dependencies
- Name
Network Traffic- Description
What it shows: Data transfer rates (inbound and outbound)
What to monitor:
- Unusual spikes in traffic
- Asymmetric patterns (high outbound, low inbound)
- Network saturation
Action: High network usage is usually normal for web applications, but monitor for:
- DDoS attacks (sudden massive spikes)
- Data exfiltration (unusual outbound patterns)
Health Checks
Configure health checks to automatically monitor your application's availability:
Setting Up Health Checks
Health checks are configured in your project's deployment settings:
- Go to Project Settings → Deployment
- Configure Health Check settings:
- Path: Endpoint to check (e.g.,
/healthor/api/health) - Interval: How often to check (default: 30 seconds)
- Timeout: Maximum wait time (default: 5 seconds)
- Retries: Number of failed attempts before marking unhealthy
- Path: Endpoint to check (e.g.,
Health Check Endpoint
Your application should expose a health check endpoint that returns quickly:
// Express.js example
app.get('/health', (req, res) => {
res.status(200).json({ status: 'ok', timestamp: Date.now() });
});
# Flask example
@app.route('/health')
def health():
return {'status': 'ok', 'timestamp': time.time()}, 200
Best Practice: Keep health checks lightweight. They should check basic application state (database connectivity, critical services) but avoid expensive operations.
Monitoring Best Practices
- Name
Set Resource Limits- Description
Configure appropriate CPU and memory limits based on your application's needs. Monitor actual usage and adjust as needed.
How to set:
- Project Settings → Deployment → Resources
- Set CPU (millicores) and Memory (MB)
- Monitor for a few days
- Adjust based on actual usage patterns
- Name
Monitor Trends- Description
Don't just look at current values—watch for trends:
- Gradual memory increases (memory leaks)
- CPU spikes during specific times (traffic patterns)
- Network anomalies (security issues)
- Name
Set Up Alerts- Description
Configure alerts for critical thresholds:
- CPU > 90% for 5 minutes
- Memory > 85% of allocation
- Container restarts
- Health check failures
Alerts can notify you via email, webhooks, or integrations.
- Name
Compare Environments- Description
Compare metrics across environments to identify issues:
- Production vs staging performance
- Preview environment resource usage
- Before/after deployment comparisons
Troubleshooting
- Name
High CPU Usage- Description
Symptoms: CPU consistently above 80-90%
Possible causes:
- Inefficient code or algorithms
- Too many concurrent requests
- Insufficient CPU allocation
Solutions:
- Increase CPU allocation in project settings
- Optimize application code
- Add caching to reduce computation
- Scale horizontally (multiple containers)
- Name
High Memory Usage- Description
Symptoms: Memory approaching allocation limit, container restarts
Possible causes:
- Memory leaks in application code
- Insufficient memory allocation
- Large data structures in memory
Solutions:
- Increase memory allocation
- Profile application for memory leaks
- Implement pagination for large datasets
- Use streaming for large file operations
- Name
Container Restarts- Description
Symptoms: Frequent container restarts visible in metrics
Possible causes:
- Out of memory (OOM) errors
- Application crashes
- Health check failures
Solutions:
- Check container logs for error messages
- Review memory usage before restarts
- Verify health check endpoint is working
- Check application error logs
- Name
Metrics Not Updating- Description
Symptoms: Metrics showing stale data or connection errors
Possible causes:
- Container not running
- Network connectivity issues
- Metrics service unavailable
Solutions:
- Verify container is running
- Check deployment status
- Refresh the metrics view
- Contact support if issue persists
Next Steps
- Configure Resource Limits to set CPU and memory allocations
- Set Up Health Checks to monitor availability
- View Application Logs to correlate metrics with application behavior
- Set Up Alerts for proactive issue detection