Skip to content

Instantly share code, notes, and snippets.

@manjurulhoque
Created October 19, 2022 18:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save manjurulhoque/ec5dbc1999b4ce651c1d848f6d97148e to your computer and use it in GitHub Desktop.
Save manjurulhoque/ec5dbc1999b4ce651c1d848f6d97148e to your computer and use it in GitHub Desktop.
Create custom middleware to save prometheus data
from django.utils.deprecation import MiddlewareMixin
from django.utils.timezone import now
from jobsapp.metrics import requests_total, last_user_activity_time
class CustomMiddleware(MiddlewareMixin):
def __init__(self, get_response):
self.get_response = get_response
def process_request(self, request):
path = request.path
user = request.user
if "metrics" not in path:
# because metrics is for prometheus url
requests_total.labels(
endpoint=request.get_full_path, method=request.method, user=user
).inc()
last_user_activity_time.labels(user=user).set(now().timestamp())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment