"""
Performance monitoring for StarPunk

This package provides performance monitoring capabilities including:
- Metrics collection with circular buffers
- Operation timing (database, HTTP, rendering)
- Per-process metrics with aggregation
- Configurable sampling rates
- Database query monitoring (v1.1.2 Phase 1)
- HTTP request/response metrics (v1.1.2 Phase 1)
- Memory monitoring (v1.1.2 Phase 1)

Per ADR-053 and developer Q&A Q6, Q12:
- Each process maintains its own circular buffer
- Buffers store recent metrics (default 1000 entries)
- Metrics include process ID for multi-process deployment
- Sampling rates are configurable per operation type
"""

from starpunk.monitoring.metrics import MetricsBuffer, record_metric, get_metrics, get_metrics_stats
from starpunk.monitoring.database import MonitoredConnection
from starpunk.monitoring.http import setup_http_metrics
from starpunk.monitoring.memory import MemoryMonitor
from starpunk.monitoring import business

__all__ = [
    "MetricsBuffer",
    "record_metric",
    "get_metrics",
    "get_metrics_stats",
    "MonitoredConnection",
    "setup_http_metrics",
    "MemoryMonitor",
    "business",
]
