From f3fc9dbd5b81e58cf737f982934a640d713db8be Mon Sep 17 00:00:00 2001 From: Keyur Date: Fri, 17 Nov 2023 15:04:08 -0800 Subject: [PATCH 1/2] Refactor: Bump moesifpythonrequest to version 0.3.2 Refactor: Bump moesifpythonrequest to version 0.3.2 Add: Event queue size config option and default to 1M Refactor: Update README.md Bump version to 0.1.5 --- README.md | 3 +++ moesifasgi/middleware.py | 3 ++- requirements.txt | 2 +- setup.py | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 315df4c..12620f4 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,9 @@ to associate this event with custom metadata. For example, you may want to save #### __`BATCH_SIZE`__ (optional) __int__, default 25, Maximum batch size when sending events to Moesif. +#### __`EVENT_QUEUE_SIZE`__ +(optional) __int__, default 1000000, the maximum number of event objects queued in memory pending upload to Moesif. If the queue is full additional calls to `MoesifMiddleware` will return immediately without logging the event, so this number should be set based on the expected event size and memory capacity + #### __`AUTHORIZATION_HEADER_NAME`__ (optional) _string_, A request header field name used to identify the User in Moesif. Default value is `authorization`. Also, supports a comma separated string. We will check headers in order like `"X-Api-Key,Authorization"`. diff --git a/moesifasgi/middleware.py b/moesifasgi/middleware.py index 0d916ca..0d80ddc 100644 --- a/moesifasgi/middleware.py +++ b/moesifasgi/middleware.py @@ -56,7 +56,8 @@ def __init__(self, settings=None, *args, **kwargs): self.sampling_percentage = 100 self.last_updated_time = datetime.utcnow() self.disable_transaction_id = self.moesif_settings.get('DISABLED_TRANSACTION_ID', False) - self.moesif_events_queue = queue.Queue() + self.event_queue_size = self.middleware_settings.get('EVENT_QUEUE_SIZE', 1000000) + self.moesif_events_queue = queue.Queue(maxsize=self.event_queue_size) self.BATCH_SIZE = self.moesif_settings.get('BATCH_SIZE', 25) self.last_event_job_run_time = datetime(1970, 1, 1, 0, 0) # Assuming job never ran, set it to epoch start time self.scheduler = None diff --git a/requirements.txt b/requirements.txt index 0535c3a..e966651 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ nose==1.3.7 moesifapi==1.4.0 -moesifpythonrequest==0.2.0 +moesifpythonrequest==0.3.2 starlette==0.16.0 \ No newline at end of file diff --git a/setup.py b/setup.py index e89e89e..e751ae5 100644 --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ # Versions should comply with PEP440. For a discussion on single-sourcing # the version across setup.py and the project code, see # https://packaging.python.org/en/latest/single_source_version.html - version='0.1.4', + version='0.1.5', description='Moesif Middleware for Python ASGI based platforms (FastAPI & Others)', long_description=long_description, From ea060cede0a7cff9dc65b5e40d84516c325e409d Mon Sep 17 00:00:00 2001 From: Keyur Date: Fri, 17 Nov 2023 15:11:35 -0800 Subject: [PATCH 2/2] Refactor: Bump user-agent version Refactor: Bump user-agent version --- moesifasgi/middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/moesifasgi/middleware.py b/moesifasgi/middleware.py index 0d80ddc..32ff17c 100644 --- a/moesifasgi/middleware.py +++ b/moesifasgi/middleware.py @@ -38,7 +38,7 @@ def __init__(self, settings=None, *args, **kwargs): self.DEBUG = self.moesif_settings.get('DEBUG', False) if self.DEBUG: Configuration.BASE_URI = self.moesif_settings.get('BASE_URI', 'https://api.moesif.net') - Configuration.version = 'moesifasgi-python/0.1.4' + Configuration.version = 'moesifasgi-python/0.1.5' if self.moesif_settings.get('CAPTURE_OUTGOING_REQUESTS', False): try: if self.DEBUG: