from fastapi import APIRouter from common.log.module_logger import ModuleLogger from backend.services.prometheus_metrics_service import PrometheusMetricsService router = APIRouter() # Initialize service and logger prometheus_service = PrometheusMetricsService() module_logger = ModuleLogger(__file__) @router.get("/prometheus/product/{product_id}/available-metrics") async def get_available_metrics(product_id: str): """ Get list of available metrics for a specific product. Args: product_id: Product ID to get metrics for (required). Returns a list of metric names that have predefined PromQL queries for the specified product. """ await module_logger.log_info(f"Getting available metrics list for product_id: {product_id}") metrics = prometheus_service.get_available_metrics(product_id) return { "product_id": product_id, "available_metrics": metrics, "total_count": len(metrics), "description": f"List of metrics with predefined PromQL queries for product '{product_id}'" }