From bf9d113677642749501a3f9f7f1c7639903fd1e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sat, 30 Mar 2024 22:12:27 +0100 Subject: [PATCH] =?UTF-8?q?METRCIS=E2=86=92METRICS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/c3nav/mapdata/api/base.py | 5 +++-- src/c3nav/mapdata/metrics.py | 2 +- src/c3nav/routing/api/positioning.py | 6 ++++-- src/c3nav/routing/api/routing.py | 12 +++++++----- src/c3nav/settings.py | 6 +++--- src/c3nav/urls.py | 2 +- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/c3nav/mapdata/api/base.py b/src/c3nav/mapdata/api/base.py index 0c138e96..14e75efb 100644 --- a/src/c3nav/mapdata/api/base.py +++ b/src/c3nav/mapdata/api/base.py @@ -81,8 +81,9 @@ def api_etag(permissions=True, etag_func=AccessPermission.etag_func, base_mapdat def api_stats(stat_name): - from c3nav.mapdata.metrics import APIStatsCollector - APIStatsCollector.add_stat(stat_name, ['by', 'query']) + if settings.METRICS: + from c3nav.mapdata.metrics import APIStatsCollector + APIStatsCollector.add_stat(stat_name, ['by', 'query']) def wrapper(func): @wraps(func) def wrapped_func(request, *args, **kwargs): diff --git a/src/c3nav/mapdata/metrics.py b/src/c3nav/mapdata/metrics.py index 4c83431d..ce1cfd58 100644 --- a/src/c3nav/mapdata/metrics.py +++ b/src/c3nav/mapdata/metrics.py @@ -7,7 +7,7 @@ from django.core.cache import cache from c3nav.mapdata.models.report import Report -if settings.METRCIS: +if settings.METRICS: from prometheus_client import Gauge from prometheus_client.core import REGISTRY, CounterMetricFamily from prometheus_client.registry import Collector diff --git a/src/c3nav/routing/api/positioning.py b/src/c3nav/routing/api/positioning.py index 8cf7137b..e4bb22ce 100644 --- a/src/c3nav/routing/api/positioning.py +++ b/src/c3nav/routing/api/positioning.py @@ -1,12 +1,12 @@ from typing import Annotated, Union +from django.conf import settings from django.core.exceptions import ValidationError from ninja import Field as APIField from ninja import Router as APIRouter from c3nav.api.auth import auth_responses from c3nav.api.schema import BaseSchema -from c3nav.mapdata.metrics import APIStatsCollector from c3nav.mapdata.models.access import AccessPermission from c3nav.mapdata.schemas.models import CustomLocationSchema from c3nav.mapdata.utils.cache.stats import increment_cache_key @@ -52,7 +52,9 @@ def get_position(request, parameters: LocateRequestSchema): } -APIStatsCollector.add_stat('locate', 'location') +if settings.METRICS: + from c3nav.mapdata.metrics import APIStatsCollector + APIStatsCollector.add_stat('locate', 'location') @positioning_api_router.get('/locate-test/', summary="debug position", diff --git a/src/c3nav/routing/api/routing.py b/src/c3nav/routing/api/routing.py index 36ce95b3..bff6d2a8 100644 --- a/src/c3nav/routing/api/routing.py +++ b/src/c3nav/routing/api/routing.py @@ -2,6 +2,7 @@ from enum import StrEnum from typing import Annotated, Any, Optional, Union from django.core.exceptions import ValidationError +from django.conf import settings from django.urls import reverse from django.utils.translation import gettext_lazy as _ from ninja import Field as APIField @@ -14,7 +15,6 @@ from c3nav.api.exceptions import APIRequestValidationFailed from c3nav.api.schema import BaseSchema from c3nav.api.utils import NonEmptyStr from c3nav.mapdata.api.base import api_stats_clean_location_value -from c3nav.mapdata.metrics import APIStatsCollector from c3nav.mapdata.models.access import AccessPermission from c3nav.mapdata.models.locations import Position from c3nav.mapdata.schemas.model_base import AnyLocationID, Coordinates3D @@ -252,10 +252,12 @@ def get_route(request, parameters: RouteParametersSchema): ) -APIStatsCollector.add_stat('route') -APIStatsCollector.add_stat('route_tuple', ['origin', 'destination']) -APIStatsCollector.add_stat('route_origin', ['origin']) -APIStatsCollector.add_stat('route_destination', ['destination']) +if settings.METRICS: + from c3nav.mapdata.metrics import APIStatsCollector + APIStatsCollector.add_stat('route') + APIStatsCollector.add_stat('route_tuple', ['origin', 'destination']) + APIStatsCollector.add_stat('route_origin', ['origin']) + APIStatsCollector.add_stat('route_destination', ['destination']) def _new_serialize_route_options(options): diff --git a/src/c3nav/settings.py b/src/c3nav/settings.py index 193421af..33249264 100644 --- a/src/c3nav/settings.py +++ b/src/c3nav/settings.py @@ -393,8 +393,8 @@ with suppress(ImportError): import django_extensions # noqa INSTALLED_APPS.append('django_extensions') -METRCIS = config.getboolean('c3nav', 'metrics', fallback=False) -if METRCIS: +METRICS = config.getboolean('c3nav', 'metrics', fallback=False) +if METRICS: try: import django_prometheus # noqa INSTALLED_APPS.append('django_prometheus') @@ -404,7 +404,7 @@ if METRCIS: 'django_prometheus.middleware.PrometheusAfterMiddleware', ] except ImportError: - METRCIS = False + METRICS = False # Security settings X_FRAME_OPTIONS = 'DENY' diff --git a/src/c3nav/urls.py b/src/c3nav/urls.py index fa2288e7..b65d9057 100644 --- a/src/c3nav/urls.py +++ b/src/c3nav/urls.py @@ -48,7 +48,7 @@ if settings.SERVE_ANYTHING: import debug_toolbar urlpatterns.insert(0, path('__debug__/', include(debug_toolbar.urls))) - if settings.METRCIS: + if settings.METRICS: with suppress(ImportError): import django_prometheus # noqu urlpatterns.insert(0, path('prometheus/', include('django_prometheus.urls')))