opbeans/middleware.py (46 lines of code) (raw):

import uuid import random from collections import namedtuple try: from elasticapm import label except ImportError: # elastic-apm < 5.0 from elasticapm import tag as label User = namedtuple('User', ['is_authenticated', 'id', 'username', 'email', 'customer_tier']) users = [ User(True, 1, 'wendy95', 'wendy95@walter-lee.org', '$$$$'), User(True, 2, 'qlopez', 'qlopez@galvan-vasquez.net', '$$$$'), User(True, 3, 'robert31', 'robert31@bullock.net', '$'), User(True, 4, 'ooneal', 'ooneal@barnett.com', '$'), User(True, 5, 'ryan54', 'ryan54@harding.org', '$$$$'), User(True, 6, 'tannermonica', 'tannermonica@burton-davis.com', '$$$$'), User(True, 7, 'aliciarichardson', 'aliciarichardson@carter-moore.com', '$'), User(True, 8, 'newmananthony', 'newmananthony@jones.net', '$$'), User(True, 9, 'timothy77', 'timothy77@ward.com', '$$$$'), User(True, 10, 'destiny36', 'destiny36@williams.org', '$$$'), User(True, 11, 'crystal68', 'crystal68@gonzales-horn.info', '$$'), User(True, 12, 'matthew21', 'matthew21@hernandez-travis.org', '$'), User(True, 13, 'michelle74', 'michelle74@barnes.net', '$$$'), User(True, 14, 'kimchy', 'kimchy@elastic.co', '$$$$'), User(True, 15, 'jeremy19', 'jeremy19@perry-west.com', '$'), User(True, 16, 'stevensvirginia', 'stevensvirginia@white-riggs.com', '$'), User(True, 17, 'jose52', 'jose52@barrett.com', '$'), User(True, 18, 'patrick89', 'patrick89@smith.com', '$$$$'), User(True, 19, 'michael18', 'michael18@cross.com', '$'), User(True, 20, 'danny42', 'danny42@greer-wilson.com', '$$'), ] weights = [68, 70, 9, 55, 47, 76, 65, 96, 99, 14, 60, 34, 40, 15, 43, 31, 77, 40, 34, 88] def tag_request_id_middleware(get_response): def middleware(request): __traceback_hide__ = True label(request_id=str(uuid.uuid4())) response = get_response(request) return response return middleware def user_middleware(get_response): def middleware(request): __traceback_hide__ = True if not request.user.is_authenticated: request.user = random.choices(users, weights=weights)[0] label(customer_tier=request.user.customer_tier) return get_response(request) return middleware