"""
Shared monitoring package for microservices

Provides unified OpenTelemetry-based observability:
- Traces: Distributed tracing
- Metrics: System and application metrics
- Logs: Structured logging

All signals exported to SigNoz via OTLP.
"""

# Core setup - START HERE
from .logging import setup_logging
from .telemetry import (
    setup_telemetry,
    setup_telemetry_simple,
    get_telemetry_status,
    TelemetryProviders
)

# Configuration
from .otel_config import OTelConfig, OTelEndpoints

# Individual signal setup (used by telemetry.py)
from .tracing import (
    setup_tracing,
    get_current_trace_id,
    get_current_span_id,
    add_trace_attributes,
    add_trace_event,
    record_exception
)
from .logs_exporter import (
    setup_otel_logging,
    add_log_context,
    get_current_trace_context,
    StructlogOTELProcessor
)
from .metrics_exporter import (
    setup_otel_metrics,
    OTelMetricsCollector,
    create_dual_metrics_collector
)
from .system_metrics import (
    SystemMetricsCollector,
    ApplicationMetricsCollector,
    setup_all_metrics
)

# Health checks
from .health_checks import (
    HealthCheckManager,
    FastAPIHealthChecker,
    create_health_manager,
    setup_fastapi_health_checks
)

__all__ = [
    # CORE - Start with these
    'setup_logging',
    'setup_telemetry',
    'setup_telemetry_simple',
    'get_telemetry_status',
    'TelemetryProviders',

    # Configuration
    'OTelConfig',
    'OTelEndpoints',

    # Tracing
    'setup_tracing',
    'get_current_trace_id',
    'get_current_span_id',
    'add_trace_attributes',
    'add_trace_event',
    'record_exception',

    # Logs
    'setup_otel_logging',
    'add_log_context',
    'get_current_trace_context',
    'StructlogOTELProcessor',

    # Metrics
    'setup_otel_metrics',
    'OTelMetricsCollector',
    'create_dual_metrics_collector',
    'SystemMetricsCollector',
    'ApplicationMetricsCollector',
    'setup_all_metrics',

    # Health checks
    'HealthCheckManager',
    'FastAPIHealthChecker',
    'create_health_manager',
    'setup_fastapi_health_checks',
]