diff --git a/netbox/netbox/metrics.py b/netbox/netbox/metrics.py index 43b549d7c..df04ad6a9 100644 --- a/netbox/netbox/metrics.py +++ b/netbox/netbox/metrics.py @@ -30,3 +30,11 @@ class Metrics(middleware.Metrics): ["view", "method"], namespace=NAMESPACE, ) + + # GraphQL API metrics + self.graphql_api_requests = self.register_metric( + Counter, + "graphql_api_requests_total", + "Count of total GraphQL API requests", + namespace=NAMESPACE, + ) diff --git a/netbox/netbox/middleware.py b/netbox/netbox/middleware.py index e4c57d4c1..66c980778 100644 --- a/netbox/netbox/middleware.py +++ b/netbox/netbox/middleware.py @@ -13,7 +13,7 @@ from django_prometheus import middleware from netbox.config import clear_config, get_config from netbox.metrics import Metrics from netbox.views import handler_500 -from utilities.api import is_api_request +from utilities.api import is_api_request, is_graphql_request from utilities.error_handlers import handle_rest_api_exception from utilities.request import apply_request_processors @@ -201,6 +201,10 @@ class PrometheusAfterMiddleware(middleware.PrometheusAfterMiddleware): self.label_metric(self.metrics.rest_api_requests, request, method=method).inc() self.label_metric(self.metrics.rest_api_requests_by_view_method, request, method=method, view=name).inc() + # Increment GraphQL API request counters + elif is_graphql_request(request): + self.metrics.graphql_api_requests.inc() + return response