From b9834fc4d076dd7b56e8676054ae95a44f1b1deb Mon Sep 17 00:00:00 2001 From: Sai Sharan Tangeda Date: Fri, 27 Sep 2024 11:44:38 +0530 Subject: [PATCH] add: namespace and pod labels to metrics --- setup.py | 2 +- vishwa_labs_fastapi_utils/server/common.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 163bfb0..b779ef5 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ long_description = readme.read() setup( name='vishwa-fastapi-utils', - version="0.0.5", + version="0.0.6", author="Sai Sharan Tangeda", author_email="saisarantangeda@gmail.com", description="Base SDK for FastAPI Utils", diff --git a/vishwa_labs_fastapi_utils/server/common.py b/vishwa_labs_fastapi_utils/server/common.py index 5c98891..34546b6 100644 --- a/vishwa_labs_fastapi_utils/server/common.py +++ b/vishwa_labs_fastapi_utils/server/common.py @@ -1,13 +1,23 @@ +import os + from fastapi import FastAPI from starlette.middleware.gzip import GZipMiddleware from starlette_exporter import PrometheusMiddleware, handle_metrics +from vishwa_labs_fastapi_utils.core import common from vishwa_labs_fastapi_utils.server.route_handlers import TelemetryAPI def instrument_server(service_name: str, app: FastAPI): app.add_middleware(GZipMiddleware, minimum_size=1000) - app.add_middleware(PrometheusMiddleware, app_name=service_name, group_paths=True) + app.add_middleware(PrometheusMiddleware, app_name=service_name, group_paths=True, + labels={ + "namespace": common.NAMESPACE, + "pod": common.POD_NAME, + "container": common.CONTAINER_NAME, + "node": os.getenv("KUBERNETES_NODE_NAME", "unknown_node") + } + ) app.add_route("/metrics", handle_metrics) app.include_router(TelemetryAPI().router)