METRCIS→METRICS
This commit is contained in:
parent
9279e03636
commit
bf9d113677
6 changed files with 19 additions and 14 deletions
|
@ -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):
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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')))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue