freeleaps-service-hub/apps/metrics/webapi/routes/prometheus_metrics/metric_info.py

33 lines
1.0 KiB
Python

from fastapi import APIRouter, HTTPException
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}/metric/{metric_name}/info")
async def get_metric_info(
product_id: str,
metric_name: str
):
"""
Get information about a specific metric including its PromQL query.
Args:
product_id: Product ID to identify which product's metrics to query
metric_name: Name of the metric to get information for
"""
await module_logger.log_info(f"Getting info for metric '{metric_name}' from product '{product_id}'")
metric_info = await prometheus_service.get_metric_info(product_id, metric_name)
return {
"metric_info": metric_info,
"description": f"Information about metric '{metric_name}' in product '{product_id}'"
}