"""Observability module for OpenTelemetry tracing and Prometheus metrics."""

from akosha.observability.prometheus_metrics import (
    cache_entry_count,
    cache_hit_rate,
    cache_operations,
    cache_size_bytes,
    deduplication_checks,
    deduplication_duration,
    embedding_batch_size,
    embedding_generation_duration,
    error_last_timestamp,
    error_total,
    generate_metrics,
    get_metric_summary,
    get_metrics_registry,
    http_active_requests,
    http_request_duration,
    http_requests_total,
    increment_errors,
    ingestion_bytes_total,
    ingestion_duration_seconds,
    ingestion_throughput,
    knowledge_graph_entities,
    knowledge_graph_query_duration,
    knowledge_graph_relationships,
    observe_operation,
    observe_search_latency,
    observe_store_operation,
    operation_duration,
    operations_total,
    record_cache_hit,
    record_cache_miss,
    record_deduplication_check,
    record_ingestion_record,
    reset_all_metrics,
    search_latency,
    search_result_count,
    search_results_total,
    start_metrics_server,
    store_operation_duration,
    store_operations,
    store_size,
    store_size_bytes,
    update_cache_entry_count,
    update_cache_hit_rate,
    update_cache_size,
    update_ingestion_throughput,
    update_store_sizes,
    vector_index_build_duration,
    vector_index_size,
)
from akosha.observability.tracing import (
    add_span_attributes,
    add_span_event,
    get_meter,
    get_tracer,
    record_counter,
    record_gauge,
    record_histogram,
    setup_telemetry,
    shutdown_telemetry,
    trace_operation,
    traced,
)

__all__ = [
    # OpenTelemetry Tracing
    "add_span_attributes",
    "add_span_event",
    "cache_entry_count",
    "cache_hit_rate",
    "cache_operations",
    "cache_size_bytes",
    "deduplication_checks",
    "deduplication_duration",
    "embedding_batch_size",
    # Embedding Metrics
    "embedding_generation_duration",
    "error_last_timestamp",
    "error_total",
    "generate_metrics",
    "get_meter",
    "get_metric_summary",
    # Prometheus Metrics - Core
    "get_metrics_registry",
    "get_tracer",
    "http_active_requests",
    "http_request_duration",
    # HTTP/MCP Server Metrics
    "http_requests_total",
    # Error Metrics
    "increment_errors",
    "ingestion_bytes_total",
    "ingestion_duration_seconds",
    "ingestion_throughput",
    # Knowledge Graph Metrics
    "knowledge_graph_entities",
    "knowledge_graph_query_duration",
    "knowledge_graph_relationships",
    # General Operation Metrics
    "observe_operation",
    # Search Metrics
    "observe_search_latency",
    "observe_store_operation",
    "operation_duration",
    "operations_total",
    # Cache Metrics
    "record_cache_hit",
    "record_cache_miss",
    "record_counter",
    # Deduplication Metrics
    "record_deduplication_check",
    "record_gauge",
    "record_histogram",
    # Ingestion Metrics
    "record_ingestion_record",
    "reset_all_metrics",
    "search_latency",
    "search_result_count",
    "search_results_total",
    "setup_telemetry",
    "shutdown_telemetry",
    "start_metrics_server",
    "store_operation_duration",
    "store_operations",
    "store_size",
    "store_size_bytes",
    "trace_operation",
    "traced",
    "update_cache_entry_count",
    "update_cache_hit_rate",
    "update_cache_size",
    "update_ingestion_throughput",
    # Storage Metrics
    "update_store_sizes",
    "vector_index_build_duration",
    # Vector Index Metrics
    "vector_index_size",
]
