33 lines
1.0 KiB
Python
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}'"
|
|
}
|