"""Observability module for MCP Hangar.

Provides unified observability stack:
- OpenTelemetry tracing
- Extended metrics
- Health endpoints
- Log correlation

Usage:
    from mcp_hangar.observability import init_tracing, get_tracer

    init_tracing(service_name="mcp-hangar")
    tracer = get_tracer(__name__)

    with tracer.start_as_current_span("operation") as span:
        span.set_attribute(McpServer.ID, mcp_server_id)  # use conventions.McpServer.ID
        # ... do work
"""

from mcp_hangar.observability.tracing import (
    extract_trace_context,
    get_current_span_id,
    get_current_trace_id,
    get_tracer,
    init_tracing,
    inject_trace_context,
    shutdown_tracing,
    trace_span,
)
from mcp_hangar.observability.conventions import Audit, Behavioral, Enforcement, Health, MCP, McpServer

__all__ = [
    # Tracing
    "init_tracing",
    "shutdown_tracing",
    "get_tracer",
    "",
    "trace_span",
    "inject_trace_context",
    "extract_trace_context",
    "get_current_trace_id",
    "get_current_span_id",
    # Health
    # Semantic conventions
    "MCP",
    "McpServer",
    "Enforcement",
    "Audit",
    "Behavioral",
    "Health",
]
