METRCIS→METRICS

This commit is contained in:
Laura Klünder 2024-03-30 22:12:27 +01:00
parent 9279e03636
commit bf9d113677
6 changed files with 19 additions and 14 deletions

View file

@ -81,8 +81,9 @@ def api_etag(permissions=True, etag_func=AccessPermission.etag_func, base_mapdat
def api_stats(stat_name): def api_stats(stat_name):
from c3nav.mapdata.metrics import APIStatsCollector if settings.METRICS:
APIStatsCollector.add_stat(stat_name, ['by', 'query']) from c3nav.mapdata.metrics import APIStatsCollector
APIStatsCollector.add_stat(stat_name, ['by', 'query'])
def wrapper(func): def wrapper(func):
@wraps(func) @wraps(func)
def wrapped_func(request, *args, **kwargs): def wrapped_func(request, *args, **kwargs):

View file

@ -7,7 +7,7 @@ from django.core.cache import cache
from c3nav.mapdata.models.report import Report from c3nav.mapdata.models.report import Report
if settings.METRCIS: if settings.METRICS:
from prometheus_client import Gauge from prometheus_client import Gauge
from prometheus_client.core import REGISTRY, CounterMetricFamily from prometheus_client.core import REGISTRY, CounterMetricFamily
from prometheus_client.registry import Collector from prometheus_client.registry import Collector

View file

@ -1,12 +1,12 @@
from typing import Annotated, Union from typing import Annotated, Union
from django.conf import settings
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from ninja import Field as APIField from ninja import Field as APIField
from ninja import Router as APIRouter from ninja import Router as APIRouter
from c3nav.api.auth import auth_responses from c3nav.api.auth import auth_responses
from c3nav.api.schema import BaseSchema from c3nav.api.schema import BaseSchema
from c3nav.mapdata.metrics import APIStatsCollector
from c3nav.mapdata.models.access import AccessPermission from c3nav.mapdata.models.access import AccessPermission
from c3nav.mapdata.schemas.models import CustomLocationSchema from c3nav.mapdata.schemas.models import CustomLocationSchema
from c3nav.mapdata.utils.cache.stats import increment_cache_key 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", @positioning_api_router.get('/locate-test/', summary="debug position",

View file

@ -2,6 +2,7 @@ from enum import StrEnum
from typing import Annotated, Any, Optional, Union from typing import Annotated, Any, Optional, Union
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.conf import settings
from django.urls import reverse from django.urls import reverse
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from ninja import Field as APIField 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.schema import BaseSchema
from c3nav.api.utils import NonEmptyStr from c3nav.api.utils import NonEmptyStr
from c3nav.mapdata.api.base import api_stats_clean_location_value 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.access import AccessPermission
from c3nav.mapdata.models.locations import Position from c3nav.mapdata.models.locations import Position
from c3nav.mapdata.schemas.model_base import AnyLocationID, Coordinates3D from c3nav.mapdata.schemas.model_base import AnyLocationID, Coordinates3D
@ -252,10 +252,12 @@ def get_route(request, parameters: RouteParametersSchema):
) )
APIStatsCollector.add_stat('route') if settings.METRICS:
APIStatsCollector.add_stat('route_tuple', ['origin', 'destination']) from c3nav.mapdata.metrics import APIStatsCollector
APIStatsCollector.add_stat('route_origin', ['origin']) APIStatsCollector.add_stat('route')
APIStatsCollector.add_stat('route_destination', ['destination']) 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): def _new_serialize_route_options(options):

View file

@ -393,8 +393,8 @@ with suppress(ImportError):
import django_extensions # noqa import django_extensions # noqa
INSTALLED_APPS.append('django_extensions') INSTALLED_APPS.append('django_extensions')
METRCIS = config.getboolean('c3nav', 'metrics', fallback=False) METRICS = config.getboolean('c3nav', 'metrics', fallback=False)
if METRCIS: if METRICS:
try: try:
import django_prometheus # noqa import django_prometheus # noqa
INSTALLED_APPS.append('django_prometheus') INSTALLED_APPS.append('django_prometheus')
@ -404,7 +404,7 @@ if METRCIS:
'django_prometheus.middleware.PrometheusAfterMiddleware', 'django_prometheus.middleware.PrometheusAfterMiddleware',
] ]
except ImportError: except ImportError:
METRCIS = False METRICS = False
# Security settings # Security settings
X_FRAME_OPTIONS = 'DENY' X_FRAME_OPTIONS = 'DENY'

View file

@ -48,7 +48,7 @@ if settings.SERVE_ANYTHING:
import debug_toolbar import debug_toolbar
urlpatterns.insert(0, path('__debug__/', include(debug_toolbar.urls))) urlpatterns.insert(0, path('__debug__/', include(debug_toolbar.urls)))
if settings.METRCIS: if settings.METRICS:
with suppress(ImportError): with suppress(ImportError):
import django_prometheus # noqu import django_prometheus # noqu
urlpatterns.insert(0, path('prometheus/', include('django_prometheus.urls'))) urlpatterns.insert(0, path('prometheus/', include('django_prometheus.urls')))