Keep logs for Telemetry API endpoint requests
Signed-off-by: Alfredos-Panagiotis Damkalis <fredy@fredy.gr>spacecruft
parent
0dc188f41b
commit
d7df35032d
|
@ -1,5 +1,6 @@
|
|||
"""SatNOGS DB API django rest framework Views"""
|
||||
from django.conf import settings
|
||||
from django.core.cache import cache
|
||||
from django.core.files.base import ContentFile
|
||||
from django.db.models import F
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
@ -525,6 +526,19 @@ class TelemetryViewSet( # pylint: disable=R0901,R0912,R0915
|
|||
parser_classes = (FormParser, MultiPartParser, FileUploadParser)
|
||||
pagination_class = pagination.LinkedHeaderPageNumberPagination
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
if settings.LOG_TELEMETRY_REQUESTS:
|
||||
user_id = str(request.user.id)
|
||||
remote_address = str(request.META.get("REMOTE_ADDR"))
|
||||
x_forwarded_for = str(request.META.get("HTTP_X_FORWARDED_FOR"))
|
||||
timestamp = now().isoformat()
|
||||
request_data = user_id + ';' + remote_address + ';' + x_forwarded_for + ';' + timestamp
|
||||
cache.set(
|
||||
'telemetry_log_' + user_id + '_' + timestamp, request_data,
|
||||
settings.TELEMETRY_LOGS_TIME_TO_LIVE
|
||||
)
|
||||
return super().list(request, *args, **kwargs)
|
||||
|
||||
@extend_schema(
|
||||
responses={'201': None}, # None
|
||||
)
|
||||
|
|
|
@ -482,6 +482,10 @@ SPACE_TRACK_PASSWORD = config('SPACE_TRACK_PASSWORD', default='')
|
|||
# Exported Frames
|
||||
EXPORTED_FRAMESET_TIME_TO_LIVE = config('EXPORTED_FRAMESET_TIME_TO_LIVE', default=21600, cast=int)
|
||||
|
||||
# Keep Telemetry requests logs
|
||||
LOG_TELEMETRY_REQUESTS = config('LOG_TELEMETRY_REQUESTS', default=True, cast=bool)
|
||||
TELEMETRY_LOGS_TIME_TO_LIVE = config('TELEMETRY_LOGS_TIME_TO_LIVE', default=259200, cast=int)
|
||||
|
||||
# Influx DB for decoded data_id
|
||||
USE_INFLUX = config('USE_INFLUX', default=False, cast=bool)
|
||||
INFLUX_HOST = config('INFLUX_HOST', default='localhost')
|
||||
|
|
Loading…
Reference in New Issue