Skip to content

# SSE Statistics Tool

The SSE Statistics tool provides functionality to monitor and analyze Server-Sent Events (SSE) connections and performance in your Home Assistant MCP instance.

## Features

- Monitor active SSE connections
- Track connection statistics
- Analyze event delivery
- Monitor resource usage
- Connection management
- Performance metrics
- Historical data
- Alert configuration

## Usage

### REST API

    GET /api/sse/stats
    GET /api/sse/connections
    GET /api/sse/connections/{connection_id}
    GET /api/sse/metrics
    GET /api/sse/history

### WebSocket

    // Get SSE stats
    {
        "type": "get_sse_stats"
    }

    // Get connection details
    {
        "type": "get_sse_connection",
        "connection_id": "required_connection_id"
    }

    // Get performance metrics
    {
        "type": "get_sse_metrics",
        "period": "1h|24h|7d|30d"
    }

## Examples

### Get Current Statistics

    const response = await fetch('http://your-ha-mcp/api/sse/stats', {
        headers: {
            'Authorization': 'Bearer your_access_token'
        }
    });
    const stats = await response.json();

### Get Connection Details

    const response = await fetch('http://your-ha-mcp/api/sse/connections/conn_123', {
        headers: {
            'Authorization': 'Bearer your_access_token'
        }
    });
    const connection = await response.json();

### Get Performance Metrics

    const response = await fetch('http://your-ha-mcp/api/sse/metrics?period=24h', {
        headers: {
            'Authorization': 'Bearer your_access_token'
        }
    });
    const metrics = await response.json();

## Response Format

### Statistics Response

    {
        "success": true,
        "data": {
            "active_connections": 42,
            "total_events_sent": 12345,
            "events_per_second": 5.2,
            "memory_usage": 128974848,
            "cpu_usage": 2.5,
            "uptime": "PT24H",
            "event_backlog": 0
        }
    }

### Connection Details Response

    {
        "success": true,
        "data": {
            "connection": {
                "id": "conn_123",
                "client_id": "client_456",
                "user_id": "user_789",
                "connected_at": "2024-02-05T12:00:00Z",
                "last_event_at": "2024-02-05T12:05:00Z",
                "events_sent": 150,
                "subscriptions": [
                    {
                        "event_type": "state_changed",
                        "entity_id": "light.living_room"
                    }
                ],
                "state": "active",
                "ip_address": "192.168.1.100",
                "user_agent": "Mozilla/5.0 ..."
            }
        }
    }

### Performance Metrics Response

    {
        "success": true,
        "data": {
            "metrics": {
                "connections": {
                    "current": 42,
                    "max": 100,
                    "average": 35.5
                },
                "events": {
                    "total": 12345,
                    "rate": {
                        "current": 5.2,
                        "max": 15.0,
                        "average": 4.8
                    }
                },
                "latency": {
                    "p50": 15,
                    "p95": 45,
                    "p99": 100
                },
                "resources": {
                    "memory": {
                        "current": 128974848,
                        "max": 536870912
                    },
                    "cpu": {
                        "current": 2.5,
                        "max": 10.0,
                        "average": 3.2
                    }
                }
            },
            "period": "24h",
            "timestamp": "2024-02-05T12:00:00Z"
        }
    }

## Error Handling

### Common Error Codes

- `404`: Connection not found
- `401`: Unauthorized
- `400`: Invalid request parameters
- `503`: Service overloaded

### Error Response Format

    {
        "success": false,
        "message": "Error description",
        "error_code": "ERROR_CODE"
    }

## Monitoring Metrics

### Connection Metrics

- Active connections
- Connection duration
- Connection state
- Client information
- Geographic distribution
- Protocol version

### Event Metrics

- Events per second
- Event types distribution
- Delivery success rate
- Event latency
- Queue size
- Backlog size

### Resource Metrics

- Memory usage
- CPU usage
- Network bandwidth
- Disk I/O
- Connection pool status
- Thread pool status

## Alert Thresholds

- Connection limits
- Event rate limits
- Resource usage limits
- Latency thresholds
- Error rate thresholds
- Backlog thresholds

## Best Practices

1. Monitor connection health
2. Track resource usage
3. Set up alerts
4. Analyze usage patterns
5. Optimize performance
6. Plan capacity
7. Implement failover
8. Regular maintenance

## Performance Optimization

- Connection pooling
- Event batching
- Resource throttling
- Load balancing
- Cache optimization
- Connection cleanup

## See Also

- Event Subscription
- Device Control
- Automation Management

February 5, 2025
February 5, 2025
Was this page helpful?
Thanks for your feedback!
Thanks for your feedback! Please consider creating an issue to help us improve.

#### Cookie consent

We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.

- Google Analytics
- GitHub

Manage settings