Source code for nv_ingest.api.v1.metrics
# SPDX-FileCopyrightText: Copyright (c) 2024-25, NVIDIA CORPORATION & AFFILIATES.
# All rights reserved.
# SPDX-License-Identifier: Apache-2.0
import logging
from fastapi import APIRouter, Response, status
from prometheus_client import Counter, Histogram, generate_latest, CONTENT_TYPE_LATEST
router = APIRouter()
# logger = logging.getLogger("uvicorn")
logger = logging.getLogger(__name__)
# Prometheus metrics
REQUEST_COUNT = Counter("http_requests_total", "Total HTTP Requests", ["method", "endpoint"])
REQUEST_LATENCY = Histogram("http_request_duration_seconds", "Request latency", ["method", "endpoint"])
[docs]
@router.get(
"/metrics",
tags=["Health"],
summary="Provide prometheus formatted metrics for consumption",
description="""
Provide prometheus formatted metrics for consumption by a prometheus scraping server.
""",
status_code=status.HTTP_200_OK,
)
def metrics():
return Response(generate_latest(), media_type=CONTENT_TYPE_LATEST)